软件测试是保证软件质量的可靠手段,是软件开发过程中不可缺少的环节。本文提出了面向复用的测试用例设计过程,并给出了测试用例复用的实现策略。测试用例的重用对于缩短软件开发周期、降低软件开发成本具有重要意义。
1.介绍

随着软件工程领域的扩大和软件产业的快速发展,软件测试已经成为保证软件质量的重要手段。测试用例的选择对软件测试的成败起着决定性的作用,因此如何设计最少的测试用例来实现最大的测试覆盖已经成为自动化测试领域的主要研究对象。测试用例是确定一组最容易发现错误的测试数据和过程,实现系统对某项功能的测试。然而,测试用例的设计与测试人员的个人经验密切相关。不同测试人员的个人经验和书写格式的差异导致测试的盲目性,导致维护成本较高。测试用例复用技术一方面是为了解决测试人员经验不足带来的问题,同时也避免了设计测试用例的重复性工作,有效提高了测试效率。
2.软件测试
2.1软件测试的定义
软件测试是根据软件开发各阶段的规范和程序的内部结构,精心设计一批测试用例,并利用这些测试用例运行程序,发现程序错误的过程。
2.2软件测试的目的
Glenford J.Myers对软件测试的目的提出了以下观点:
2.2.1测试是程序的执行过程,目的是发现错误;
2.2.2一个好的测试用例是能够发现到目前为止还没有发现的错误;
2.2.3成功的测试是指揭示了目前尚未发现的错误的测试。
测试的目的是以最低的成本找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷来提高软件的质量,避免软件潜在的错误和隐患带来的商业风险。
3.软件测试用例的重用
3.1软件测试用例的重用
软件测试重用可以理解为通过在两个或多个不同的软件测试过程中重复使用相同或相似的测试资源来组织测试的过程。软件的复用主要包括测试流程、测试方法和测试用例的复用。测试用例的重用是测试重用的关键技术。所谓测试用例复用,是指一个软件已经执行过的测试用例,不同程度地应用于该软件的新阶段测试或者其他软件的测试。可重用的测试用例是通用的、独立的、有效的、标准化的和完整的。
3.2可复用测试用例的设计

测试用例能否成功复用,很大程度上取决于测试用例的独立性,即能否独立应用于不同的应用场合和环境。在实际应用中,许多测试用例是相互关联的。一些测试用例的运行环境依赖于其他测试用例的执行状态。当它所依赖的环境发生变化或者失败时,与之相关的其他测试用例的复用属性也可能消失。那么如何设计独立于软件运行环境、与其他测试用例关联较少、具有统一输入输出接口的可重用测试用例就成为问题的关键。
测试用例面向不同的应用对象,与被测软件高度耦合。为了实现设计好的测试用例的成功重用,在测试用例的设计中采取了以下步骤。
3.2.1共性分析
首先要分析被测软件的共性。同一应用领域的软件具有相似的需求,分析其相同的工作流程或功能等共同特征,根据其共性挖掘可复用因素。
3.2.2测试用例的统一建模
根据复用性因素,设计合适的测试策略,对测试用例的设计进行统一的建模组织,设计统一的结构和输入输出接口。
3.2.3设计可重用的测试用例
为了尽可能地减少测试用例与客户端软件的相关性,在设计测试用例时应尽可能地对其进行泛化,同时保持测试用例的单一功能。测试用例与被测软件的高度耦合性决定了测试用例的复用只能在同一软件的回归测试或版本升级测试中成功实现,而很难用于不同应用领域的软件测试。
测试用例的评估
设计好测试用例后,组织测试人员和评测专家根据功能需求将测试用例应用到被测软件的测试中,确保测试用例的正确性。改变软件运行环境或测试数据后是否能得到合理的测试结果,并能分析异常和边界条件的测试结果。
3.2.5改进测试用例
根据测试结果,分析测试用例是否覆盖并测试了所有的常见需求,并进一步改进或修正测试用例。
3.2.6测试用例的存储

经过评估和改进的可复用测试用例按照其属性和功能进行分类,并按照一定的组织结构放入测试用例库中。
3.3可重用测试用例的管理
测试人员应对测试用例数据库进行统一有效的管理,提供测试用例的功能属性、运行环境、测试方法和项目来源,供测试人员日后查询和使用。管理者要及时删除冗余,避免重复用例。随着软件技术的发展和测试用例的不断增加,不再具有复用价值的测试用例被转移到其他数据库中,以提高搜索和使用的效率。
4.结论。
软件复用是测试领域的热点问题,可复用测试用例的设计是实现测试复用技术的关键。介绍了软件测试用例的复用,从理论上给出了可复用测试用例设计的思想和具体方法。在实践中,实际问题往往比我们想象的要复杂得多。在软件的不同领域、不同功能中实现测试复用的难度更大。我们需要在不断总结经验的基础上进行灵活的使用和合理有效的管理,从而进一步发展测试复用技术,提高测试效率,更好地服务于软件行业。


