一、在什么情况下做自动化测试,为什么做自动化测试
刚刚做测试的时候,对于在什么情况下做自动化测试只局限功能比较固定,需求变化不是很频繁且项目周期比较长的时候考虑做自动化测试。但是为什么要做自动化测试呢,具体有什么好处呢,对于我来说一直没有很深刻的感受,直到做了自动化测试才深刻的理解到了这一点。自动化测试最主要的贡献有三点:1.通用功能的冒烟测试;2.适用于对已测功能的全部回归;3.适用于需要手工重复性操作的局部化测试。下面通过三个场景对以上三点进行简单的说明。
场景1:公司所做的产品都是基于某一种行业标准,每一次全功能测试都需要检查相同的东西,我们怎么办?每一次全功能都全部测试一遍?在小公司,许多研发人员不自测,到了测试人员手中测试发现研发人员打错包了,软件还没有测,软件版本就更新了几次。
针对以上的场景,其实只要吃透标准,写出标准的测试用例,找到共通的东西写出自动化测试脚本,在每一次研发人员发布版本或者进行每一次全功能测试的时候用该脚本进行一次冒烟测试,就可以解决以上的问题。
场景2:研发人员修改了代码,作为测试人员我们不知道这些代码对哪些功能模块有影响,我们怎么去做回归测试?一个项目做完了,过了很久之后,该项目又重新启动了,我们改怎么办,当新项目处理重新走一遍流程?
针对以上场景很多人可能会说直接问研发或者根据测试人员的进行自己判断出可能影响的功能模块进行测试,这样的测试你能保证100%覆盖完全?答案当然是不能的,如果我们有自动化测试脚本,在每次修改了代码的时候我们就全部跑一遍自动化测试脚本就可以了。 同理,在需重新启动旧项目的时候我们也可以通过跑自动化测试脚本来实现。
场景3:有某一个功能要测试其容量,你需要重复的操作同一个操作来达到该目的,这个时候你怎么办?
针对该种情况自动化测试的优势就体现出来了,可能你需要重复操作20min的工作量一个简单的loop就可以完成。
二、自动化测试主要有哪些?
自动化测试通常有三种:单元自动化测试,接口自动化测试,UI自动化测试。
其中单元自动化测试一般由研发人员自己进行测试,测试人员主要进行接口以及UI的自动化测试,但是由于UI的需求一般变化比较频繁,因此测试人员做的最多的就是接口测试。
三、自动化测试框架设计的模式有哪些?
自动化测试框架设计的模式主要有4种:
1)分布式指的是测试需要在多台电脑上进行多线程或者多进程的测试,该模式主要针对测试用例比较大的情况常用的工具是grid;
2)数据驱动指的是讲测试程序与测试所需要的数据分离,每次测试程序的时候直接调用所需要的数据;
3)关键字驱动的模式,该模式主要对对谁做,怎么做,做什么三个要素进行衍生,每次只需要调用关键的函数就可以,即使不懂代码的人也能勾编写。现在很多的自动化测试工具例如KAMA即是如此,测试人员只需要了解测试功能的逻辑通过调用工具的内部函数就可以编写自动化测试脚本。
4)混合型指的是运用以上两种或以上的方法的一种模式。
四、测试人员应该具备的素质是什么?
自动化测试人员需要具备什么样的素质因人的工作而异,下面是我对自己的一些基本的要求:
1)重温基本的unix命令;
2)重温数据库相关知识和命令;
3)重温性能测试LR;
4)重温接口测试jmeter/SoapUI ;
5)学习编程语言:python,java;
6)学习通信协议:http,html,TCP/UDP等;
7)学习自动化设计框架。