软件自动化测试原理.ppt
《软件自动化测试原理.ppt》由会员分享,可在线阅读,更多相关《软件自动化测试原理.ppt(40页珍藏版)》请在三一办公上搜索。
1、软件自动化测试技术,软件技术教研室 杨鹏,第3单元 软件自动化测试原理,3.1 代码分析3.2 GUI对象识别3.3 DOM对象识别3.4 捕获和回放3.5 脚本技术3.6 自动比较技术,自动化测试的实现方法,对于静态测试和动态测试有很大的不同:动态测试的自动化实现主要通过特定的程序来模拟软件的操作过程或操作行为,然后对软件所做出的反应或输出结果进行检查或验证。静态测试的自动化实现是按照代码规范和软件开发的最佳实践建立各种代码规则,然后依据这些规则对代码进行自动扫描,发现和规则不匹配的各种问题。软件测试自动化实现的原理和方法主要有:直接对代码进行静态和动态分析、测试过程的捕获和回放、测试脚本技
2、术、自动比较技术、虚拟用户技术和测试管理技术等。,软件自动化测试的原理,代码分析类似于高级编译系统,一般是针对不同的高级语言去构造分析工具,在工具中定义类、对象、函数、变量和常量等各个方面的规则。在分析时,通过对代码进行扫描和解析,找出不符合编码规范的地方,从而给出错误信息和警告信息。还可以根据某种质量模型评价代码的质量,生成系统的调用关系图,评估代码的复杂度等。,3.1 代码分析,Findbugs是一个静态分析工具,它检查类或JAR文件,将字节码与一组缺陷模式(Java代码规范)进行对比以发现各种可能存在的问题。通过静态分析工具可以在不运行程序的情况下对软件进行测试,更早地发现软件中的缺陷。
3、安装Findbugs(Findbugs可以独立运行,也可以作为Eclipse的插件)设置Java环境:安装JDK;配置环境变量安装Eclipse:下载Eclipse软件包并解压在Eclipse中安装Findbugs插件URL:http:/eclipse,用Findbugs做Java代码的分析,安装成功后,在Eclipse的“窗口”-“首选项”中,展开“Java”后发现Findbugs项,从中可以发现Findbugs定义了很多种检查器(Detector),而且分为不同的模式(pattern)和类型(category):纠错(correctness)、不合理的(dodgy)、不好的实践(bad p
4、ractice)、安全性(security)、性能(performance)和多线程纠错(multithreaded correctness)等问题。使用Findbugs:创建或打开一个Java项目选择该项目并单击右键,从菜单中执行“Find bugs”运行后的警告信息会显示在右下区域的Problems视图中双击某条警告信息会自动定位到编辑器中对应的源代码行,用Findbugs做Java代码的分析(续),用Findbugs做Java代码的分析(续),上述例子中没有执行代码,而是通过对代码的逐行扫描来分析代码,找出问题。这种静态测试是通过事先所建立的代码规则、由软件工具来自动执行。代码静态分析的
5、关键是建立各种规则,而这种规则的建立依赖于相应编程语言的语法。利用这些规则可以找出Java源程序的许多问题,如:没有用到的变量、多余的变量创建操作、空的catch块等。为了提高代码分析的效率,会把Java源代码解析成抽象语法树(Abstract Syntax Tree,AST),由Java符号流(对象)构成树型层次结构(语义层)。对一个规则的检验,就是对相应的AST的一次遍历。,代码分析的实现,举例说明:下面是为一个简单的计算语句而设立的规则。计算:Times=n*a+1规则:Times(plus(Var(“a”),Var(“n”),Int(“1”)它的操作过程可以抽象为 如右图所示的抽象语法
6、树:,代码分析的实现(续),还可以自定义一些代码规则来供静态分析工具使用。例如,代码复杂度和代码重复率是代码质量关心的主要问题之一。对于代码复杂度可能是含有过多的条件语句(if,while或for语句等)造成的,可通过圈复杂度的度量来检查。当圈复杂度为10或超过10时,一般就表明该方法过于复杂。所以,可设立如下的代码规则:,代码分析的实现(续),功能测试工具需要和用户界面打交道,就要能操作、控制用户界面上的各种对象,所以大部分功能测试工具是基于GUI对象识别技术来实现自动化测试的。安装功能测试工具AutoIT v3工具下载URL:英文版:/中文版:AutoIT安装成功后,从“开始”-“所有程序
7、”-“AutoIT v3”菜单中,选择执行“AutoIT窗口信息工具(AutoIT Window Info)”,就可以进行Windows对象识别的操作。,3.2 GUI对象识别,启动“AutoIT窗口信息工具”后,鼠标在Windows不同窗口或对象上移动,AutoIT窗口信息工具会显示鼠标所指向的对象信息。也可以移动查询工具来指定某个窗口、菜单、快捷键、按钮、输入框、文字信息 等各种对象,从而获得如右图所示 的信息。在操作中,会发现它可以识别工具 栏,但不能识别工具栏的某个具体 对象(如主页、打印机等图标),而对浏览器内的对象更是无能为力。,用AutoIT识别GUI对象,基于GUI对象识别和控
8、制的自动化测试工具,一般在脚本语言中采用Windows API(Application Programming Interface,应用程序编程接口)函数调用的方法来实现。Windows API涵盖了系统的管理、诊断、图形和多媒体、网络、安全性等各个方面,但在自动化测试工具中或对象识别中,主要使用Windows User Interface(用户界面)一类的API。这类函数封装了操作应用软件所需的接口函数,包括键盘和鼠标操作的捕获,以及窗口、按钮、选择项等的识别和操作。自动化测试工具可以基于这些API函数,来完成对象的识别和操作。,如何实现Windows对象识别,有些测试工具(如Seleniu
9、m)直接访问Web浏览器,利用脚本语言操纵浏览器和Web页面,这时就需要对DOM(Document Object Model,文档对象模型)对象进行识别,从而模拟用户控制浏览器中页面元素的操作。也只有获取DOM对象的属性,才可以验证页面实际的表现,即确定实际结果和期望结果是否一致。DOM定义了HTML的标准对象集合,是HTML文档的编程接口,与浏览器、平台、语言无关。DOM也就是定义了标准的访问和操纵HTML对象的方式,使得其他程序或软件可以访问页面的标准组件。DOM以层次结构组织节点、内容等相关信息,从而将一个Web页面转换为一个基于树或基于对象的多层次集合。,3.3 DOM对象识别,安装I
10、E Web Developer工具下载URL:使用IE Web Developer可以在IE浏览器内查看页面,获取完整的DOM信息。打开IE浏览器,点击“查看”-“浏览器栏”-“IE Web Developer”,启动后就可以看到当前页面的结构,并查看页面的各个元素,如下图所示。,用IE Web Developer识别DOM对象,安装Firebug(工具下载URL:)最好的DOM识别工具是Firebug,它可以JavaScript文件方式支持在IE、Opera和Safari等浏览器中运行,但推荐作为Firefox的一个插件使用。Firebug功能强大,集HTML查看和编辑、JavaScript
11、控制台、CSS/script/DOM查看器、网络状况监视器、测试于一体,可从各个不同的角度剖析Web页面内部的细节层面。打开Firefox工具下的Firebug后,在浏览器载入任何页面时,Firebug都可以生成DOM树,点击HTML标签,鼠标只要停在某个对象上,浏览器页面上相应的对象就会被明显标识出来。点击某个对象属性的参数,Firebug还可以编辑HTML。如果点击DOM标签,可以更详细的了解页面的DOM结构及其元素。,用Firebug识别DOM对象,用Firebug识别DOM对象(续),代码分析是一种白盒测试的自动化方法,捕获和回放则是一种黑盒测试的自动化方法。捕获是将用户每一步操作都记
12、录下来。这种记录的方式有两种:程序用户界面的像素坐标或程序显示对象(窗口、按钮、滚动条等)的位置,以及相对应的操作、状态变化或是属性变化。所有的记录转换为一种脚本语言所描述的过程,以模拟用户的操作。回放时,将脚本语言所描述的过程转换为屏幕上的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较。这可以大大减轻黑盒测试的工作量,在迭代开发的过程中,能够很好地进行回归测试。,3.4 捕获和回放,关于自动化测试中的“录制-回放”技术 目前的自动化负载测试解决方案几乎都是采用“录制-回放”的技术。所谓的“录制-回放”技术,就是先由手工完成一遍需要测试的流程,同时由计算机记录下这个流程期间客户端和



- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 自动化 测试 原理

链接地址:https://www.31ppt.com/p-6146007.html