测试过程中我们经常会强调可追溯性的重要性。本文和大家聊聊可追溯性的话题。
什么是可追溯性?我们可以先看看ISTQB术语的定义:根据ISO 19506和GBT 11457定义,可追溯性指的是在两个或更多工作产品之间建立联系的深度。通常我们会将可追溯性分为垂直可追溯性和水平可追溯性。
垂直可追溯性指的是贯穿开发文档到组件层次的需求可追溯。以典型的V模型为例,垂直可追溯性表现为开发后一个阶段的输出工作产品,需要保证可追溯到前一个阶段的工作产品,例如:系统需求需要覆盖用户需求、架构设计覆盖系统需求、详细设计覆盖架构设计、代码覆盖详细设计等。从V模型中可以看出,垂直可追溯性可以看成是开发生命周期中前后阶段的可追溯性。
水平可追溯性指的是指定测试级别的需求和相应测试文档之间的可追溯性。以系统测试为例,测试条件需覆盖对应的测试依据(例如:系统需求)、测试用例覆盖测试条件、测试规程覆盖测试用例,再到发现的缺陷对应相关的测试规程(更多的会体现在测试用例的对应上)。假如对应的测试用例执行通过,就可以说明已经实现了对应的系统需求。假如测试用例发现了缺陷,那么该缺陷与对应的系统需求直接对应。因此,水平可追溯性可以通过测试级别过程实现,其可追溯性主要表现在V模型左边与右边的对应。
测试过程中输出的工作产品名称差别很大,在不同组织中也可能会有不同的类型和形式。但是不管差异如何,为了实施有效的测试监督与控制,在测试依据的每个元素和与该元素相关联的各种测试工作产品质量建议和维护整个测试过程的可追溯性是很重要的。良好的可追溯性可以支持:
1、评估
通过可追溯性提供提供的信息,帮助评估测试覆盖率、产品质量、过程能力和项目进度等;以系统测试为例,根据水平可追溯性,以产品风险作为测试依据,其可追溯性体现为:基于识别的每条产品风险,得到测试条件,再到测试用例,再构建为按照风险级别排序的测试规程。然后在测试执行过程中首先运行优先级别高的测试用例,假如没有发现缺陷,说明对应的产品风险已经消失;而在测试执行中出现了失效,那么该产品风险已经成为一个问题,确定之后需要提交缺陷报告已帮助开发人员进行定位和修复问题。通过针对产品风险的水平可追溯性,根据对应测试用例的状态,可以评估产品风险的覆盖率。另外,也可以分析被测对象的剩余风险以评估产品质量、过程能力和测试执行进度。
2、支持
通过可追溯性可以帮助审计测试的完整性,判断测试过程是否符合IT管理标准,特别是帮助进行变更的影响分析。由于确定了垂直可追溯性,在出现变更时,例如需求变更,那么可以清晰地知道对后续开发工作产品的影响程度,从而对变更可能导致的风险、工作量、项目进度等作出分析与决策。另外,基于水平可追溯性,在需求出现变更时,可以从测试角度分析对测试工作量等因素的影响。
3、理解
通过可追溯性可以帮助利益干系人更好的理解测试进度报告和测试总结报告,同时在为干系人提供其他信息时,减少测试技术方面的不可理解性。例如:对于客户而言,你和他们说测试用例的执行通过率是95%,肯定不如需求覆盖率已经达到95%更好理解。或者说剩余风险还有5%,也肯定比和客户说还有5个测试用例没有执行,更好地帮助客户做出决策。
为了更好的收集与分析可追溯性相关的数据,以实施更加高效的测试监督与控制,通常会需要测试管理工具的支持。从组织层面建立自己的测试管理系统来管理工作产品,并提供它们所需的可追溯性信息。