-
1 电子教材
-
2 PPT
本章主要讲解软件测试的工作流程,为什么要制定软件测试计划、软件测试计划都包括哪些内容等。通过本章的学习可以了解在软件开发各个阶段中,测试人员需要做哪些测试活动,一个软件项目应该如何制定测试计划。
如同人类从出生到少年、青年、中年、老年、死亡的生命过程一样,软件也有自己的生命周期,它是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护、淘汰的过程。由于软件开发中不同软件的需求和规模各不相同,因此在开发不同的软件过程中也有各种不同的方法,以下介绍两种常见的软件生命周期模型。
1.软件生命周期的瀑布模型
瀑布模型将软件生命周期的各项活动规定为依照固定顺序连接的若干阶段工作,形如瀑布流水,如图4-1所示,最终得到软件产品。在每一个阶段结束时,项目小组进行审查,并决定是否进入下一阶段。

图4-1 软件生命周期的瀑布模型
2.软件生命周期的螺旋模型
螺旋模型是瀑布模型的发展,如图4-2所示。目前螺旋模型比较常用,并被证实是开发软件的有效手段。螺旋模型的主要思想是开始不必详细定义所有细节。其主要过程是:从小开始à定义重要功能à努力实现à接受客户反馈à然后进入下一阶段。重复上述过程,直到得到最终软件。
每一个螺旋包括6个步骤:确定目标、可选方案和限制条件à明确并解决风险à评估方案à本阶级开发和测试à计划下一阶段à确定进入下一阶段的方法。
软件测试员通过参与最初的设计阶段,可以尽早地影响到软件,软件的来龙去脉都很清楚。在项目末期,不至于匆忙在短时间内进行全面测试,而是测试一直在进行,直到最后宣布全部成功。

图4-2 软件生命周期的螺旋模型
通过学习软件生命周期的瀑布模型和螺旋模型,可以了解软件产品开发的基本过程。那么,软件测试生命周期又是什么样子?如图4-3展示了软件测试生命周期。

图4-3 软件测试生命周期
通过图4-3可以看出软件测试活动包括:制定测试计划、测试设计和开发、执行测试(实施软件测试)、评估测试(评审)。那么这些活动的具体内容包括什么?下面分别加以说明。
测试计划阶段主要处于测试的先期准备工作阶段,在该阶段中主要是对将要进行的测试工作做一个整体的规划,在计划中一般都包括测试目的、测试策略、测试资源,其中在测试资源中又分为人力资源与软硬件设备资源两项,同时还要在文档中体现整个测试过程中的各里程碑的情况。
测试设计阶段主要是参照各种相关文档对测试进行设计的工作,包括测试需求的分析和测试用例的设计两项工作。
测试开发阶段则是按照测试设计阶段完成的测试需求分析与测试用例设计的方案要求进行实施的过程,该过程包括:测试用例数据的准备,测试工具的开发,测试脚本的开发录制等工作。此阶段的工作一直可能持续到软件测试的结束。
执行测试阶段是将设计与实施两个阶段中设计好的测试用例及测试数据应用于实际软件测试过程中,包括手工测试的执行、自动化测试的执行、测试缺陷报告提交等工作。在该阶段中同时存在对于前两个阶段进行工作补充的情况。
测试评估是在测试结束后对整个测试过程与产品进行评估的过程。评估过程包括对测试工作的总结、缺陷数据的分析及测试过程的评估等。
按照尽早进行测试的原则,测试人员应该在需求阶段就介入,并贯穿软件开发的全过程。就测试过程本身而言,应该包含以下几个阶段:
Ø 测试需求的分析和确定
Ø 测试计划
Ø 测试设计开发
Ø 测试执行
Ø 测试记录和缺陷跟踪
Ø 回归测试
Ø 测试总结和报告
而这几个阶段其实就是一个PDCA 循环。PDCA循环也叫戴明循环,是一种质量改进的模型。P(Plan)代表计划,D(Do)代表执行,C(Check)代表检查,A(Action)代表处理。
首先在分析清楚需求的前提下对测试活动进行计划和设计,然后按既定的策划执行测试和记录测试结果,对测试的结果进行检查分析,形成测试报告,这些测试结果和分析报告又能指导下一步的测试设计,因此形成了质量改进的闭环,如图4-4所示。

图4-4 测试的各个阶段

