关于自动化测试的一点思考

测试十年,有一大半时间在做手工测试。最近几年开始看一些自动化测试的东西,有多年手工测试的基础,自动化测试进展相当快,尤其是接口自动化和功能自动化。

自动化测试在我看来就是用工具或者脚本一一实现手工测试的步骤。其中最重要的不是工具或脚本,而是测试思想。手工和自动化都可以实现测试思想所转化出的用例,只是在某些情况下自动化可以提高测试的效率。

 

这么多年的测试工作,测试方法总结起来只有一个:一定的条件下,做一定的操作,验证得到的实际结果与预期结果是否一致。

测试设计得好不好,在于条件和操作考虑的是否完全(也就是覆盖率高不高测试经验、对业务的理解、对系统的了解程度都会影响测试覆盖率)

测试执行得好不好,在于实际结果与预期结果比对是否完全(漏测很多时候不是测试人员没有执行那条用例,而是执行了却某一点预期结果未验证,或不知道还有这个点需要验证。)

 

举个栗子:比如用户下单虚拟产品支付成功。除了提示支付成功,前端要验证用户账单有支付记录,订单里有订单记录且账单和订单各字段信息都正确,产品权限开通,权限正确。 后端验证支付列表、订单列表、产品权限新增记录且各字段正确。数据库要验证订单、支付信息、用户信息、用户权限的数据正确性。考虑是否涉及其他的功能和系统验证。实际上工作中大部分测试时间都花在验证实际结果与预期结果是否一致上面。

 

我接触的自动化测试大方向上主要包含三大块:

1 性能测试  必须自动化。

扫描二维码关注公众号,回复: 4212017 查看本文章

2 接口功能自动化

3 ui功能自动化 

第一项性能测试属于专项测试,工具使用容易深入难。 后面两块都属于功能验证,如果不用自动化也可以测,而且手工测试人员实现起来很容易上手。一个项目用手工还是自动化主要在于测试时间和成本效率的平衡与取舍。实际工作中有很多测半天甚至1个小时的小迭代版本,手工测试很快就完成。要是写脚本也许脚本还没写完,上线时间点都到了。但换一个有几十个接口的项目,手工验证与自动化验证相比自动化效率更高。

 

项目中应用自动化可行方式:

用工具或编写一些脚本协助手工测试

2 实现部分功能的自动化
3 全量验证--适合于接口测试、数据测试。可以替代人工抽样验证的不足,提高测试覆盖率。

比如之前测试的炒股比赛项目,通过脚本可以验证每个用户当天的收益率是否正确,赛事期间每天盘后清算后跑一次验证。相当于监测数据的脚本了。

另一个接口测试项目,通过脚本可以验证3000多只股票数据的正确性。人工验证只能抽样。跑100条数据有2条错误数据,2%的异常,抽样验证出来的概率特别低。

像这种数据类验证用等价类边界值等都是抽样验证,用自动化实现全量验证,可以提高覆盖率到100%。而且在数据更新后可以执行一次,验证数据更新的正确性。测试的效率和覆盖率都有很大的提升,非常适合用自动化。如果遇到这样的项目,不要放过练手的机会。

 

再谈自动化的学习:

重要的一点:先知其然,而后知其所以然。

学技术先快速入门使用。实践中再继续深入学习,理解原理。 就像新人学做菜,跟着视频先买好材料配好菜(搭环境),再起油锅下原料还有调料一番煎炸炖煮出锅(实践)。味道好坏不提,总归知道如何做一道菜了。如果先学菜系理论,营养学等等,可能兴趣耗尽都还是不会做菜。

还有注意不要陷入找资料的漩涡。早期我也浪费了大量的时间找资料,搜哪个工具更好。其实没有好不好,对某一个专项测试而言,会一种工具另一种很快就能上手,一通百通。

 

 我的学习记录:

2008-2015  外包公司外派,接触各种项目:手机测试、web测试、报表测试、接口测试、数据库迁移测试各种项目都做过,用的最多的是数据库

2016至今 fiddler  Jmeter postman  python selenium。

会的工具不多,但是每一个都在项目中有实际应用。学了一种工具,就要想办法在项目中应用起来。比如之前一直用jmeter做接口测试,学了postman之后再做接口测试就用postman,其实除了界面功能都差不多。在学习python之后,便用python+requests实现接口测试了。当会使用多种方式实现之后,你会慢慢领悟到什么样的项目适合用什么样的工具。只验证接口正确性的用jmeter和postman,如果接口数据还要做复杂的处理再验证的更适合python。

工具不用学多深,我经常说excel我们用的功能只有它全部功能的很小一部分吧。这些自动化测试工具都是,不用学得多精多全才去用。会一点用一点,下次有项目再用一点,越用越深入。

 

the end!

 

猜你喜欢

转载自www.cnblogs.com/dinghanhua/p/10013714.html
今日推荐