2.3 设计测试用例

  根据前两个步骤的分析结果对每个可复用点设计测试用例。在设计时,应使所设计的测试用例满足可复用测试用例的特性,特别要注意以下几方面:

  1)每个测试用例的目的要尽量独立、单一,以满足可复用测试用例独立性的要求。

  2)对一项明确的测试需求,应关注“测试思想”,即测试思路,以满足可复用测试用例通用性要求。当前,为了使测试用例是可操作的、可复现的,一般都要求测试用例要设计得非常详细,例如,每一操作步骤的输入数据、操作等信息都要具体描述。这样的测试用例和被测软件是紧耦合的,只有在同一软件的回归测试和版本升级维护测试中可能会复用到,在其他情况下复用是很困难的。在设计可复用测试用例时,测试用例的可操作性、可复现性要弱化,即,对测试用例进行通用化处理,排除和特定应用相关的具体信息,以降低测试用例和被测软件的相关度,例如,参数化或公式来代替具体的输入数据,抽象出共同或关键的操作等。但为了加强测试用例的可操作性和可复现性,在设计可复用测试用例时,应对一些差异之处进行预测,即进行可变性分析mJ,并用适当的方式描述出来。只有这样,当复用该测试用例时,测试人员可以在原有基础上对其进行完善,使其能够满足特定的测试情况。

  3)将设计出的测试用例用规范而精炼的自然语言清晰地描述出来,保证其完整、标准。软件评测组织或机构应定义本组织使用的规范和术语。

  需要说明的是,对于一个具体的测试项目,因为面向复用,所以以上所设计的测试用例可能不完全满足被测软件的测试需求,为此,应针对被测软件的需求补充新的用例或对现有用例进行充实完善。

  2.4 测试用例评审

  可复用测试用例设计完成后,组织领域专家、软件专家、测试专家、软件设计人员对其进行评审,确保所设计的测试用例是正确的,满足可复用测试用例的特性。

  评审同时应关注以下几点:每个共性需求的测试策略是否合适;每个共性需求是否被可复用测试用例所覆盖;每个共性需求是否被可复用测试用例进行了充分测试,例如,某一共性功能,不能仅测试正常情况,还应测试边界和异常情况。如果测试用例没有通过评审,则需要重新回到设计测试用例步骤。

  2.5 测试用例执行和修改

  将通过评审确认的测试用例用于被测软件,寻找其不正确或不完善之处并纠正完善。

  2.6 测试用例入库

  将经过测试执行确认的可复用测试用例统一纳入测试用例库中,供测试人员在后续软件测试或以后的项目中查询使用。测试用例库应是按照一定的组织结构形成的测试用例集合。

  3、基于复用的软件测试模型

  文献给出了一个测试用例复用流程:首先定义被测软件的测试用例类型;再根据所定义的从测试用例库中检索是否有适合的用例;如果可以找到,则提取出测试用例,程序结束;否则,需要设计测试用例,验证其正确性,如果正确,则添加到库中以便再次复用,程序结束。这个流程只适用于完全不需要进一步完善的可复用的测试用例,由于可复用测试用例的通用性,该流程显然不适用于实际情况。文献[12]给出了另一个测试用例复用模型,该模型建立在没有测试用例库的基础上,且将测试用例分为内外两类,本文认为这种划分是不必要的。

  本文提出了基于复用的软件测试模型。该模型面向一个软件测试项目,但不同于以往的测试模型,主要表现在模型中融合了面向复用的测试用例设计以及对测试用例的复用上,模型如图2所示。

  “测试需求分析和共性分析”中,测试人员一方面要根据被测试软件需求分析、设计说明等文档或软件代码梳理出被测软件的测试需求,另一方面要针对被测软件所属领域及软件类型进行面向复用的共性分析。

  “定义测试策略”中,测试人员根据测试目标和上一步的结果定义测试策略,包括测试方法、测试类型、测试环境等内容。

  “定义测试用例”中,测试人员根据测试需求和共性分析结果及所定义的测试策略,定义所需要的测试用例。这里定义的测试用例只是给出一个测试用例名称及其测试目的。

  “查询可复用测试用例库”中,测试人员用多字段检索功能从可复用测试用例库中查找满足要求的测试用例。对测试用例的查询是不确定的,查询结果通常是一个相似的测试用例集合。如果可以找到,则“提取测试用例”并对其进行分析,确定出合适的测试用例;如果没有,则“设计”新的测试用例。找到的测试用例,往往因其通用性,并不能完全满足测试需求,要对其“补充完善”。在设计新的测试用例时,要考虑到上节“设计测试用例”要求。