互联网公司敏捷开发模式盛行,业务做到快速迭代,压缩测试时间,很难做到全量测试,在这种背景下就诞生了精准测试。了解精准测试之前,先了解黑盒测试和白盒测试。
黑盒测试:把被测程序看成一个黑盒子,完全不了程序内部的逻辑,输入数据验证输出的结果是否正确。
白盒测试:把被测程序看成一个透明盒子,了解程序的内部结构和处理逻辑,对所有的路径进行测试。
什么是精准测试?
官方解释:精准测试是一套计算机测试辅助分析系统。精准测试的核心组件包含的软件测试示波器、用例和代码的双向追溯、智能回归测试用例选取、覆盖率分析、缺陷定位、测试用例聚类分析、测试用例自动生成系统,这些功能完整的构成了精准测试技术体系。
个人理解:精准测试就是在黑盒测试的基础上,结合白盒测试方法、测试工具,找出代码的改动点,评估代码改动的影响范围,然后有针对性地进行测试。精准测试是一套测试体系,并不是单一的测试方法。
我们按照需求的内容编写测试用例,比如一个需求编写20条测试用例,实际上,这20条用例能否完整覆盖本次被测程序的代码改动是无法确定的。快速迭代的背景下,测试时间不足将是常态,如何保证测试质量是测试人员面临的极大挑战。
为了应对挑战,需要引入精准测试。以黑盒测试为主,结合多种技术手段评估代码改动的影响范围,有针对性地进行测试,在测试时间有限的前提下保证测试质量。
精准测试实现的三种方法:
1、覆盖率监控。持续集成流程中,接入代码覆盖率工具,如常用的 Jcoco。代码是否被测试到,通过工具可以很明显看出来,然后针对未覆盖的代码逻辑进行测试;
2、代码 diff。通过对代码当前版本和上一版本的比对,找到代码的改动点,针对改动点进行测试,避免漏测。
3、建立案例库。之前测试过程中遇到的典型案例存储进去,测试时按照某种机制进行推荐,并自动生成测试用例,避免此类问题的重复出现。
想要做好精准测试,测试人员也需要具备一些代码能力,至少是能够看懂代码,知道开发改动了哪些逻辑。精准测试实现方式多是服务化、工具化,借助工具给测试人员分析代码找出测试范围提供科学的依据。
源自公众号 TestPenguin