Android自动化测试实战:Python+Appium +unittest
上QQ阅读APP看书,第一时间看更新

1.5 测试质量评估

一旦项目组确定要开展自动化测试,或者已经在开展自动化测试,我们就会遇到一个“灵魂拷问”,即自动化测试实施后,产品质量是否提升了?

在回答这个问题前,我们先来看几个概念。

(1)产品质量和测试质量

产品质量和测试质量是两个不同的概念,前者指的是产品本身的质量,后者指的是测试工作本身的质量。

产品质量的好坏取决于产品整个生命周期中各个环节的质量,遵循“木桶原理”(又称短板理论),即产品质量的好坏并不取决于做得最好的那个环节,而取决于做得最差的那个环节。因此,想通过提升测试这一个环节的质量来提升产品的质量是不科学的。

测试质量的好坏取决于测试工作的整个链条的完成度,例如需求理解是否完整、准确,用例设计是否科学,用例评审是否有效,测试执行是否准确,测试覆盖率是否达标,等等。可以看出测试质量是产品质量的子集。产品质量应通过多个环节和多种手段来保障,测试质量对产品质量的好坏起到了至关重要的作用。

(2)测试度量和自动化测试评估

测试工作的度量是一个难度非常高的课题,在实际工作中,管理者应注意:

不要使用单一的指标,比如测试用例对需求的覆盖率、用例执行通过率、代码覆盖率,去评估测试的质量;

在测试度量指标成熟前,不要轻易将其用于考核。

需要说明的是,测试工作如何度量不是本书重点介绍的内容。管理者可以从如下角度评估自动化测试开展前后的效果:

对比完成某项工作,采用人工测试所需的工时和采用自动化测试所需的工时;

自动化测试能够覆盖的测试范围,可以通过多层面反映出来,比如,自动化测试用例对需求的覆盖率、功能点覆盖率、代码覆盖率等。

提醒:测试人员在开展自动化测试的时候,应该注意统计(或提前埋点,方便后续统计)实施自动化测试带来的改进数据,以便支撑后续的总结和改进,为领导做出最终决策提供必要的数据支撑,而不是“感觉如何,应该怎样”。

基于以上内容,我们来回答本节开头的问题:“产品质量受限于整个产品生命周期的各个环节。测试质量的提升是产品质量提升的关键环节,产品质量有独立的评价体系。自动化测试的实施,在冒烟测试、回归测试、重点功能测试等环节提升了测试工作的覆盖率,降低了工时投入,提升了测试效率。”

(3)自动化测试面临的挑战

引入自动化测试可以为团队带来诸多好处,不过自动化测试也面临诸多挑战。其中,挑战之一是面临产品的变化,因为页面元素的改变或业务流程的调整可能会导致测试用例运行失败,这时候,测试人员就需要不断修改自动化测试脚本以匹配变化的产品页面或功能。降低脚本维护成本是对自动化测试工具和人员能力提出的巨大挑战。

值得注意的是,自动化测试不能完全代替人工测试,一定的人工测试是必不可少的。