Time will tell.
原作:小坦克
最近很多做软件测试的朋友问我,如何学习自动化测试。
有些人说平常的测试工作很枯燥无味,没有技术含量,迷失了方向。 还有的说闲得要命,想学点自动化测试。
自动化测试是我们高级软件测试人员必备的技能。高级软件测试人员不光会做测试,还会做开发。
从我自己8年的经验出发,总结了下我对自动化测试的看法。
步骤如下:
自动化测试的最高境界是: 开发测试工具,设计自动化测试框架, 让别人用。
自动化测试的本质是:用程序测试程序。 也就是说学习“编程语言”是学习自动化测试的基础。
很多人问我自动化测试应该去学什么自动化工具。 我的回答是:
应该先学习编程语言,以后再去学自动化测试工具;
自动化测试是一定要写代码的, 编程语言水平的高低决定了自动化测试水平的高低, 有了扎实的编程技术,干什么都可以。
学习编程语言时, 要把自己当做开发人员, 系统地学习各种编程知识。
很多新手一开始,就学习复杂的自动化测试工具, 我觉得这样是本末倒置了。
如果不先理解HTTP协议, 就不会理解Jemeter, LoadRunner, Fiddler, SoapUI这些工具的。
如果不先理解HTML,DOM, 就不会理解Firebug 这种工具的
如果不先理解Win32 API, 就不会理解Windows 窗体自动化测试的原理的。
如果自己没有开发过网站, 就不会理解网站的各个方面,测试起来难免有遗漏。
总之学习自动化测试,需要循序渐进, 把基础打好。
自动化测试工程师的职位叫做: (SDET) Software Development Engineer in Test. 专注于自动化测试
手动测试工程师叫: (STE)Software test enginer. 专注于手动测试
在微软有很多SDET的职位,但是没有STE的职位, STE职位一般都是外包给外包公司的, 目前自动化测试还是非常吃香的。
自动化测试也有非常多的种类
1、对Web UI 的自动化测试程序
2、对Windows 窗体UI的自动化测试程序
3、API测试, 比如(测试WCF service, Web API 等)
4、数据库测试, 比如测试存储过程
5、接口测试 (这种只能用自动化测)
6、单元测试
7、性能测试, 性能测试都需要用到自动化
目前大部分项目都是Web的, 所以我们说的自动化测试,大部分都是针对Web程序的自动化测试, Web自动化测试分两类:
第一类是:模拟用户真实操作,比如,模拟点击鼠标,键盘输入,等,去操作浏览器上的控件。 (代表框架有selenium-webdriver, VS Coded UI)
这类的自动化测试的是通过高级语言(C#, JAVA, Python 等)来调用selenium的一些工具来操作浏览器,帮助我们实行Web UI自动化。
第二类是:模拟HTTP请求。 类似于这种【12306火车票网站自动登录工具】, 这方面的知识,目前市面上资料比较少。 (以后我会出一个系列的教程)
应该像开发人员一样的心态去学习技术, 自动化测试需要掌握以下的知识:
关于软件自动化测试的书,真心不多, 我查过市面上所有关于自动化测试的书,只找到下面这边书, 掌握了这边书,基本上自动化测试就入门了。
测试套件工具: JUnit, Nunit, MSTest, 这几个工具功能都一样学起来比较简单。
性能测试工具: JMeter, VSTS 负载测试, LoadRunner(收费), QTP(收费)
Web UI 测试框架:WebDriver/Selenium, VSTS Coded UI, Watri
Windows UI 测试框架:VSTS Coded UI
其他工具: firebug, Fiddler
测试是一门技术,也是一门艺术。也许你今天拥有的技术,明天就会被淘汰。同时需要我们开拓思维和眼界,积极拥抱变化,学习新知识、新方法、新技能、计算机领域讲究的是实践,学习更要讲究方式方法,学习和动手一定要结合。
如果你想学或正在学习Python全栈自动化中,也喜欢测试这个行业的话,可以加入我们175317069一起学习喔。群里有行业深潜多年的测试人技术分析讲解,也会有各项测试资料、面试题发放。期待你的加入!
最后祝愿你能成为一名优秀的软件测试工程师!
Time will tell.(时间会证明一切)