直接抛出观点:高效的测试方法当然有,那就是采用【接口+自动化】。
为了系统阐述这个问题,让你能有较强烈的获得感,本篇文章将采用下列结构进行展开:
1、回归测试,测哪些东西?
2、传统的回归测试是如何测试的?
3、高效的回归测试怎么做?
4、高效方法具体如何做?
5、接口自动化怎么做?
6、学习资源分享。
别走,现在就讲。
回归测试是软件测试过程中的一个重要的环节,如果说冒烟测试是对软件质量的抽检,那么回归测试就是保证软件质量的最后一道屏障。
一个APP,可以分为前端和后端(也称为服务端),前端包含UI样式、交互效果、视觉体验等,服务端包含数据存取及计算、逻辑交互等。回归测试就是通过对新老功能所有场景的最终测试,找出前后端可能存在的问题。
根据统计,回归测试中发现的bug,大多数是由于新功能上线后与老功能逻辑冲突或数据不兼容等引起。
回归测试中,这些潜在的bug如何验证?传统的方法就是手动回归。
把APP按模块划分非几个测试人员,分别验证各模块的新老功能。但是这样的验证方式缺点很明显,需要耗费较多的人力和时间。
面对软件的频繁更新迭代(某些软件不是按月更新,有时是按周来进行更新),手动验证显然太费时费力了,那么,如何高效地进行回归测试?
分析潜在问题产生的原因,我们就会发现,后端(服务端)是个重灾区。比如前面所说的数据不兼容、逻辑冲突等,这些都是属于的后端范畴。
很幸运,互联网的前辈已经帮我们探索总结出来了很多好用的方法,那就是用 【接口+自动化】来做回归测试。
【接口+自动化】包含了接口测试和自动化。接口测试即通过对接口请求返回数据的校验来做验证;自动化指的是多个测试场景之间,参数的传递和逻辑的交互实现整体串联,校验最终的结果。下面通过具体数据来对比,传统手动回归测试接口VS自动化回归测试。
某信APP【通讯录】做了功能优化,现在到了回归测试环节,需要你给出测试估时。首先要知道【通讯录】有哪些小功能要回归,下面我们简单罗列一下,请看下方图片
功能太多,如果全部列出来,估计一张A4纸都不够,这里仅列出少部分,如果按照接口估算,大概有100个接口。
这么多功能都从头到尾走一遍,一个人肯定是不够,一般来说至少需要4人(每个人验证两个一级功能,每人3小时,这样算下来 需要的工时一共是 「4人x3小时」。
如果使用接口自动化来做回归测试呢?
一个接口请求的响应时间基本在200ms以内,为了方便计算,就算1s好了,100个接口验证三次,时间给它算30分钟(肯定是够了),再加上发现问题后调试排查重试等再给30分钟,所有的时间加起来就是「1人x1个小时」
从12小时的工时到1小时,这是可明明白白的效率提高!
看到这里你一定想说:效率我看到了,赶快告诉我接口自动化怎么做?
接口自动化的实现,当然是要靠框架。推荐几个主流框架:
1)Java常用的测试框架
java类框架有JUnit和TestNG,二者的对比如下图:
相对于JUnit4来说,TestNG功能更加丰富。
从实际使用的角度来说,参数化的设置及功能,以及处理有上下依赖关系的测试时,JUnit测试框架有着明显的不足。因此,一般都会使用TestNG(推荐)。
2)python常用的测试框架
常用的有Unittest、Pytest。它们的区别如下,各有特色,可以根据自己的业务需求来选择
了解了这些区别,就选择一个适合自己的赶快学起来吧。