有些人说日常的测试工做很枯燥无味,没有技术含量,迷失了方向。 还有的说闲得要命,想学点自动化测试。web
自动化测试是咱们高级软件测试人员必备的技能。高级软件测试人员不光会作测试,还会作开发。正则表达式
我从本身8年的经验出发,总结了下我对自动化测试的见解。若有不对的地方, 还请你们纠正。数据库
阅读目录编程
大概步骤以下:浏览器
1. 作好手工测试(了解各类测试的知识)-> 2. 学习编程语言-> 3. 学习Web基础(HTML,HTTP,CSS,DOM,Javascript)或者 学习Winform框架
-> 4. 学习自动化测试工具 ->5. 学习自动化测试框架 -> 6. 实现自动化测试用例 -> 7. 开发自动化测试工具 ->8. 开发自动化测试框架
编程语言
自动化测试的最高境界是: 开发测试工具,设计自动化测试框架, 让别人用。工具
自动化测试的本质是:用程序测试程序。 也就是说学习“编程语言”是学习自动化测试的基础。post
不少人问小坦克我学自动化测试,应该去学什么自动化工具。 个人回答是,第一步:应该先学习编程语言,之后再去学自动化测试工具性能
自动化测试是必定要写代码的, 编程语言水平的高低决定了自动化测试水平的高低, 有了扎实的编程技术,干什么均可以。
学习编程语言时, 要把本身当作开发人员, 系统地学习各类编程知识。
不少新手一开始,就学习复杂的自动化测试工具, 我以为这样是本末倒置了。
若是不先理解HTTP协议, 就不会理解Jemeter, LoadRunner, Fiddler, SoapUI这些工具的。
若是不先理解HTML,DOM, 就不会理解Firebug 这种工具的
若是不先理解Win32 API, 就不会理解Windows 窗体自动化测试的原理的。
若是本身没有开发过网站, 就不会理解网站的各个方面,测试起来不免有遗漏。
总之学习自动化测试,须要按部就班, 把基础打好。
自动化测试工程师的职位叫作: (SDET) Software Development Engineer in Test. 专一于自动化测试
手动测试工程师叫: (STE)Software test enginer. 专一于手动测试
在微软有不少SDET的职位,可是没有STE的职位, STE职位通常都是外包给外包公司的, 目前自动化测试仍是很是吃香的。
自动化测试也有很是多的种类,
目前大部分项目都是Web的, 因此咱们说的自动化测试,大部分都是针对Web程序的自动化测试, Web自动化测试分两类:
第一类是:模拟用户真实操做,好比,模拟点击鼠标,键盘输入,等,去操做浏览器上的控件。 (表明框架有selenium-webdriver, VS Coded UI)
这类的自动化测试的是经过高级语言(C#, JAVA, Python 等)来调用selenium的一些工具来操做浏览器,帮助咱们实行Web UI自动化
第二类是:模拟HTTP请求。 相似于这种【12306火车票网站自动登陆工具】, 这方面的知识,目前市面上资料比较少。 (之后我会出一个系列的教程)
应该像开发人员同样的心态去学习技术, 自动化测试须要掌握如下的知识:
了解Javascript, CSS的知识。
熟练掌握DOM和HTML知识, (用来解析Web界面)
熟练掌握XML技术,(须要用XML保存测试数据,用XML展示测试报告)
熟练使用C# P/inoke技术调用Windows API (能够用来操做Winform 窗口)
熟练掌握窗体"句柄"的概念
熟练使用C# 操做Windows 注册表
熟练使用C# 中的Process 类
熟练掌握数据库的基本操做语句 (测试数据库确定要用到)
熟练掌握HTTP协议的知识 (请参考个人 HTTP系列博客 [HTTP协议详解])
熟练掌握C# 中的HttpWebRequest 类的用法 (用于模拟HTTP请求)
熟练掌握正则表达式
关于软件自动化测试的书,真心很少, 我查过市面上全部关于自动化测试的书,只找到下面这边书, 掌握了这边书,基本上自动化测试就入门了。
测试套件工具: JUnit, Nunit, MSTest, 这几个工具功能都同样学起来比较简单。
性能测试工具: JMeter, VSTS 负载测试, LoadRunner(收费), QTP(收费)
Web UI 测试框架:WebDriver/Selenium, VSTS Coded UI, Watri
Windows UI 测试框架:VSTS Coded UI
其余工具: firebug, Fiddler