测试执行通常都是处于软件测试生命周期的关键路径上,它不仅在测试过程中占有重要的地位,并且也会花费大量的测试时间。针对测试执行而进行的计划,即测试执行进度计划,是进行测试执行进度控制的基础。在进行测试执行进度计划制订的时候,需要考虑哪些因素会影响测试执行活动,以及如何针对不同类型的测试人员,进行测试执行进度计划的调整。
在实际的软件测试过程中,测试资源、测试质量、测试时间之间是相互制约的。测试执行进度计划的制订,需要在这三者之间进行平衡。例如:假如项目产品发布的时间是确定的,或者根据市场或客户的需求是受到限制的,那么在有限的时间内,需要在有限的测试人力资源和其他的测试资源与测试质量之间进行来平衡,即测试执行进度计划的制订,需要我们在有限的测试时间内,利用现有的测试资源,达到既定的测试质量。
根据笔者在软件测试行业中多年的测试经验和测试管理方面的一些理解,在制订测试执行进度计划的时候,至少需要考虑下面的这些因素:过程的成熟度、测试的时间范围、测试的资源、产品的质量、测试的文档等。
1、过程成熟度
首先,影响测试执行进度计划制订的因素是组织的过程成熟度,包括开发过程的成熟度和测试过程的成熟度。软件产品的质量需要通过整个软件开发过程来保证,而不是某个人或者某部分人的职责。因此,组织的过程成熟度,直接会影响测试执行进度计划的制订,具体表现在:
● 开发过程成熟度,直接决定了开发得到的工作产品的质量,比如软件的需求文档、设计文档、代码等质量。任何软件工作产品,都可能是我们的测试对象,同时也是我们测试的基础。这些工作产品的质量,会直接影响我们的测试工作量和测试执行进度计划的制订;
● 测试过程成熟度,决定了主要的测试活动和测试阶段,简单的说,测试执行过程中我们应该做什么。对于测试执行阶段,不同的测试过程成熟度,需要采用的测试活动是不一样的。例如:有的测试执行明确定义了正式测试执行之前的预测试;而有的测试执行可能更强调回归测试。而这些因素,也会影响测试执行进度计划的制订;
● 测试过程的成熟度,也会影响测试执行过程中的输出工作产品,例如:缺陷报告、测试总结报告等。对这些文档的要求,也需要在测试执行进度计划中进行考虑。
● 过程成熟度定义的测试执行相关的度量,例如:测试用例执行的速率(测试用例数目/星期)、测试的有效性(缺陷数目/测试用例)等,它们是进行测试工作量估算的基础,因此在测试执行进度计划制订中需要谨慎考虑。
2、测试的时间
其次,测试时间是制订测试执行进度计划的基础。这里的测试时间,指的是测试执行需要在什么测试时间范围之内完成。在有的项目测试执行过程中,软件测试执行的截至时间是确定的,例如:软件产品必须在2007-12-31之前交付给客户,所有的测试活动都必须在这个时间之前完成。在这种情况下,测试的时间范围已经无法进行选择,我们必须在测试资源、测试质量和测试范围等方面进行平衡。
3、测试的规模
第三,在制订测试执行进度计划的时候,需要详细考虑测试对象的规模。测试对象的规模是我们进行测试工作量估算的基础,这同样适合测试执行的测试任务。针对测试执行的测试规模,可以从下面几个方面进行考虑:
● 测试执行过程中需要执行的新设计的测试用例的数目;
● 测试执行过程中需要执行的回归测试用例数目;
● 测试对象中可能存在的缺陷数目,以及针对这些缺陷可能需要进行的回归测试;
● 测试用例的执行是针对多种不同的测试平台,还是只针对一种测试平台;
4、测试的资源
第四,在确定了测试时间和测试规模以后,接下来需要考虑测试执行涉及的测试资源问题。测试资源的范围很广,包括测试人力资源、测试仪表、测试平台等。
● 测试执行活动需要有合适的测试人员来完成。根据组织内已经定义的相关度量或者项目组成员以前的经验值,和估算的测试规模大小,来确定需要的测试人员数目;
● 测试执行过程中需要的测试平台数目和已有测试平台数目。假如测试平台数目无法满足测试执行的要求,需要在测试执行进度计划中体现,因为这很可能需要测试时间来解决这个问题;
● 测试执行过程中需要使用的测试仪表和已有的测试仪表。和测试平台一样,也需要在测试执行进度计划中体现,并提供合适的解决方案;
5、产品的质量
我们在前面的“过程成熟度”部分,已经涉及到了测试文档和测试对象的质量问题。这里,我们将更加详细的讨论它们是如何影响测试执行进度计划的制订:
● 开发文档的质量:是指在开发过程中输出的文档质量,比如软件需求文档、概要设计文档、详细设计文档等。由于这些开发文档是测试设计的基础,同时设计得到的测试相关文档是测试执行的基础,它们将直接影响测试执行的效率和有效性;
● 测试文档的质量:一方面开发文档的质量会影响测试文档的质量,另一方面,测试人员的技能水平和在项目相关领域的背景知识等,都会影响测试文档的质量,从而影响测试执行的效率和有效性;
● 软件代码的质量:开发文档的质量和开发人员的技能、知识水平能力会影响软件代码的质量。而软件代码是我们测试执行运行的真正的对象,它的质量高低直接影响了测试执行进度计划的制订。比如由于测试对象质量很差,导致测试执行并不是原来计划中的一次,而需要进行多轮的测试;
● 测试执行对象中可能存在的缺陷数目以及后续的回归测试,它们在测试执行进度计划制订过程中经常容易被忽视。测试执行过程中发现的缺陷,在修改完成以后,需要测试人员进行验证测试和相关的回归测试;
● 假如在测试执行进度计划中没有考虑这些质量因素,常常会导致测试后期的测试任务非常繁重,从而影响测试执行的效率和测试质量。
6、测试的文档
测试执行过程和测试执行完成之后,都需要需要输出一些测试相关的文档,比如测试过程中需要提交的缺陷报告、测试执行结束之后提交的测试总结报告和测试版本发布报告等,这些文档都需要测试人员花费时间和工作量来完成:
● 缺陷报告:在测试执行过程中,缺陷报告是测试团队重要的测试输出。在测试执行中发现缺陷以后,需要测试人员去重现发现的缺陷并以书面的形式提交给开发人员,并对缺陷的状态进行跟踪、管理和验证;
● 测试总结报告:测试总结报告或者测试报告指的是对软件系统进行测试产生的行为及结果的描述文件。测试总结报告以文档的形式,描述了被测软件的测试情况和测试结果,并对相关的结果和数据进行分析,向项目管理层提供信息和建议。测试总结报告是测试执行活动的一个重要输出;
● 版本发布报告:主要是针对软件系统的客户而编写的一个文档(有的企业和组织,可能只存在一个文档:测试总结报告或者版本发布报告,而并没有两个文档)。主要包含的内容有软件系统支持的功能、软件系统的兼容性、软件系统操作注意事项、软件系统存在的主要问题和可能的解决办法,以及软件系统的升级步骤等等;
● 项目测试总结报告和软件版本发布报告这些文档输出,在测试执行进度计划中常常容易被忽视,从而导致测试任务压力的增加。
7、其他的因素
除了上面提到的过程成熟度、测试的时间、测试的规模、测试的资源、产品的质量和测试的文档等因素之外,作为测试经理,在进行测试执行进度计划制订过程中,还需要考虑一些其他的因素或者风险。在项目早期,也包括测试执行进度计划制订过程中,采取合适的风险应对措施,以避免这些风险影响测试执行的顺利进行:
● 测试人员中可能的职位调整或者测试团队内可能存在的跳槽人员;
● 测试过程汇总测试人员休假或者病假,以及测试时间范围内的国定节假日;
● 测试时间范围内可能的测试人员相关的培训、会议等事件;
8、测试执行中的一点技巧
在制订测试执行进度计划过程中,测试人员需要进行谨慎的考虑前面提到的这些影响因素。测试执行进度计划是从项目层面对测试执行任务、资源等进行了规划,终它们需要有不同类型的测试人员来完成,这涉及到如何对每个测试人员的测试执行进度进行跟踪和管理的问题。本文并不会详细讲解如何管理测试人员的测试任务执行问题,而只是简单的讲解一点小的技巧:如何针对不同类型的测试人员,来安排和监控他们各自的测试任务:
● 主动的测试人员:对于这类测试人员,我们在制定测试执行进度计划的时候,可以按照公司和组织的度量值来进行。公司和组织规定的度量值对于他们来说并不是很重要,你只要明确告诉他们测试的任务,以及测试任务完成的时间可以了。他们可以很好的安排自己的测试任务来控制和掌握测试任务的执行情况,而不需要测试经理时时跟踪和推动;
● 被动测试人员:被动测试人员随时都需要测试经理跟踪和控制他们测试任务的执行情况。假如没有严格的跟踪和监督,他们实际的工作进度常常会延后于计划。所以我们在制定测试执行计划和任务进度计划的时候,需要在前期加大工作压力给他们。比如公司的测试度量值是每天执行4个测试用例,对他们而言,可能需要在制订测试执行进度的时候,需要给他们分配5个到6个测试用例。因为对这种类型的测试人员,他们经常会对测试任务拖拖拉拉,从而导致测试任务的延期。所以我们需要在任务的前期给他们更多的压力,以避免在测试后期有太多的工作积压。