从事软件测试很多年了,从各个大厂一路摸爬滚打,现在我有幸供职于字节跳动。个人也是从功能测试慢慢爬到了自动化测试这条路上。所以针对这个问题,我还有点发言权。
记得我一开始从功能准备转型到自动化测试,和很多“涉事未深”的同学一样,也面临首选语言的选择性障碍。在询问行业大佬到底是选Python还是Java时,基本能得到的答案无外乎:“你想干啥”,“你会啥”,“你想怎么做” 。
后来自以为想清楚了这三个问题,大佬们却像范大将军似的一顿训:“哎,谢天谢地,实用主义点,我劝你们,先弄明白自己的本职工作,把自动化的这个理念先搞懂。你测试基础不牢固,技术栈又不熟,一说全会,一做全废。连普通功能点都评估不好,到时候你问我要怎么写?”
带着这些问题,我以懵懂的心,才由深入浅的把这个“首选语言”搞明白。
软件产品自动化测试流程图
要想说透冰山上“自动化首选语言”这个表层问题,其实我们应该钻到冰山下,去了解另外两个问题:1、测试为什么要使用自动化,2、目前企业主流上是使用什么方法来实现自动化。了解了冰山下的2个问题,再来聊冰山上的问题,就能由深入浅知道答案了..
所以分享内容会稍长,我接下来的文章主题结构,就围绕这3个问题展开:
1)为什么要使用自动化测试?
2)目前企业主流上是使用什么方法来实现自动化测试
3)Python 和Java 哪个更适合做自动化测试?
好,文章正式开始....
一、软件测试为什么要使用自动化?
在回答这个问题之前,我们要先把自动化的理念搞清楚!
1、什么是自动化测试?
所谓自动化测试,指的是使用独立于待测软件的其他软件,来自动执行测试、比较实际结果与预期并生成测试报告这一过程。
在测试流程已经确定后, 测试自动化可以自动执行的一些重复但必要测试工作。 也可以完成手动测试几乎不可能完成的测试。对于持续交付和持续集成的开发方式而言, 测试自动化是至关重要的。
2、为什么测试工作要使用自动化?
自动化测试的工作原理其实本身粗略的讲就是代替手工测试,但究竟代替的是什么?
我们以传统手工测试举例,我们写一条case有前置,有步骤,有预期结果,然后人工操作,将实际结果同预期结果比对。
而自动化则是由计算机来代替我们将自动比对预期结果和实际结果的过程。
我们拿计算器举例子:
我们去计算加法,1+1=2
手工:a输入1 b输入1 预期结果为2 执行后 2=2 测试通过
程序:a