单元测试是收益最大的,
- 一般是针对类或函数进行的,很聚焦的。判断入参和出参,容易判断。
- 一般是开发来做,测试来做有了解程度,覆盖面的问题。
- 效率是很高的的,即使上万用例,几秒就完成。国外大厂,开发的测试代码和测试代码一起提交,还有审核。
测试方法:
- 逻辑覆盖
- 语句覆盖
- 分支覆盖
覆盖率到70%就很高了。中国的程序员单元测试很少做,特别是互联网公司。
单元测试不调用UI,只是代码的执行,很快,毫秒级。接口测试稍慢一些,要调用更多的方法类,返回一个复杂的结果,秒级的。UI效率不高,维护很难,最多是冒烟测试。
单元测试框架是Xunit,比如:pyunit,testNG,PHPunit。。。
一般支持@注解、xml,excel,开始setup,test,最后tear down。准备,执行,清理。
设计模式框架:
- 分布式:多线程,多进程,分布的框架,不同的请求发到不同的测试机上,把测试结果拿回来。WebDriver中用GAID的组件,一般大公司用。高阶的测试框架。
- 数据驱动:写的程序是不变的,测试数据是变化的。相同的测试逻辑,取外部的数据,重复的执行。外部可能是excel,数据库,循环语句等。。。 每次执行后再做断言。做到数据和程序的分离,在局部测试用起来比较好。
- 关键字驱动:三要素:定位元素,动作,值。组成测试用例。通过外部文件的值来定义。好处是不懂自动的人员也可以做自动化。做到测试用例和测试代码的分离。工具:robotframework
- 混合式 : 数据和关键字驱动。
- 自己编写
最重要是要具有编程技能,编程能力越高能做的事越多。 只是用一些工具,是不够的。
回归验证
场景一:全面的回归
5w行代码,每天500的修改,从开发得知修改的,功能测试。之前的功能加自动化
场景二:局部自动化
小的功能重复执行。