刚开始人们一直认为手工测试就是指功能测试,直到现在还有不少小伙伴感叹说不想做功能测试了,工资低又没有发展前景,问自动化测试好不好学,发展前景和就业情况等问题。
的确在不少小伙伴的潜意识里面,认为功能测试就是点点点,服务端方面的功能测试也是手动构造数据,逻辑检验,虽然比传统的点点点好一些,但仍没有跳出手工测试的范畴。对于功能测试等同于手工测试这种说法蓉妹认为是错误的,同样,将功能测试和自动化测试完全分开也是不合理的。
1、 提高效率
将功能测试转变成自动化测试的一部分是效率最高的一种方法,测试开发的一般流程是提交测试之后,根据测试单中的信息构造数据,然后启动服务,验证提测的业务逻辑,这也是典型的服务端功能测试的流程。这样做的好处是可以快速验证提测的业务功能,但需要构造的数据量比较大,时间成本也可能会更高。
除此之外,手动构造数据进行功能测试,在多次功能回归的情况下,测试人员的工作量也会大大增加,因为每次提测都需要把之前的再过一遍。
2、维护case的必要性
虽然自动化测试有很多优点,但是维护自动化case却很难,让人又爱又恨的原因在于每次跑完case失败的太多,而失败的大部分是很久以前的功能,甚至有些是你从没听说过的功能。事出必有因,在自动化case的回归世界中,也没有无缘无故就失败的case,一定会有原因所在。
当发生错误的case时,需要排查代码上一个版本是否失败,看看该版本和上一版本的差别,修改了哪些内容导致case失败。通过对比静态代码文件,以及运行期间的GDB单步调试,找出case失败的原因并不是难事。
3、如何写出高效的自动化case
说到自动化case,很多人会觉得这是个比较简单的事情,按照表或者图中的测试用例,把所有case写上就行了,当然这种情况是最理想的,但在实际工作中,你可能根本没有时间把所有的case都写完,这时你需要在规定的时间内用最少的case完成代码覆盖最大化,拒绝重复的case以及一些非常简单的case。
如果有条件,尽量在进行完粗略的主要功能验证后开始进行代码review,不但可以加深你对业务的理解,提前发现一些bug,而且对编写自动化测试用例的好处也是益处良多。
4、架构的易用性、通用性和高效性
易用性:上手快,只需要填写少量必须的参数,整个任务就可以跑起来了。
高效执行:在尽可能短的时间内把程序运行完。
学以致用在IT行业更加能够突显出差异,技术的提升,经验的总结,解决问题的能力等等,这些都是作为测试工程师需要掌握的技能,才能和别人拉出差距,拿到更高的薪资。