一旦项目团队确定要开展自动化测试,或者正在开展自动化测试,就要深入思考自动化测试实施后,产品质量是否提升了。
在回答这个问题前,我们先看两个概念。
产品质量和测试质量是两个不同的概念,前者指的是产品本身的质量,后者指的是测试工作本身的质量。
产品质量的好坏取决于产品的整个生命周期中各个环节质量的好坏,遵循“木桶原理”,即产品质量的好坏并不取决于做得最好的那个环节,而取决于做得最差的那个环节。因此,想通过提升测试某一个环节的质量来提升产品质量是不科学的。
测试质量的好坏取决于测试工作整个链条的完成度的高低。例如,需求理解是否准确,测试用例设计是否科学,测试用例评审是否有效,测试覆盖率是否达标,等等。可以看出,测试质量是产品质量的一个子集。产品质量应通过多个环节和采取多种手段来保障,测试质量的好坏对产品质量的度量起到了至关重要的作用。
测试工作的度量是一个难度非常高的课题,在实际工作中,管理者应注意以下几点。
● 不要使用单一的指标(如测试用例对需求的覆盖率、测试用例执行通过率、代码覆盖率等)去评估测试的质量。
● 在度量指标成熟前,不要轻易将它用于考核。
测试工作如何度量不是本书重点介绍的内容。下面我们看看自动化测试如何度量。
管理者可以从如下角度了解自动化测试开展前后的效果。
● 通过对比完成某项工作所需的手动测试工时与自动化测试工时,评估自动化测试的投入产出比。
● 自动化测试能够覆盖的范围可以通过多个层面(例如需求覆盖率、功能点覆盖率、测试用例覆盖率、代码覆盖率等)反映。
测试人员在开展自动化测试的时候,应该统计实施自动化测试带来的改进数据,以便支撑后续的总结和改进,为最终决策提供必要的数据支撑,而不是“感觉如何,应该怎样”。
在冒烟测试、重点功能验证、缺陷回归测试等环节,自动化测试的实施提升了测试工作的覆盖率,减少了工时投入,提升了测试效率,可以说自动化测试是提升测试质量的有效手段。但产品质量受限于产品的整个生命周期中的各个环节,需要上下游通力配合,共同提升。
引入自动化测试可以给团队带来诸多好处,不过自动化测试也面临诸多挑战。其中一大挑战就是面对产品的变化,页面元素的改变或业务流程的调整可能导致测试用例执行失败。这时,测试人员就需要不断修改测试脚本以匹配变化的产品页面或功能。此外,要降低测试脚本的维护成本,对自动化测试工具和测试人员有更高的要求。值得注意的是,自动化测试不能完全代替手动测试,一定的手动探索与测试是必不可少的。