测试用例设计、评审是每个测试人员进行的关键测试活动之一,如何做好测试用例设计?如何进行测试用例评审?如何评估测试用例的质量?是我们必须考虑的问题。
一. 如何做好测试用例设计?
做好测试用例设计,需要考虑以下因素:
• 明确输入。进行测试用例设计时,需要依赖产品相关的多项文档材料,包括需求文档、系统概要设计、系统详细设计文档、相关的标准与规范文档,测试经验知识库等。
• 关注交互点。做好测试用例设计,除了关注被测对象的功能外,也需要关注被测功能与其他功能模块之间的交互。常见的情况是,不同的测试人员负责各自的功能模块,往往会导致整个测试对象不同功能模块之间的接口,相互作用和耦合等分析不够充分,这些交互点是影响测试对象质量的重要因素,因此,需要多关注交互的地方。
• 采用合适的设计技术与方法。有了测试用例设计的输入和交互分析后,采用合适的测试用例设计技术和方法,有助于做好测试用例设计。
进行测试设计时,可以考虑以下内容,以解决测试设计中面临的问题。以下内容部分引用自《赢在测试2》。
1. 在测试中引入“组合测试”技术。被测对象的逻辑组合和输入数据的组合是非常庞大的,而穷尽测试是不可能的。经典测试设计中的一些技术与方法,在保证测试覆盖率与质量的情况下,对减少测试用例的数目是非常有效的。同时可以借助业界成熟的工具,比如 微软的 PICT 工具。
2. 基于质量特性的测试设计有助于选择合适的质量特性。软件产品的不同利益相关者对产品的质量要求是不一样的,如何满足他们各自的质量要求呢?测试设计中要求100% 的测试类型覆盖率,可以更好地满足不同利益相关者对质量的不同要求。
3. 基于风险的测试设计可以帮助解决如何平衡测试时间、成本与质量之间的关系的问题。例如,先给模块确定测试优先级,然后分析每个模块存在的主要风险,并按照不同风险级别开展测试设计活动,以尽快尽早发现严重程度高的缺陷。
4. 基于风险的测试设计有助于解决需求经常不完善、经常变更的问题。例如,根据以前发现的缺陷和用户反馈的缺陷,进行缺陷分类分析和评估。此外,还可以更多地采用探索性测试,更好地发挥测试人员的主观能动性与分析能力。
• 做好评审。在测试用例设计过程中,组织分析和评审测试点,得到的效率和有效性会更好。
二. 如何做好测试用例评审?
测试用例是测试人员最重要的输出之一,也是后续开展测试执行与评估的基础。测试用例评审是保证测试用例质量的一个重要环节。如何做好测试用例的评审,以下是一些思考。
• 选择合适的人参与测试用例的评审。比如,参加评审的人员需要有项目经理、相关开发人员、测试架构师等。每个人参与测试用例评审的关注点是不一样的,比如,测试架构师关注测试类型的覆盖率方面(根据软件质量属性模型),而开发人员和系统人员关注测试用例是否覆盖业务场景与不同功能模块之间的交互等、此外,语法、拼写、排版等方面的问题应该关注,但不应该是评审的重点。
• 管理层的支持。有效的评审是需要时间和资源的,唯有管理层支持,才能顺利的开展下去。
• 评审人员会前做好准备。包括准备评审的文档材料,评审的场所资源等。
• 让更多的人明白测试尽早介入(评审)的意义。比如,提高质量、降低成本、加快进度与过程改进等。
三. 如何评估测试用例的质量?
测试用例质量的评估,可以从以下方面进行考虑。(以下内容部分引用自《赢在测试2》)。
根据测试用例的形式评估其质量
主要包括以下几点:
• 测试用例与需求条目的可追溯性。
• 测试用例有无明确的期望结果。
• 测试用例的形式是否满足内部定义的模板要求等。
根据测试用例覆盖率评估其质量
主要包括以下几点:
• 需求的覆盖率。主要是指测试用例覆盖的需求的占比。
• 质量特性的覆盖率。主要是指测试用例中涉及到质量特性的占比。比如根据软件质量模型,除功能特性外,是否覆盖了性能、稳定性、安全性、易用性、可维护性等质量特性。
• 测试平台的覆盖率。针对不同的测试平台,现有测试用例是否已经覆盖等。
根据测试用例的有效性评估其质量
主要包括以下几点:
• 测试用例的缺陷发现率。比如可以使用此计算公式: 系统测试发现的缺陷数目/执行的测试用例数目 x 100%
• 脚本化测试的缺陷发现率。比如可以使用此计算公式: 根据测试用例步骤发现的缺陷数目/总发现的缺陷数目 x 100%. 如果这个百分比很低,则说明设计的测试用例的有效性方面比较差。
• 遗漏到上线后的缺陷率。比如可以使用此计算公式: 一段时间内线上发现的缺陷数目/(测试阶段发现的缺陷数目 + 一段时间内线上发现的缺陷数目) x 100%
四. 小结
以上根据前人的经验及自身实践的经验,对测试用例设计、评审和用例质量评估等问题进行了总结与记录,旨在更好的指导自己开展测试工作。