您的位置:首页 > 其它

软件自动化实现的原理

2015-08-05 20:41 211 查看
1.软件自动化实现的原理和方法

直接对代码进行静态和动态分析

测试过程的捕获和回放

测试脚本技术

自动比较技术

虚拟用户技术和测试管理技术

2.自动化实现过程

动态测试主要通过特定的程序来模拟软件的操作过程或操作行为,然后对软件所做出的反应或输出结果进行检查或验证

静态测试的自动化实现是按照代码规范和软件开发的最佳实践建立各种代码规则,然后依据这些规则对代码进行自动扫描,发现和规则不匹配的各种问题

3.Findbugs

它是一种静态分析工具(做java代码的分析),它检查类或JAR文件,将字节码与一组缺陷模式(java代码规范)进行对比以发现各种可能存在的问题

4.代码静态分析的关键是建立各种规则,而这种规则的建立依赖于相应编程语言的语法

代码复杂度和代码重复率是代码质量关心的主要问题之一

5.功能测试工具

它需要和用户界面打交道,就要能操作、控制用户界面上的各种对象,所以大部分功能测试工具是基于GUI对象识别技术来实现自动化测试的。功能测试工具AutoIT v3识别GUI对象

6.Selenium直接访问Web浏览器,利用脚本语言操纵浏览器和Web页面,这时就需要对DOM(文档对象模型)对象进行识别,从而模拟用户控制浏览器中页面元素的操作

DOM定义了HTML的标准对象集合,是HTML文档的编程接口,与浏览器、平台、语言无关。DOM也就是定义了标准的访问和操纵HTML对象的方式,使得其他程序或软件可以访问页面的标准组件。DOM以层次结构组织节点、内容等相关信息,从而将一个Web页面转换为一个基于树或基于对象的多层次集合。

7.用IE Web Developer识别DOM对象

用FireBug识别DOM对象:推荐作为Firefox的一个插件使用

8.脚本

它是一组测试工具执行的指令集合,也是计算机程序的一种形式。脚本可以通过录制测试的操作产生,然后在做修改,这样可以减少脚本编程的工作量;也可以直接用脚本语言编写脚本。自动化测试脚本和程序代码比较接近,包括指令和数据,还包括如下内容:

同步,何时进行下一个输入

比较信息,是测试验证点所需要的,包括比较什么,如何比较及和谁比较

捕获何种屏幕数据及存储在何处

-从何处读取测试数据

控制信息

9.测试脚本的分类

线性脚本:是录制手工执行的测试用例得到的脚本

结构化脚本:类似于结构化程序设计,具有各种逻辑结构

共享脚本:是指某个脚本可被多个测试用例使用

数据驱动脚本:将测试输入存储在独立的数据文件中(测试脚本和数据进行分离)

同一个脚本可以针对不同的输入数据来进行测试,提高了脚本的使用效率和可维护性

关键字驱动脚本:是数据驱动脚本的逻辑扩展(它将测试数据文件变成测试用例的描述,用一系列关键字指定要执行的任务)

此脚本的数量不随测试用例的数量变化,而仅随软件规模而增加。这种脚本还可以实现跨平台的测试用例共享,只需更改脚本即可

10.自动比较技术

没有验证点的自动化测试就不能称为测试,验证某个测试用例的结果,实质上是将实际结果(输出)与期望结果相比较.

自动化测试时,预期输出是事先定义的,要么插入脚本中,或记录在数据库、数据文件中,然后在测试过程中运行脚本,将捕获的结果和预期的输出进行比较,从而确定测试用例是否通过。如果不通过,将记录所执行的具体日志(log),报告错误

自动比较有两类模式——验证(Verify)和断言(Assert)

Assert失败时,则退出当前测试;而当Verify失败时,测试会继续运行

自动比较还可以对比分析屏幕或屏幕区域图像、比较窗口或窗口上控件的数据或属性、比较网页、比较文件等

注意:图片或自绘窗口特效的验证是自动化测试的难点

一般图片验证的原理:首先截取并保存正确的图片,然后将脚本运行时截取的图片与保存的图片进行比较
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: