测试十年,有一大半时间在做手工测试。最近几年开始看一些自动化测试的东西,有多年手工测试的基础,自动化测试进展相当快,尤其是接口自动化和功能自动化。
自动化测试在我看来就是用工具或者脚本一一实现手工测试的步骤。其中最重要的不是工具或脚本,而是测试思想。手工和自动化都可以实现测试思想所转化出的用例,只是在某些情况下自动化可以提高测试的效率。
这么多年的测试工作,测试方法总结起来只有一个:一定的条件下,做一定的操作,验证得到的实际结果与预期结果是否一致。
测试设计得好不好,在于条件和操作考虑的是否完全(也就是覆盖率高不高。测试经验、对业务的理解、对系统的了解程度都会影响测试覆盖率)
测试执行得好不好,在于实际结果与预期结果比对是否完全(漏测很多时候不是测试人员没有执行那条用例,而是执行了却某一点预期结果未验证,或不知道还有这个点需要验证。)
举个栗子:比如用户下单虚拟产品支付成功。除了提示支付成功,前端要验证用户账单有支付记录,订单里有订单记录且账单和订单各字段信息都正确,产品权限开通,权限正确。 后端验证支付列表、订单列表、产品权限新增记录且各字段正确。数据库要验证订单、支付信息、用户信息、用户权限的数据正确性。考虑是否涉及其他的功能和系统验证。实际上工作中大部分测试时间都花在验证实际结果与预期结果是否一致上面。
我接触的自动化测试大方向上主要包含三大块:
1 性能测试 必须自动化。
2 接口功能自动化
3 ui功能自动化
后面两块都属于功能验证,如果不用自动化也可以测。用手工还是自动化主要在于测试时间和成本效率的平衡与取舍。
实际工作中有很多测半天甚至1个小时的小迭代版本,手工测试很快就完成。要是写脚本也许脚本还没写完,上线时间点都到了。但换一个有几十个接口的项目,手工验证与自动化验证相比自动化效率更高。
项目中应用自动化有以下三种情况:
1 自动化脚本协助手工测试
2 部分功能的自动化
3 全量验证
再谈自动化的学习:
重要的一点:先知其然,而后知其所以然。
学技术先快速入门使用。实践中再继续深入学习,理解原理。 就像新人学做菜,跟着视频先买好材料配好菜(搭环境),再起油锅下原料还有调料一番煎炸炖煮出锅(实践)。味道好坏不提,总归知道如何做一道菜了。如果先学菜系理论,营养学等等,可能兴趣耗尽都还是不会做菜。
还有注意不要陷入找资料的漩涡。早期我也浪费了大量的时间找资料,搜哪个工具更好。其实没有好不好,对某一个专项测试而言,会一种工具另一种很快就能上手,一通百通。
我的学习记录:
2008-2015 外包公司外派,接触各种项目:手机测试、web测试、报表测试、接口测试、数据库迁移测试各种项目都做过,用的最多的是数据库
2016至今 fiddler Jmeter postman python selenium。
会的工具不多,但是每一个都在项目中有实际应用。学了一种工具,就要想办法在项目中应用起来。比如之前一直用jmeter做接口测试,学了postman之后再做接口测试就用postman,其实除了界面功能都差不多。在学习python之后,便用python+requests实现接口测试了。当会使用多种方式实现之后,你会慢慢领悟到什么样的项目适合用什么样的工具。只验证接口正确性的用jmeter和postman,如果接口数据还要做复杂的处理再验证的更适合python。
工具不用学多深,我经常说excel我们用的功能只有它全部功能的很小一部分吧。这些自动化测试工具都是,不用学得多精多全才去用。会一点用一点,下次有项目再用一点,越用越深入。
the end!