|
6#
楼主 |
发表于 2007-2-10 16:07:08
|
只看该作者
2.2 TEmb的一般特性
这节描述了所有的结构化测试流程的基本特性.
在开发一个系统的时候,不同的人或者团队会使用不同的测试方法.在测试的初始阶段,应该要建立一个主测试计划,要决定哪个人要负责哪个测试,不同的测试之间有什么样的关系.
在同一个测试平面上的独立的测试来说,可以应用相同的结构化测试的四个基础.都是为了回答主要的这几个问题.”做什么,什么时候做,怎么做,用什么做,谁去做”
**生命周期.在这里必须要明确要做哪些事情,并且要用什么样的顺序做.它可以让测试者和管理者更好的控制测试流程.
**测试技术.通过定义一些做某些活动的标准方法来让我们知道该怎么做.
**基础设备.这里要定义一些我们的测试环境需要的东西,那样我们才能执行我们的测试计划.
**团队管理,在这里要定义一些角色和在测试计划中的专业人员以及他们与其他专业人员之间的交互方式.
这四个测试基础的基本思想在测试流程中要同等对待.如果有一个被忽视了,测试流程就会出错.生命周期是测试基础的中心原则,它联合着其他的基础部分.其他三个基础部分会被应用到生命周期的不同阶段里面.比如,规范书评审阶段需要不同的测试技术和专家来执行以及分析.
当适当地注意到了这几个测试基本结构时,测试流程就可以被认为是结构化的.它的特点是除去了细节问题,使得测试变得可管理和可控制.它不能保证测试计划一定不会出问题,项目无论在什么时候总是会遇到很多不可预期的错误,从而会让我们精心准备的测试计划变得混乱.不过,结构化的测试流程可以让我们有最大的机会从这样的情况中恢复过来,把损害降到最低.
下面几节分别陈述了这几个测试的基础部分.
2.2.1 生命周期
在生命周期模型中,测试计划的原则是分成五个阶段.包括计划与控制阶段,准备阶段,文档评审阶段,和执行阶段,以及完成阶段,这个阶段意味着可以把软件正式交付并进入维护阶段.
生命周期的意义是为了降低项目的风险,尽早的执行某些计划.如果系统被交付到了执行阶段的时候,如果测试的人员这时才想测试用例是什么样子的话,那将是在浪费宝贵的时间.测试用例只能并且也应该在之前就该做好,就是说应该在规格书评审阶段就该做好.如果测试人员不在规格书评审阶段明确测试用例的话完全就是自寻苦恼,因为你必须要明确要使用哪个设计方案而且他们如何把设计方案应用到你们接受到的系统规格书里面,这些工作应该在文档评审之前的准备阶段来做.
尽管生命周期可以清楚的显示比测试团队预料的多的多的执行计划,不过它不能包括必要的额外计划.它不过是让你知道哪些事情是必须要做的并且可以把这个把这些事情安排得效率更高.如果这个生命周期掌握得好,测试流程可以节约很多时间,如果掌握得不好,测试流程会很危险.
2.2.2 测试技术
这部分测试基础是指测试流程中用到的精确的,正确的,通用的测试技术,包括测试流程的追踪和管理以及测试结果分析.从原则上来说,一种或者多种技术方法可以用在不同类型的活动计划上.每天世界上都会发现先的技术方法.总是有很多活动计划要被重复执行多次,而将来的测试流程应该会有一种技术方法来实现这种活动计划.
TEmb模型提供了很多技术方法.有些是老的好的方法,这样的方法已经证明了他们的价值并且还不需要什么修正,也有一些新的技术,还有一些是从现有技术中延伸出来的.很多技术往往是由多种技术混合来的.
下面是一些由TEmb模型提供的例子.
**策略开发.开发策略是基于风险分析的状况下做决定,或者继续计划,或者改变计划.策略开发其实就是,要知道应该投入多少测试,才能让需要的质量,要投入的时间,金钱和资源之间的最好的平衡.
**测试设计.许多的方法都可以开发出测试用例.选择哪种方法,取决与很多其他的东西,比如质量要求的评估,要达到的覆盖率,有效的系统规格书,等等.
**安全分析.应该应用专业的方法来评估系统的安全性方面并且在安全性的处理方面要(与开发方)达到一致.
**数据驱动的自动化测试.目前有很多有效的自动化测试工具.他们不是简单的”录制和重放”,也要支持高级的程序测试脚本.这种测试工具,其实就是一种可以实现一组自动测试的开发环境.数据驱动测试技术可以成功的应用到可接收的,可以维护,并且可变的自动化测试中去.
**测试清单.测试清单是一种简单有效的方法.这个清单可以包含测试经验还可以在将来的测试项目里面重复使用.
2.2.3 基础准备
测试的基础准备包括结构化测试所需要的基本的所有东西.它包括执行测试所需要的所有设备(测试环境),支持有效测试的所有工具(测试工具和自动化测试工具),以及工作人员的办公场所等等.
测试环境
测试环境包括下面三个重要的部分.
**硬件/软件/网络环境.被测试的系统在不同的开发阶段总是有不同的物理特性.一个模型,一个原形,连接在模拟器上的一个独立的单元,产品类型.对于不同的产品类型和开发阶段来说,测试环境的需求也是不一样的.
**测试的数据库.大部分测试都是需要重复执行的,这样可以让我们重复记录测试结果.这意味着测试数据应该保存下来.(应该的意思是,多次执行一样的测试,如果要分析测试结果的情况,应该要有一个数据库可以把测试结果的数据保存下来吧. )
**模拟设备和测量设备.当被测试的系统(模块)还不能在真实环境中应用,但是却需要一些外部的信号来测试,这个时候就需要模拟器了.另外,系统输出也可能需要专业设备来检测和分析.
工具和自动化测试
工具不是执行测试流程的必要条件,但是使用测试工具对于测试人员来说可以让测试流程变得更加容易一些.测试工具的范围非常大而且差异也巨大.测试工具可以根据他们支持的功能以及主要应用在测试流程里的哪个阶段进行分类.下面几个列出了几个不同的生命周期阶段使用的不同适用类型的测试工具.
**计划控制阶段
——计划和流程控制工具
——检测管理工具
——配置管理工具
**准备阶段
——需求管理工具
——复杂的分析工具
**规范书评审阶段
——测试用例产生器
——测试数据产生器
**执行阶段
——录制和重放工具
——比较工具
——检测工具
——覆盖率分析工具
办公室环境
显然,测试的质量主要取决于测试人员的技巧和目的。要避免不必要的分心和不好的情绪。对于测试人员来说,一个好的测试环境,可以让他们从计划到完成都可以很好地组织和进行他们的工作。这看起来好象很简单,实际上测试工作者总是会发现他们的工作桌或者工作站没有及时准备好或者说他们总是要和同事使用同一套工作桌或者是工作站。
2.2.4 工作团队
团队的含义是人以及人和人之间的交流。测试工作不是简单的单独能够执行的工作,想要不受外界的影响那是不可能的。不同的学科领域,不同的兴趣,不可预知并且缺乏的专业知识,时间限制,这些问题使得测试团队的管理和建立变得非常复杂。
团队管理的内容包括下面几个方面的内容。
*测试团队的组织结构。要在全面计划的情况下,要决定团队的内部组织结构。包括不同领域知识的层次,他们的职责作用以及他们之间的关系。
**角色。在这里定义了对于不同的专业领域来说,要做哪些重要重要工作,以及这些专业领域需要的专业技巧和知识。
**人员以及培训。在这个部分包括了你怎样得到你所需要的工作人员以及如何保持住他们-其实就是如何获得人员,以及进行职业培训。
**管理以及控制操作。由于测试是循序渐进的并且经常会改变,因此测试流程的控制必须要达到可以应对各种变化才可以。三种不同的控制操作部分如下:
——测试流程
——测试基础准备的结构
——测试产品 |
|