在软件测试过程中,一个成熟的团队一般都有自己的公共测试用例库,公共测试用例库即可复用的测试用例库。今天我们就讨论一下如何开发有效的可复用测试用例,并学会如何使用和管理。
测试用例是为了验证最小功能点的一组输入、输出及操作序列的集合。可复用测试用例是指“为了复用目的而设计的测试用例”。复用的意义在于通过可复用测试用例验证功能相同或相近的模块,加快测试用例的设计进度、减少测试人员的负担;也可以帮助产品在设计类似功能时的需求细节补充;还可以与开发人员达成协议,后期在开发类似功能的时候,可以事先有一个既有的标准,提高开发效率和代码质量;
为高效使用可复用测试用例,测试用例的复用性可从三个维度分析:
1)时间角度:使用以前软件版本的测试用例作为新版本测试用例的基础,可作为软件维护和回归测试时复用。
2)通用角度:以某平台或硬件为基础的软件,测试其平台特性的测试用例可以复用。如测试B/S结构网络应用产品,针对该网络结构数据传输安全的测试用例基本都可以复用。
3)应用角度:以某特定领域模型为基础构建的测试用例,在同一领域不同应用系统中的测试过程中可以复用。
为构建高质量的可复用测试用例,需要规定可复用测试用例的本质特征,即对其质量特性进行分析。本文基于ISO9126质量模型和ISO9241标准,并对大量测试用例复用的应用情况进行了分析,认为可复用测试用例的质量模型如图1所示。
1)可用性:指可复用测试用例能够有效发现软件缺陷,且易于理解,方便人们的使用,从用户角度反映了可复用测试用例的质量。
2)独立性:可复用测试用例是独立的,且较好的封装了测试步骤和测试数据。即对于测试需求R1和R2,测试用例集分别为C1和C2, C1和C2的交集为空。
3)可维护性:可复用测试用例不局限于具体的应用,不过分依赖被测软件的需求、设计和环境,能够不经修改或稍加修改即可在某一领域或相似领域进行广泛应用。
可复用测试用例的使用流程
1)测试用例的匹配:软件测试工程师在开展测试工作时,首先对被测软件的业务逻辑、测试环境、测试需求、测试类型进行分析,然后提取被测项的各功能点,形成被测项目的分析清单,并一一与可复用测试用例库中的已有测试用例项进行检索匹配。
2)测试用例复用:如果在库中检索到与待测项相同或相近的测试用例,则测试工程师提取已有测试用例,并进一步将该测试用例具体化,使之成为针对该项目的具体测试用例。
3)生成可复用测试用例并入库:如果在库中没有检索到与被测项相同或相近的测试用例,则测试工程师设计新测试用例,并按照可复用测试用例的质量特性和设计准则进行抽象和泛化,生成新的可复用测试用例。在项目结束时,统一提交评审并入库,为以后的测试用例复用做好准备。
对独立的测试团队来说,要实现测试用例的高效复用,须精心设计、选择、收集大量的测试用例,并对其进行良好地组织和管理。在组织测试用例时,按照该测试用例所属的业务领域、项目等进行多级合理的分类、组织、存储。不同层次的测试用例,实现不同程度的复用。
为避免库中测试用例繁杂不易使用的情况,应对测试用例库进行有效管理,使得库中的用例具有典型性、代表性。对测试用例库的管理包含如下方面:
1.提取抽象测试用例。提取是指在具体项目系统测试完成后,测试团队选取其中能覆盖系统业务规则、设计完善、有代表性的测试用例,并按照可复用测试用例的质量特性、设计原则等对具体测试用例进行抽象的活动。
2.阶段审查。每月或每季度对可复用测试用例库的维护工作,包括相同或相似测试用例的合并、冗余测试用例的剔除、测试用例库结构的调整等活动。
在上述管理活动都包含测试用例的评审工作,评审团队在评审时,需要对可复用测试用例的正确性、复用特性、设计原则的依从性进行评审,评审通过后才可入库。
通过大量的工程实践,不难发现测试用例的复用具有以下优点和难点。其优点如下:
--提高软件测试的效率
--缩短软件测试的周期
--提高软件测试的可靠性
--降低软件测试的费 用
--部分解决测试人员的经验欠缺
但是要真正实现测试用例复用的困难也是不可忽视的, 若不能较好地解决以下问题,必将使得软件测试工作事倍功半。其难点如下:
--测试用例数据 库的维护问题
--测试用例划分的标准
--测试用例的版本管理问题
--被测软件之间的差异
--管理因素、环境因素、人的因素和教育因素等