基于界面的自动化测试—课时知识点
何谓界面级自动化测试?
利用Sikuli IDE实现计算器基础测试
利用Selenium实现论坛基础测试
利用QTP实现Agileone基础测试
不同于代码级自动化,界面级更符合黑盒测试习惯
利用代码或工具模拟鼠标和键盘操作
界面级自动化测试的核心是:对象识别和操作
所有的测试原理和方法均适用于界面级自动化测试
关于Sikuli IDE:
麻省理工学院研发的一款基于图像识别的自动化测试工具
利用Jython作为脚本语言提供自动化测试脚本的开发和调试
可对任意被测试对象实施黑盒测试
由于太过依赖于图像对比,所以其健壮性相对较差
关于Selenium:
一款开源的WEB系统自动化测试框架
兼容各种当前流行的PC浏览器
利用远程代理控制Javascript实现对象识别,健壮性好
可支持Java, C#, Ruby, Python四种编程语言
由Selenium IDE, Selenium RC, WebDriver等组成
关于QTP:
全称为Quick Test Professional
由Mercury Interactive公司研发,已被HP收购
脚本语言支持VBScript,脚本语言功能较弱
支持测试Windows, .NET, Java, Web等流行应用程序类型
上手相对容易,学习难度介于Sikuli IDE和Selenium之间
基于协议的自动化测试—何谓协议级自动化测试
对于典型的分布式三层架构应用系统来说:
代码级自动化测试更多地用于服务端
界面级自动化测试更多地用于客户端
那么在客户端与服务器端之间的数据传输,基于协议的测试便会发挥用途
基于协议的自动化测试可以弥补代码级和界面级的不足
基于协议的自动化测试更易于进行可靠性,安全性,性能等的测试
三类自动化测试技术的优劣
界面级自动化测试
优点:
该类测试工具多,有**的解决方案,易于学习,易于使用,短期效果明显
缺点:
容易出现无法识别和操作软件产品界面上的元素,从而让该技术失效
软件产品早期变化较大,不适用于此类自动化测试,否则维护成本较高
解决方案:
等待产品相对稳定时进行,主要用于验收测试和兼容性测试,不要指望找BUG
代码级自动化测试
优点:
易于实施和控制,更容易快速看到效果,结合TDD将代码质量提升一个量级
缺点:
要求有较强的编码能力和对被测代码的理解,同时需要流程和团队的配合
大量的测试驱动和测试桩程序将让研发团队望而却步
解决方案:
建议多从灰盒测试角度来实施(基于接口)而非纯白盒测试角度(基于代码逻辑)
协议级自动化测试
优点:
适用于进行功能性,性能,安全性,可靠性,可用性等测试类型
介于白盒与黑盒测试之间,非常适合于对黑白盒测试进行补充和增强
缺点:
必须非常熟悉协议规则,特别是非开放式的自定义协议规则或加密协议
解决方案:
根据测试类型和测试目的来决定是否选用此类技术,定能找到解决方案