专业的会议网站建设,查高铁建设进度官方网站,wordpress怎么建立下载,淄博seo公司目前自动化测试并不属于新鲜的事物#xff0c;或者说自动化测试的各种方法论已经层出不穷#xff0c;但是#xff0c;能够明白自动化测试并很好落地实施的团队还不是非常多#xff0c;我们接来下用通俗的方式来介绍自动化测试……
首先我们从招聘岗位需求说起。看近期的职…目前自动化测试并不属于新鲜的事物或者说自动化测试的各种方法论已经层出不穷但是能够明白自动化测试并很好落地实施的团队还不是非常多我们接来下用通俗的方式来介绍自动化测试……
首先我们从招聘岗位需求说起。看近期的职业机会提到“软件测试工程师”基本上都有关于自动化测试的要求。例如
了解 selenium、appium或者其他自动化测试框架至少熟悉一门面向对象开发语言有一定的代码功底优先熟悉Java或者python有一定的测试自动化经验和代码阅读能力了解接口集成测试会使用JMeter、Postman、SoapUI等接口测试工具
等等上述内容不再一一列举。突然自动化测试遍地开花好像测试工程师的自动化测试能力成为了标配一般。本文就从自动化测试的要求入手简单的进行自动化测试扫盲争取让各位在一分钟之内了解自动化测试。
那么我们就从“自动化测试”五个字来剖析。
测试
测试这个我们熟悉。最经典的一个解释“程序测试是为了发现错误而执行的过程。”这个来自于G.J.Myers的经典著作《软件测试的艺术》的定义给我们展示了测试的本质过程。
测试是为了发现软件的错误而执行的过程这个过程可以是以下内容
运行被测试的软件执行软件的功能运行其他工具去检查软件的内部和外部
总而言之是一个过程执行的过程。接下来就一张最常见的测试示意图 比如测试主管让测试工程师去把软件的所有功能遍历一遍该测试工程师通过鼠标、键盘、麦克风、手机屏幕触控等把软件所有的功能全部遍历了这个叫做什么熟悉测试的童鞋明白这就是传说的“手工目测”呀这是“人肉测试”。
我们好好的画这张图实际上是这样的。 自动化
到这里结合上面的说法自动化测试就是让被测试的软件自己运行起来执行软件的功能或者就是让其他的工具自己运行起来去检查软件的内部和外部。
既然测试是一个过程那么自动化测试就是自动的执行的过程。
接下来我们探讨的一个核心的问题自动。什么叫做自动呢让机器自己动就是自动。让机器按照人类的要求把软件的所有功能遍历一遍这是自动化。。这样说会不会清晰一点
重点来了机器。让机器去动这可不是“吃鸡”哦这是人类命令机器去操作。不知道童鞋们有没有思考过机器怎么知道人类的要求上面的例子测试主管只要告诉测试工程师命令传达就完成了。可是人类直接的沟通远比人机沟通容易啊。
首先机器听不懂“人话”无论中文英文……其次机器默认会的“汇编语言”应该是绝大部分的童鞋不会并且短期掌握不来吧。
好吧用“编程语言”。是时候拿出我们的另一张图了 机器学习一个编程语言轻松和简单到令人发指的地步安装上去机器就学会了。好在人类学习编程语言也不是特别难的的事情。看来这个可行。
有了编程语言就有了人机交流的桥梁剩下的事情是帮机器挑选工具。做对应的测试就需要找到对应的工具这样自动化就自动起来了。能到这里我希望各位童鞋了解了基本的“自动”原理。
同样好好的画这张自动化测试的示意图 然后我们介绍各种常见的工具来继续讨论自动化测试。进一步探讨之前我们先看看测试的常用分类。这里不同的分类维度下我们可以分为不同的测试这里我们认真分析一下。
从软件测试的实践过程看单元测试、集成测试、确认测试、系统测试、验收测试……从软件测试的方法策略看白盒测试、黑盒测试、灰盒测试……从软件测试的测试视角看功能测试、性能测试、兼容性测试、安全测试、探索性测试……从软件测试的技术程度看手工测试、自动化测试、测试开发……
以上这些维度下的分类只有一部分测试可以通过“人肉测试”的“手工目测”完成剩下的其实从广义概念上都是需要机器来完成的。我们把这一部分测试抽取出来系统测试-黑盒测试-功能测试-手工测试。不可否认的讲这条线是目前软件测试从业者的重点覆盖范围该范围之外的地方便是自动化测试的用武之地。
自动化测试
接下来我们探讨一下主流的自动化测试方案无一例外都有人机沟通的编程语言加上机器操作的工具来组成。
功能自动化测试VBScript QTP(HP UFT)商用功能自动化测试方案Python/PHP/Java/C#/JavaScprit/Ruby Selenium/Appium 单元测试框架开源功能自动化测试方案这里我们多介绍一点Selenium/Appium 本身不能算是测试工具而只是机器用来操作浏览器的工具并且这个工具能听懂多种语言JavaC# 这两个重 (zhòng) 语言PythonRuby 这两个脚本轻语言PHPJavaScript 这两个专门处理 Web 的语言工具外加指定的语言可以让机器来操作浏览器但是到此时还无法做到测试于是才需要每个语言自己的单元测试框架来一起完成这个功能自动化测试方案的构建。此外业界还一种暂时临时的方案就是 Python 2 Robot Framework Selenium Library 插件 单元测试框架 构成的一种测试方案这个方案笔者不是非常推荐主要基于两点理念这是一种基于关键字的方案那么关键字是 QTPHP UFT的特长并不是Selenium的本意技术Python 2 终究是要退出历史舞台的如果从零开始做自动化测试还是直接入手 Python 3 吧然而 Robot Framework 不支持 Python 3……Python/Java/C#/JavaScprit/Ruby Gauge又一款开源的功能自动化测试方案Thoughtworks 的基于BDD理念的自动化测试工具Gauge 本身就是完整的测试方案Gauge 是从需求分析师BA到测试工程师QA都覆盖的测试方案Java/Python Macaca阿里巴巴的功能自动化测试方案缺点是文档少JavaScript TestCafeDevExpress 的开源功能自动化测试方案pure node.js - TestCafe不使用Selenium并且不需要插件来在实际浏览器中运行测试。 它建立在node.js的顶部因此它与现代开发工具集成和工作良好无需额外的设置或配置- TestCafe是所有设置后立即运行测试npm install完整的测试工具 - 使用单个启动命令TestCafe启动浏览器运行测试收集结果并生成报告JavaScript Postman免费的Web接口功能自动化测试方案Groovy SoapUI开源的Web接口功能自动化测试方案性能自动化测试Java/C HP LoadRunner商业版性能测试方案Java JMeter开源版性能测试方案Python locust开源版性能测试方案
这里我们借用一张别人的图Martin Fowler敏捷开发方法的创始人之一他借用金字塔的概念来展示测试的层次。 事实上自动化测试覆盖了从 UI 功能测试到契约接口测试以及底层代码方法单元测试的整个过程要想很好的掌握自动化测试那么的确需要以下三种领域的经验积累
编程语言面向对象编程优先因为大量的开源技术方案都是基于面向对象的编程方式第三方测试工具和测试框架这些主要通过官网的文档学习测试的理念与设计工具和语言只是测试的手段如何准备测试数据如何设置测试的检查点与测试步骤这些决定了测试的成败
此外综合的 前端与服务器后端技术是测试执行的保障。加油吧童鞋们一分钟过去了么
那么你现在了解到自动化测试了么如果依旧有疑问欢迎加入笔者的交流群进一步的沟通交流。 以下是我收集到的比较好的学习教程资源虽然不是什么很值钱的东西如果你刚好需要可以评论区留言【777】直接拿走就好了 各位想获取资料的朋友请点赞 评论 收藏三连
三连之后我会在评论区挨个私信发给你们~