原文
首先我们从招聘岗位需求说起。看近期的职业机会,提到“软件测试工程师”,基本上都有关于自动化测试的要求。例如:
了解 selenium、appium或者其他自动化测试框架;
至少熟悉一门面向对象开发语言,有一定的代码功底优先;
熟悉Java或者python,有一定的测试自动化经验和代码阅读能力;
了解接口集成测试,会使用JMeter、Postman、SoapUI等接口测试工具;
等等,上述内容不再一一列举。突然自动化测试遍地开花,好像测试工程师的自动化测试能力成为了标配一般。本文就从自动化测试的要求入手,简单的进行自动化测试扫盲,争取让各位在一分钟之内了解自动化测试。
那么我们就从“自动化测试”五个字来剖析。
一、测试
测试:这个我们熟悉。最经典的一个解释“ 程序测试是为了发现错误而执行的过程。”这个来自于G.J.Myers的经典著作《软件测试的艺术》的定义,给我们展示了测试的本质: 过程。
测试是为了发现软件的错误,而执行的过程,这个过程可以是以下内容:
运行被测试的软件,执行软件的功能;
运行其他工具,去检查软件的内部和外部。
总而言之,是一个过程,执行的过程。接下来就一张最常见的测试示意图:
确认过眼神的手工测试
比如:测试主管让测试工程师去把软件的所有功能遍历一遍,该测试工程师通过鼠标、键盘、麦克风、手机屏幕触控等,把软件所有的功能,全部遍历了,这个叫做什么?熟悉测试的童鞋明白,这就是传说的“手工目测”呀,这是“人肉测试”。
我们好好的画这张图,实际上是这样的。
二、自动化
到这里,结合上面的说法,自动化测试就是让被测试的软件自己运行起来,执行软件的功能;或者就是让其他的工具自己运行起来,去检查软件的内部和外部。
既然测试是一个过程,那么自动化测试,就是自动的执行的过程。
接下来我们探讨的一个核心的问题:自动。什么叫做自动呢?让机器自己动,就是自动。让机器按照人类的要求,把软件的所有功能遍历一遍,这是自动化。。这样说会不会清晰一点?
重点来了,机器。让机器去动,这可不是“吃鸡”哦,这是人类命令机器去操作。不知道童鞋们有没有思考过,机器怎么知道人类的要求?上面的例子,测试主管只要告诉测试工程师,命令传达就完成了。可是人类直接的沟通,远比人机沟通容易啊。
首先,机器听不懂“人话”,无论中文,英文……
其次,机器默认会的“汇编语言”,应该是绝大部分的童鞋不会,并且短期掌握不来吧。
好吧,用“编程语言”。是时候拿出我们的另一张图了:
机器学习一个编程语言,轻松和简单到令人发指的地步:安装上去,机器就学会了。好在人类学习编程语言也不是特别难的的事情。看来这个可行。
有了编程语言,就有了人机交流的桥梁,剩下的事情,是帮机器挑选工具。做对应的测试,就需要找到对应的工具,这样自动化就自动起来了。能到这里,我希望各位童鞋了解了基本的“自动”原理。
同样,好好的画这张自动化测试的示意图:
自动化测试是: 将人工对软件的测试行为转化为由程序执行测试行为的一种实践过程, 以GUI自动化测试为例, 由自动化测试工具来完成之前手动在软件界面上的各种操作, 并自动验证测试结果是否符合预期.更多实战小技巧可以到网络上找下黑马程序员相关视频,之前在他们官网上看过视频中老师的经验分享。
在生活中,机器代替人工是自动化,而自动化测试就是用程序代替人工来进行测试,自动化测试需要掌握Python基础,想学可以看黑马程序员软件测试教程,自动化测试就可以了解了!
05 什么是自动化测试