开发转测试:需要从基础零做起,那到底该做哪方面的测试呢?先看看热论的 自动化测试。
了解后定位:Web UI 的自动化测试
现在市场上以web项目为主,自己参与多个web项目的开发,有编程经验,于是做Web UI 的自动化测试,工具选Selenium,语言是C#或java。
分析如下:
1.1什么是自动化测试,能解决什么问题?
1.2自动化测试职位
1.3自动化测试分类
1.4那如何学习自动化测试?
1.5自动化测试工具的选择
1.1什么是自动化测试,能解决什么问题?
自动化包括一切通过工具(程序)的方式来代替或辅助手工测试的行为都可以看做自动化,包括性能测试工具(loadrunner、jmeter)。狭义上来讲,通工具记录或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证。
什么项目适合做自动化测试?适合项目周期长,软件需求变动不频繁;因为自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成。
1.2自动化测试职位
大体上有2种:
(1)软件测试工程师(STE:Software test enginer.):手工测试也可以使用功具来模拟手工测试的过程,提高效率;不单单是最基础的手工测试,点点而已。
(2) 软件测试开发工程师(SDET: Software Development Engineer in Test.):侧重用脚本写测试用例,测试开发工程师。
1.3自动化测试分类
(1) 自动化测试也有非常多的种类:
对Web UI 的自动化测试程序
对Windows 窗体UI的自动化测试程序
API测试, 比如(测试WCF service, Web API 等)
数据库测试, 比如测试存储过程
接口测试 (这种只能用自动化测)
单元测试
性能测试, 性能测试都需要用到自动化
(2) 初看比较模糊,不明白为什么那么多分类,其实它是基于产品开发不同阶段所对应的测试,如下图
至于在金字塔中三种测试的比例要根据实际的项目需求来划分。在《google 测试之道》一书,对于google产品,70%的投入为单元测试,20%为集成、接口测试,10% 为UI层的自动化测试。
1.4那如何学习自动化测试?
自动化测试学习的误区
很多新手一开始,就学习复杂的自动化测试工具, 我觉得这样是本末倒置了。
如果不先理解HTTP协议, 就不会理解Jemeter, LoadRunner, Fiddler, SoapUI这些工具的。
如果不先理解HTML,DOM, 就不会理解Firebug 这种工具的
如果不先理解Win32 API, 就不会理解Windows 窗体自动化测试的原理的。
如果自己没有开发过网站, 就不会理解网站的各个方面,测试起来难免有遗漏。
总之学习自动化测试,需要循序渐进, 把基础打好。
软件自动化测试的学习步骤
大概步骤如下:
1. 做好手工测试(了解各种测试的知识)-> 2. 学习编程语言-> 3. 学习Web基础(HTML,HTTP,CSS,DOM,Javascript)或者 学习Winform-> 4. 学习自动化测试工具 ->5. 学习自动化测试框架 -> 6. 实现自动化测试用例 -> 7. 开发自动化测试工具 ->8. 开发自动化测试框架
自动化测试的最高境界是: 开发测试工具,设计自动化测试框架, 让别人用。
1.5自动化测试工具的选择
(c/s)桌面程序的工具有:QTP、 AutoRunner
(B/S)web应用的工具有:QTP、selenium、AutoRunner、Robot Framework、
(c/s)项目推荐使用QTP,(B/S)web应用推荐用selenium。
我决定selenium 了之后,又面临了一个新的问题,选择一门语言。selenium 是支持java、python、ruby、php、C#、JavaScript 。
从语言易学性来讲,首选ruby ,python
从语言应用广度来讲,首选java、C#、php
从语言相关测试技术成度(及 资料)来讲:ruby ,python ,java
或者你可以考虑整个技术团队主流用什么语言,然后选择相应的语言。
参考资料:
http://www.cnblogs.com/TankXiao/p/3316355.html#automationTool
http://www.cnblogs.com/fnng/p/3653793.html