51Testing软件测试论坛

标题: 测试用例生命周期 [打印本页]

作者: lsekfe    时间: 2016-3-21 13:27
标题: 测试用例生命周期

完整的测试用例生命周期过程,它通常有测试条件标识、测试用例设计、测试用例实现、测试用例的执行,以及测试用例管理等几个阶段组成。由于不同的公司的质量方针和测试策略的不同,采用的测试用例过程可能会有所不同,或者侧重点不同。下图是测试用例生命周期的瀑布结构。

图1 测试用例生命周期

测试用例通常是针对被测系统的功能模块来进行设计开发的。每个测试用例的设计都会涉及这五个过程。而且,测试用例的这五个阶段是有时间顺序要求的,例如:在设计测试用例之前,需要首先标识测试条件;在实现测试用例以前,需要设计测试用例。测试用例过程既可以是正式化的,比如对每个阶段的输出进行文档化,也可以是非正式化的。具体输出文档的详细程度,可以根据组织和项目的实际情况而定。

1 测试条件标识

测试用例过程的第一步是确定测试什么(测试条件),并且对测试条件进行优先级的划分。测试条件指的是可以通过测试进行验证的条目或者事件。针对测试系统,会有很多不同的测试条件。根据不同的测试条件,可以进行不同的测试类型分类,例如:功能测试、性能测试、可用性测试等。

在测试条件标识过程中,可以采用不同的测试技术,严格而系统的来帮助测试人员获取测试条件,例如:黑盒测试中的等价类划分、边界值分析、因果图分析等,以及白盒测试中的语句覆盖、分支覆盖、条件覆盖等。

标识测试条件,就是识别需要测试的条目和事件。可以通过不同的方式来对它们进行描述,比如通过简单的句子描述、通过表格的方式或者通过控制流图的方式等描述。测试条件识别活动最好和通用的V模型左边的开发活动同时进行。

2 测试用例设计

测试用例设计确定了如何来测试已经识别的测试条件。测试用例指的是针对某个测试目标,而进行的一系列测试步骤。测试用例设计会产生一系列包含特定输入数据、预期结果和其它相关信息的测试用例。
测试设计的主要挑战是确定测试预期结果。为了确定测试预期结果,测试人员不仅需要关注测试输出,同时也需要注意测试数据和测试环境的后置条件。

假如测试依据可以清楚的定义,测试设计理论上将是比较简单的。但是,测试依据通常情况都是模糊不清的,至少描述是缺少覆盖率的。另外,即使清楚的描述了测试依据,测试输入和测试输出的复杂相互关系也会使得定义测试预期结果非常困难。假如测试用例没有测试的预期结果,则测试用例对于测试结果的对错判断是毫无意义的,也无法提供有效的缺陷报告和增加客户对系统的使用信心。

测试预期结果可以是各种各样的,包括需要创建或者输出的结果,也可以是需要更新或者变更的结果,也可以是删除的结果。每个测试用例都应该清楚的描述测试的预期结果。也存在一些特殊情况,在测试用例中没有描述测试的预期结果,为了检查软件是否正确的实现或者工作,必须对实际的输出结果进行仔细的检查和验证。这样,就需要测试人员具有被测系统相关的丰富的知识和经验,才可能对软件系统的测试输出作出正确的评估。假如测试输出结果评估认为是正确的,那么就可以作为测试用例的期望输出结果。

同样,测试用例的设计,以及测试用例预期结果的设置,应该和通用V模型左边相应的开发活动相对应。

3 测试用例实现

测试用例实现的过程包括准备测试脚本、测试输入、测试数据以及预期结果等。测试脚本指的是按照标准的语法组织数据或者指令,测试脚本一般保存在文件中,用于自动化测试。测试输入和测试期望输出也可以作为测试脚本的一部分,也可以保存在其他文件或者数据库中。

测试执行之前,首先必须满足测试前置条件。比如一个测试用例需要用到文件中的一些数据,那么这个文件在测试执行时必须已经创建。测试前置条件也包括特定的测试硬件和软件,比如测试一个网络打印机,那么在测试之前,需要建立这样的测试环境,和打印机相关的网络是正常可用。测试预期结果也可以保存在文件中,用于自动化测试。而对于手动测试,可以直接在测试用例中标识。

4 测试用例执行

通过运行测试用例来对被测系统进行测试。对手动测试来说,测试执行主要是测试人员坐到被测系统前面,参考测试用例的步骤来进行测试执行。测试人员输入测试输入、检查测试输出、比较测试预期结果和实际结果、记录在测试过程中发现的问题等等。而对于自动化测试过程,测试执行可能是打开测试工具,运行测试用例脚本和测试脚本等,通过自动化的方式来记录测试结果。

必须仔细检查每个测试用例执行的实际输出结果,根据测试预期结果来判断被测系统是否能够正确的工作。有些测试结果的比较可以在测试执行中就可以进行,而有的测试结果需要在测试执行完成以后才能进行比较。

假如测试实际输出结果和测试预期结果是一样的,那么认为测试用例执行是通过的。假如不一样,那么测试用例执行失败,或者说软件系统存在问题。当然,这是非常简单的比较。更加正确的说法是假如测试结果和测试期望不一致,需要进一步的检查。比如可能是软件存在缺陷,也可能是测试用例本身存在问题,或者是测试用例中的测试预期结果存在问题,甚至是由于测试环境存在问题而引起的。所以,在比较测试结果的时候,需要从不同的方面来确认具体的问题来源。

5 测试用例管理

1)测试用例组织

任何一个项目,其测试用例的数目都将是非常庞大的。如何来组织、跟踪和维护测试用例是一件非常重要的事情。在整个测试过程中,可能会涉及不同测试类型的测试用例。如何来组织测试用例,是测试成功与否的一个重要因素,也是提高测试效率的一个重要步骤。
测试用例的组织,可以用不同的方法来进行组织或者分类:

在上面的三种测试用例组织方法中,按照功能模块进行划分是最常用的。不过,我们可以结合起来使用,比如在按照功能模块划分的基础上,再进行不同优先级的划分,甚至不同测试用例类型来进行划分和组织。

测试用例组织好以后,就需要进行测试用例的执行,知识测试生命周期中的重要的过程。具体的过程可以如下:

2)测试用例跟踪

在测试执行之前,需要回答这样的一些问题:哪些测试单元是需要测试的?有多少测试用例需要执行?如何来记录测试过程中测试用例的状态?如何通过测试用例的状态,来确定测试的重点或者什么模块是需要进行重点测试的?

要回答这些问题,就需要对测试过程中测试用例进行跟踪。测试过程中,测试用例的基本状态有三种:通过、未通过和未测试。根据在测试执行过程中测试用例的状态,实现测试用例的跟踪,从而达到测试的有效性。因此,测试用例的跟踪主要是针对测试执行过程中测试用例的状态来进行的,通过测试状态的跟踪和管理,从而实现测试过程和测试有效性的管理和评估。

测试用例的跟踪方式有各种各样。具体采用的方式需要跟踪组织的测试方针和测试过程、测试成熟度等。具体的方法有:

3)测试用例维护

测试用例并不是一成不变的,当一个阶段测试过程结束后,会发现一些测试用例编写的不合理,或者下个版本中,部分模块的功能发生了变化,这都需要对当前的一些测试用例进行修改和更新,从而使测试用例具有可复用性。

一般在下面的情况下,可能需要修改或者更新测试用例:







欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2