自动化测试分类及优劣势总结
来源:互联网 发布:c语言自学难度高么 编辑:程序博客网 时间:2024/05/19 08:24
自动化测试一般分为以下三类:
1、基于代码的自动化测试(Code-Based)
优点:易于实施和控制,容易快速看到效果,结合TDD将代码质量提高一个量级
缺点:要求有较强的编码能力和对被测代码的理解,同事需要流程和团队的配合;需要开发大量的测试驱动程序和测试桩,让研发团队望而却步
解决方案:多从灰盒测试角度实施(基于接口),而非纯北河测试角度(基于代码逻辑)
2、基于界面的自动化测试(GUI-Based)
优点:工具多,有成熟的解决方案,易于学习,短期效果明显
缺点:容易出现无法识别和操作软件产品界面上的元素的情况,从而使测试失效;产品早期变化大,不适合界面自动化测试,否则维护成本较高
解决方案:等待产品稳定后进行,主要用于验收测试和兼容性测试,不要指望找BUG
3、基于协议的自动化测试(Protocol-Based)
优点:适用于功能、性能、安全性、可靠性、可用性等测试类型;介于白盒和黑盒测试之间,是对白盒和黑盒测试的补充和增强
缺点:必须非常熟悉协议规则,特别是非开放式的自定义协议规则或者加密规则
解决方案:根据测试类型和测试目的来决定是否选用此类技术,一定能找到解决方案
基于代码的自动化测试,在方法上可以分为白盒测试和灰盒测试
白盒测试的特点:
1、 白盒测试深入被测代码的逻辑细节
2、 白盒测试关注代码覆盖率和运行路径
3、 白盒测试通过测试桩(Stub,Mock)实现代码隔离
4、 白盒测试通过测试驱动(Test Fixture)执行测试用例
灰盒测试的特点:
1、 灰盒测试关注接口与参数,不关注代码实现
2、 灰盒测试适用白盒测试用例设计方法
3、 灰盒测试只关注测试驱动程序开发,不关注测试桩
测试驱动开发(TDD) 的步骤
1、 规划接口规范(接口名称及参数)
2、 开发测试驱动程序
3、 运行测试驱动程序
4、 查看测试结果(成功或失败)
5、 迭代运行第三步和第四步
6、 知道所有测试用例成功
基于界面的自动化测试
利用代码或工具模拟鼠标和键盘的操作
界面级自动化测试的核心是对象识别和操作
工具比较多,如:
1、Sikuli IDE,麻省理工学院研发的一款基于图像识别的自动化测试工具,利用Jython作为脚本语言提供自动化测试脚本的开发和调试,可对任意被测对象实施黑河测试,由于过于依赖图像对比,所以其健壮性相对较差。比如在XP下开发的脚本,在WIN7系统可能无法正常运行。
2、Selenium:一款开源的web系统自动化测试框架,兼容各种当前流行的PC浏览器,利用远程代理控制Javascript实现对象识别,健壮性好,支持Java、C#、Ruby,Python等语言。
3、QTP:全程Quick Test Professional,有Mercury Interactive公司研发,已被HP收购。脚本语言支持VBScript,脚本语言功能较弱,支持测试Windows,.NET,Java,Web等流行应用程序类型
协议级自动化测试
代码级自动化测试更多的用于服务端
界面级自动化测试更多的用于客户端
协议自动化测试用于测试客户端和服务端之间的通信,弥补代码级和界面级的不足
协议级自动化测试更适合于可靠性、安全性、性能等测试
2 0
- 自动化测试分类及优劣势总结
- 自动化测试角色分类
- 自动化测试角色分类
- 自动化测试软件分类
- 自动化测试知识体系及总结
- 流行移动应用自动化测试开源框架/工具之优劣势比较
- 测试分类总结及案例分析
- 自动化测试及测试
- 【自动化测试技术QTP系列讲座二】--自动化的分类及如何学习QTP
- 【自动化测试技术QTP系列讲座二】--自动化的分类及如何学习QTP
- Android自动化测试工具分类
- 自动化测试的主要分类
- selenium 自动化测试指南学习 入门总结及练习01
- 自动化功能测试总结
- 自动化测试工具总结
- 自动化测试总结
- Android自动化测试总结
- 自动化测试总结
- opencv _相关
- Android Fragment 真正的完全解析(上)
- lubuntu使用过的命令
- ios 调用相机 上传图片到服务器 图片角度问题
- ARGB_8888
- 自动化测试分类及优劣势总结
- 自定义navigationController的左侧按钮后返回手势失灵解决办法
- 容器 List、Set、Map
- Android自定义控件
- iOS CocoaPods 快速导入
- rose 2007
- [Servlet&JSP] HttpServletResponse的使用
- 提升UITableView性能-复杂页面的优化
- Observer Pattern 观察者模式