侧重说明由测试工具自动地执行某项软件测试任务,自动化处理范围比较小。测试计划,设计和管理由其他手工完成
测试自动化(Test Automation)
侧重说米国整个测试过程由计算机系统自动完成,体现更理想 的自动化思想。不仅要求工具完成测试的执行,而且要求测试的设计和管理也有系统自动完成。
测试环境的搭建和设置,自动上传软件包到服务器并完成安装
脚本自动生成,根据UML状态图,时序图等生成可运行的测试脚本
测试数据的自动产生,可以通过SQL语句在数据库产生大量的数据,用于测试
测试操作步骤的自动执行,包括软件系统的模拟操作,测试执行过程的监控
测试结果分析,实际输出和预期输出的自动对比分析
测试流程的自动处理,包括测试计划复审和批准,测试任务安排和执行,缺陷生命周期自动化处理
当然,以测试人员的目标来说,测试自动化是追求的理想境界,虽然说不现实,但是我们每时每刻都在努力着。
不同的测试任务,选用的自动化解决方案是不同的,。单元测试和开发结合非常密切,其自动化测试一般建立在继承开发环境上。功能测试和系统测试有较大的区别,功能测试需要关注图形用户界面(GUI),性能测试采用底层通信或应用程序接口(application programming Interface ,API)等方式来实现和系统的交互作用。
在自动化测试过程中,需要遵循一个有效的原则才能到达所期望的目标
自动测试反问的考量
自动化无法处理一些模糊结论的判断和验证,适合非常明确的任务,来解决某个特定的问题;
自动化测试比较不适合新功能的测试,比较适合回归测试;
单元测试测试中,自动化测试工具和开发工具集成一起,自动化测试程度比较高且全面----xnuit
集成测试阶段,自动化测试工具的作用是间接的,一般通过基本功能的验证来验证系统的集成
系统测试阶段,一般进行压力测试,性能测试,可靠性测试;功能测试的逻辑,数据,API验证比较适合自动化测试;GUI,易用性比较适合手工完成
验收测试,一般手工完成测试
软件测试自动化实现的原理和方法:直接对代码进行静态和动态分析,测试过程的捕获和回放,测试脚本技术,虚拟用户技术以及测试管理技术
1.代码分析(静态,动态分析。Selenium IDE采用JavaScript 代码对web页面DOM元素进行操作,从而实现对页面的自动化测试。所有命令对应的API都是通过Selenium这个对象的原型方式(prototype)进行定义或者扩展的。)
eg:Selenium API 中doClick代码(this.browserbot是很重要的对象)
Selenium.prototpe.doClick=function(locator){
/**
*Clicks on a link,button,checkbox or radio button.If the click action causes a new
*page to load (like a link usually does),call waitForPageToLoad.
*
*@param locator an element locator
*
*/
var element=this.browserbot.findElement(locator);
this.browserbot.clickElement(element);
}
1.2代码扩展
解压selenium-ide.jar然后用以下代码保存为selenium-api.js代替原来的同名文件。
///Create a sample for hello world
Selenium.prototype.doHelloworld=function(){
throw new SeleniumError("Hello world");
};
Selenium RC 设置HTTP代理(HTTP Proxy).测试机向代理服务器发出请求,然后代理服务器向应用服务器转发请求,并接受服务器的响应,传送给测试机。欺骗浏览器。
要是用selenium RC server 能够运行HTTPS,IE需要配置,firefox有自己的配置文件(Profile).
Selenium RC 证书selenium-1.0-beta-1\sslSupport下的cybervillainsCA.cer倒入到IE
2.GUI对象识别
3.DOM对象识别 (ieinspector)
4.脚本技术(线性,结构化,关键字,数据驱动)
5.自动化比较技术(自动化测试时,预期输入是事先定义的,要么在脚本或数据库中,将捕获的结果和预期结果进行比较)
原文转自:http://www.cnblogs.com/cloud-test/p/3530221.html