最近一个多月做了个比较大的项目,且跟着别人做,比之前自己一个人闭门造车的时候学到了更多的东西。下面简单总结如下:
1、时刻想着自动化。
自动化分为两种,一个是自动化的case,一个是自动化的构造数据。
(1)自动化case:的时候,最好能开始写自动化的case,随着这个时候会浪费很多的时间在调试,但是一旦能稳定运行,以后的回归就会非常方便。试想,一个需要时不时进行回归复杂功能的项目,每一次都是手动回归的代价将是多么大。
自动化case分为前端和后端:
前端自动化case:端多使用selenium工具录制,回放。app端可以使用nativeDriver和robutium进行前端UI测试。前端自动化case包括几个种类:
(1)UI显示是否正确。这种case一旦写完,以后很少需要修改,除非是UI变动比较大的项目,这种case最好等UI稳定之后再书写。
(2)功能性case。例如前后端交互的,从前端测试比较方便。这类case要制定相应的场景,有时需要构造特定的数据。这类case与逻辑性关联紧密,以后的维护成本会比较高,但是效果比较明显。这类case也是我们重点要写的case。
一般前端case的分类:
a、UI显示。
b、交互。
c、ajax
----后续慢慢补充
后端接口自动化:后端自动化是接口的自动化。当与其他项目有关联的时候,通过传输特定的参数,看是否能得到正确的response。接口一般变动比较小,这种case维护成本小。
目前有一种中间层的测试,itest。通过传输前端的一些参数,查看函数返回的结果是否正确。这种测试方法也是最近比较流行的。itest后续补充。
2、数据构造。
测试过程中会以为一行代码很简单,几天道一个星期的时候还是很方便的,但是以后呢?以后忘记了这个的功能了,忘记了哪张表了,要从头重新开始,浪费时间是必然的。所以构造数据一定要实现自动化。脚本,写明使用方法。以后构造数据就简单的多了。
尤其项目交接之后,别人如何才能方便的测试了,构造数据的脚本就起到更大的作用啦。
3、每个问题都要跟到底。
每一个你测试过程中遇到的问题,客户都可能会遇到,不要轻易放过任何一个问题,即使是你一个误操作,即使可能是缓存,即使你觉得是浏览器原因,一定要跟下去,直到找到最本质的原因。只有有这种精神才能进步。也只有有这种精神才能减少线上发生问题的可能性。
刚进入测试,会觉得bug太多了,耽搁了测试的进度,所以为了减少麻烦,只是针对很严重或者很明显的问题才提出,一些遇到但是不明就里的问题就放弃了。这其实是最不对的做法。每一个问题的发生都有它的原因。qa的就是找到问题,并总结出这些原因。进步是在总结中成长的。
4、定位问题。
刚入门的qa会功能测试一下,遇到问题就找rd,自己也不定位下。前端问题定位可以用fierbug,httpwatch,后端问题定位用apache和tomcat的。查出错误的代码或者错误的原因,才能规避一类问题。
定位问题的方法有很多种,而且是需要慢慢总结的。这个也以后专门开总结吧。
5、从开始项目就要想着结果。即想着要有什么成果,比如自动化率到多少,完成多少构造数据的脚本,回归测试能俭省多少人力物力,自己能学到什么东西。不要单纯的点点点点,那么项目结束了,你的工作也就完了,什么也没留下。多总结,多思考,多往这几点上靠拢。