0特定环境及应用测试ppt课件

上传人:汽*** 文档编号:593193151 上传时间:2024-09-23 格式:PPT 页数:77 大小:585KB
返回 下载 相关 举报
0特定环境及应用测试ppt课件_第1页
第1页 / 共77页
0特定环境及应用测试ppt课件_第2页
第2页 / 共77页
0特定环境及应用测试ppt课件_第3页
第3页 / 共77页
0特定环境及应用测试ppt课件_第4页
第4页 / 共77页
0特定环境及应用测试ppt课件_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《0特定环境及应用测试ppt课件》由会员分享,可在线阅读,更多相关《0特定环境及应用测试ppt课件(77页珍藏版)》请在金锄头文库上搜索。

1、第第 9 章章 特定环境及应用测试特定环境及应用测试罗罗 东东 俊俊ZSUJONE126主要内容主要内容9.1客户端客户端/服务器体系结构测试服务器体系结构测试9.2 Web应用的测试应用的测试 9.3图形用户界面图形用户界面(GUI)测试测试9.4实时系统测试实时系统测试9.1客户端客户端/服务器体系结构测试服务器体系结构测试9.1.1 C/S系统的特点及其对测试的影响系统的特点及其对测试的影响9.1.2 C/S系统的测试策略和规则系统的测试策略和规则9.1.1 C/S系统的特点及其对测试的影响系统的特点及其对测试的影响客户客户/服务器服务器(C/S)系统具有用户界面图形化、系统具有用户界面

2、图形化、设计面向对象性、数据存储分布性、控制并设计面向对象性、数据存储分布性、控制并发性以及平台异构性等特性,这些新的特性发性以及平台异构性等特性,这些新的特性为为C/S系统的测试引入了一系列新的问题。系统的测试引入了一系列新的问题。 多层软件体系结构对测试的影响多层软件体系结构对测试的影响典型的典型的C/S系统结构一般由客户端、服务器端,以及系统结构一般由客户端、服务器端,以及用于客户端和服务器端进行通信的中间协议三部分用于客户端和服务器端进行通信的中间协议三部分组成。组成。由于由于C/S系统由多层体系构成,各层之间存在各种复系统由多层体系构成,各层之间存在各种复杂的关系,一个杂的关系,一个

3、C/S系统的静态表示是一个复杂的网系统的静态表示是一个复杂的网状结构,传统的系统集成测试策略已不适应状结构,传统的系统集成测试策略已不适应C/S系统系统的集成测试。的集成测试。因此,需要研究适应因此,需要研究适应C/S软件系统的特点的集成测试软件系统的特点的集成测试策略。另外,策略。另外,C/S系统的客户端和服务器端通过通信系统的客户端和服务器端通过通信协议进行通信,需要研究通信协议一致性测试策略协议进行通信,需要研究通信协议一致性测试策略和方法。和方法。 图形用户界面特性对测试的影响图形用户界面特性对测试的影响C/S系统都提供图形用户界面和用户进行交互。系统都提供图形用户界面和用户进行交互。

4、每个窗口上的每个对象每个窗口上的每个对象(包括菜单、命令按钮、包括菜单、命令按钮、下拉列表、工具栏、滚动条等控件下拉列表、工具栏、滚动条等控件)都必须进都必须进行测试,更为复杂的是,窗口上的对象相互行测试,更为复杂的是,窗口上的对象相互影响和相互控制,使得窗口上对象的测试工影响和相互控制,使得窗口上对象的测试工作成几何数量级地增长。作成几何数量级地增长。 面向对象特性对测试的影响面向对象特性对测试的影响C/S系统的实现大多都采用面向对象的程序设系统的实现大多都采用面向对象的程序设计计(OOP)。面向对象的程序设计重要特征是信息隐蔽、面向对象的程序设计重要特征是信息隐蔽、封装和继承,这些特征都会

5、给测试带来一定封装和继承,这些特征都会给测试带来一定的困难。的困难。 平台异构特性对测试的影响平台异构特性对测试的影响C/S系统一般运行在异构平台之上。系统一般运行在异构平台之上。例如,数据库服务器可能是运行例如,数据库服务器可能是运行UNIX操作系操作系统的统的SUN或或HP服务器,应用服务器可能是服务器,应用服务器可能是UNIX服务器,也可能是基于服务器,也可能是基于Intel计算机的服计算机的服务器。客户端既可以是各种基于务器。客户端既可以是各种基于Pentium的的机器,也可以是各种机器,也可以是各种UNIX的工作站。的工作站。因此,因此,C/S系统在各种不同类型的机器上都必系统在各种

6、不同类型的机器上都必须进行充分的测试。须进行充分的测试。 9.1.2 C/S系统的测试策略和规则系统的测试策略和规则由于由于C/S系统由客户端、服务器端和中间协议系统由客户端、服务器端和中间协议三部分构成,所以三部分构成,所以C/S系统的软件测试也可分系统的软件测试也可分为客户端测试、服务器端测试和中间协议测为客户端测试、服务器端测试和中间协议测试三部分分别进行。试三部分分别进行。客户端软件测试主要针对客户端软件测试主要针对GUI界面的显示、发界面的显示、发送请求命令格式及接收服务器端回传信息的送请求命令格式及接收服务器端回传信息的处理;处理;服务器端软件的测试主要针对客户端的请求服务器端软件

7、的测试主要针对客户端的请求命令的解析、客户端命令的执行以及结果的命令的解析、客户端命令的执行以及结果的输出;输出;中间协议的测试主要测试客户端和服务器端中间协议的测试主要测试客户端和服务器端的协议的解析。的协议的解析。 客户端测试客户端测试对于客户端测试,可以采用以下规则:对于客户端测试,可以采用以下规则:1)按照客户端功能的不同,可以将屏幕显示的界面分为静态按照客户端功能的不同,可以将屏幕显示的界面分为静态画面和动态画面两大类,静态画面不需要与服务器端进行数画面和动态画面两大类,静态画面不需要与服务器端进行数据交换,动态画面需要和服务器端进行数据交互,对静态画据交换,动态画面需要和服务器端进

8、行数据交互,对静态画面的测试不需编写测试脚本,只对动态画面编写测试脚本。面的测试不需编写测试脚本,只对动态画面编写测试脚本。2)按照对象的不同,将各个单元分成不同大类,对每个大类按照对象的不同,将各个单元分成不同大类,对每个大类分别编写相应的测试脚本。再对每个大类中包含的每一个小分别编写相应的测试脚本。再对每个大类中包含的每一个小类进行分类,并依次类推,一直到叶节点,分别编写其测试类进行分类,并依次类推,一直到叶节点,分别编写其测试脚本。脚本。3)根据客户端功能的不同,将客户端软件对用户的响应根据客户端功能的不同,将客户端软件对用户的响应(Responsibility)进行等价类划分,根据等价

9、类划分所得到进行等价类划分,根据等价类划分所得到的响应,定义产生各个响应的完整交互序列的响应,定义产生各个响应的完整交互序列(Complete Interaction Sequence),对每个完整交互序列构造一个简单,对每个完整交互序列构造一个简单的有限自动机生成相应的测试用例。的有限自动机生成相应的测试用例。 客户端测试过程客户端测试过程 服务器端测试服务器端测试对服务器的测试主要是性能的测试。测试包对服务器的测试主要是性能的测试。测试包含服务器的协调和数据管理功能以及服务器含服务器的协调和数据管理功能以及服务器的性能的性能(整体响应时间和数据的吞吐量整体响应时间和数据的吞吐量)的表的表现

10、。通常包括:数据库测试、连接速度测试、现。通常包括:数据库测试、连接速度测试、负载测试、压力测试。负载测试、压力测试。 服务器端测试过程服务器端测试过程 中间协议层测试中间协议层测试 对中间应用层协议是建立在网络通信协议之对中间应用层协议是建立在网络通信协议之上,不需考虑数据传输过程中是否正确,只上,不需考虑数据传输过程中是否正确,只需测试两端协议实现程序是否按照协议规定需测试两端协议实现程序是否按照协议规定的格式对数据进行打包,以及在接收数据时的格式对数据进行打包,以及在接收数据时能否按照规定的格式进行解包。能否按照规定的格式进行解包。 C/S系统的集成测试系统的集成测试 C/S体系结构的软

11、件测试通常是从单个客户端开始,体系结构的软件测试通常是从单个客户端开始,然后再逐步集成客户端、服务器和网络系统进行集然后再逐步集成客户端、服务器和网络系统进行集成测试,最后进行系统的整体测试。即从以下三个成测试,最后进行系统的整体测试。即从以下三个层面来进行层面来进行C/S系统的测试:系统的测试:1)客户端的独立测试。客户端的独立测试。2)客户端与服务器端的集成测试。客户端与服务器端的集成测试。3)整体测试。整体测试。先测试中间协议层通信程序,然后将中间协议层通先测试中间协议层通信程序,然后将中间协议层通信程序和服务器端应用程序集成,最后和客户端程信程序和服务器端应用程序集成,最后和客户端程序

12、进行集成,从而完成序进行集成,从而完成C/S系统的整个系统的集成测系统的整个系统的集成测试。试。 9.2 Web应用的测试应用的测试 9.2.1 Web应用软件体系结构的特点及对测试的影响应用软件体系结构的特点及对测试的影响9.2.2 技术对技术对Web应用测试的影响应用测试的影响9.2.3 Web应用测试与传统软件测试的不同应用测试与传统软件测试的不同9.2.4 Web应用软件的测试类型应用软件的测试类型9.2.5 Web应用软件的测试过程应用软件的测试过程9.2.6 Web应用软件的基本测试技术应用软件的基本测试技术9.2.7 Web应用软件的测试模型以及基于模型的测试应用软件的测试模型以

13、及基于模型的测试9.2.8 Web应用的单元、集成测试策略和方法应用的单元、集成测试策略和方法9.2.9 Web应用的统计测试应用的统计测试9.2.10 Web应用的性能测试应用的性能测试9.2.11 Web应用测试工具应用测试工具9.2.1 Web应用软件体系结构的特点及应用软件体系结构的特点及对测试的影响对测试的影响Web应用软件一般采用客户机应用软件一般采用客户机/服务器服务器/数据服务器的计算模数据服务器的计算模式,在这种模式下,客户机层用于人机交互与应用的表示,式,在这种模式下,客户机层用于人机交互与应用的表示,Web服务器层用于事务处理,数据服务器层用于应用数据的服务器层用于事务处

14、理,数据服务器层用于应用数据的存取和管理存取和管理Web应用软件的新特点使得传统的测试技术无法胜任,因此应用软件的新特点使得传统的测试技术无法胜任,因此需要一套独特的测试体系来支持需要一套独特的测试体系来支持Web应用软件的测试。应用软件的测试。 9.2.2 技术对技术对Web应用测试的影响应用测试的影响HTML/XML和和JSP(ASP)技术的成熟,使得创建一技术的成熟,使得创建一个个Web应用系统可能会建立两个组一起来工作,即应用系统可能会建立两个组一起来工作,即程序开发组和程序开发组和Web页面设计组。页面设计组。程序开发组负责编写业务逻辑和表示业务逻辑方面程序开发组负责编写业务逻辑和表

15、示业务逻辑方面的代码。的代码。Web页面设计组则负责建立页面设计组则负责建立HTML页面和有关的图页面和有关的图形。形。 这就促使测试也分为两个部分进行:这就促使测试也分为两个部分进行:第一部分,页面之间、页面和组件之间的链接是否第一部分,页面之间、页面和组件之间的链接是否符合系统的要求;符合系统的要求;第二部分,系统是否完成正确的功能。第二部分,系统是否完成正确的功能。 9.2.3 Web应用测试与传统软件测试的应用测试与传统软件测试的不同不同除了传统的测试之外,对除了传统的测试之外,对Web应用系统进行应用系统进行的测试还包括以下几个主要方面:的测试还包括以下几个主要方面:配置与兼容性配置

16、与兼容性安全性安全性性能、负载和强度性能、负载和强度9.2.4 Web应用软件的测试类型应用软件的测试类型Web应用软件的测试类型应用软件的测试类型9.2.5 Web应用软件的测试过程应用软件的测试过程首先结合待测的首先结合待测的Web应用确定测试需求,包括测试目标、对应用确定测试需求,包括测试目标、对象、方法等内容,其中测试对象直接对应为该象、方法等内容,其中测试对象直接对应为该Web应用;应用;然后生成选择测试用例,需要明确输入信息、预期输出结果、然后生成选择测试用例,需要明确输入信息、预期输出结果、测试步骤等内容;测试步骤等内容;接着在一定的客户端配置下,通过测试监控器组织管理测试接着在

17、一定的客户端配置下,通过测试监控器组织管理测试执行者完成测试任务;执行者完成测试任务;最后是测试结果分析度量,包括分析比较和度量反馈,以验最后是测试结果分析度量,包括分析比较和度量反馈,以验证测试效果并实现发展演化。证测试效果并实现发展演化。 9.2.6 Web应用软件的基本测试技术应用软件的基本测试技术为了确保为了确保Web应用软件功能的正确,并能同时处理大量的并应用软件功能的正确,并能同时处理大量的并发用户的访问,而且兼容不同的浏览器、不同浏览器版本和发用户的访问,而且兼容不同的浏览器、不同浏览器版本和操作系统,从而使操作系统,从而使Web应用软件的设计达到预期的功能需求应用软件的设计达到

18、预期的功能需求同时又具有良好的性能,必须进行以下不同类型的测试,包同时又具有良好的性能,必须进行以下不同类型的测试,包括功能测试、压力和强度测试、兼容性测试、可用性测试、括功能测试、压力和强度测试、兼容性测试、可用性测试、安全测试和回归测试等。安全测试和回归测试等。这些测试过程完全靠手工进行不太现实,借助测试工具的帮这些测试过程完全靠手工进行不太现实,借助测试工具的帮助将会取得更好的效果。目前,市场上已经有一些实用的工助将会取得更好的效果。目前,市场上已经有一些实用的工具,例如,具,例如,SilkTest、TelSoft、Doctor Html、Visual Test、Net Mechanic

19、等,测试人员可以根据需要来选择适当的工具,等,测试人员可以根据需要来选择适当的工具,但在具体的测试环境中,需求不尽相同,因而需要针对实际但在具体的测试环境中,需求不尽相同,因而需要针对实际情况进行调整、改良,甚至重新编写。情况进行调整、改良,甚至重新编写。9.2.7 Web应用软件的测试模型以及基应用软件的测试模型以及基于模型的测试于模型的测试可以从三个不同的角度来讨论可以从三个不同的角度来讨论Web测试模型测试模型(1)对象模型对象模型(2)行为模型行为模型(3)结构模型结构模型对象模型对象模型对象模型将对象模型将web应用的实体分为三类对象,分别为应用的实体分为三类对象,分别为客户端页面、

20、服务端页面和页面中的组件客户端页面、服务端页面和页面中的组件客户端页面是客户端页面是Html文档,其中可以嵌入脚本;文档,其中可以嵌入脚本;服务器端页面是由服务器端页面是由Web服务器执行的服务器执行的CGI脚本、脚本、ASP、JSP和和Servlet等;等;组件可以是组件可以是JavaApplet、ActiveX控件、控件、Html元素、元素、JavaBean,与客户端页面、服务端页面或者其他组,与客户端页面、服务端页面或者其他组件交互的任意程序模块。件交互的任意程序模块。 表示对象之间的关系,除了传统的面向对象体系中表示对象之间的关系,除了传统的面向对象体系中的继承的继承(Inherita

21、nce)、组成、组成(Aggregation)和联合和联合(Association)三种关系外,还需要增加四种新的关三种关系外,还需要增加四种新的关系类型,分别为请求系类型,分别为请求(Request)、呼应、呼应(Response)、导航导航(Navigation)和重定向和重定向(Redirect) 对象关系图对象关系图可以通过对象关系图可以通过对象关系图ORD来描述来描述Web应用软件中的应用软件中的实体以及它们之间的关系。实体以及它们之间的关系。对象关系图对象关系图ORD=(V, L, E) V是代表对象的节点集合是代表对象的节点集合L是对象间关系类型的集合,是对象间关系类型的集合,L

22、=I, Ag, As, Req, Res, N, Rd; E是代表对象之间关系的边的集合,是代表对象之间关系的边的集合,E=EI, EAg, EAs, EReq, ERes, EN, ERd ,ENV*V*L,表示两个客户端页面之间的导航关系;,表示两个客户端页面之间的导航关系;EReqV*V*L,表示客户端页面和服务端页面之间,表示客户端页面和服务端页面之间的请求关系;的请求关系;EResV*V*L,表示客户端页面和服务端页面之间,表示客户端页面和服务端页面之间的响应关系;的响应关系;ERdV*V*L,表示两个服务端页面之间的重定向关,表示两个服务端页面之间的重定向关系。系。 某电子商务网站

23、的某电子商务网站的ORD图图某电子商务网站的某电子商务网站的ORD图图用户可以从页面用户可以从页面Item client page中选择喜欢的某一中选择喜欢的某一项进行购买;从该页面可以链接到项进行购买;从该页面可以链接到Detail client page页面;用户可以在页面页面;用户可以在页面Detail client page中查中查看商品详细的信息,确定购买后将请求提交到看商品详细的信息,确定购买后将请求提交到Buy server page页面,页面,Buy server page中包含了中包含了BuyAgent componet来处理购买请求。基于处理来处理购买请求。基于处理的结果,

24、会产生相应的页面的结果,会产生相应的页面BuyAbortclientpage或或者者BuySucceed client page。从。从BuyAbortclientpage或者或者BuySucceed client page页面,用户可以链接到页面,用户可以链接到Item client page页面,页面,继续下一次的购买。而且,继续下一次的购买。而且,Buy server page页面页面可以重定向请求给页面可以重定向请求给页面Auth server page,将结果,将结果用用Auth client page发送给用户。发送给用户。 行为模型行为模型 可以通过两方面进行行为模型建模:可以通

25、过两方面进行行为模型建模:一方面表示一方面表示Web页面之间的导航行为,利用页面之间的导航行为,利用页面导航图来描述;页面导航图来描述;另一方面表示交互对象的状态依赖行为,利另一方面表示交互对象的状态依赖行为,利用对象状态图来描述。用对象状态图来描述。 页面导航图页面导航图(PND)PND是一个有限状态机,每个状态代表一个客户页,是一个有限状态机,每个状态代表一个客户页,状态之间的转移表示超链接,并用超链接的状态之间的转移表示超链接,并用超链接的URL来来标识;标识;另外,由于同样的超链接可能会产生不同的客户端另外,由于同样的超链接可能会产生不同的客户端页面,因而转移还要用放在括号中的条件来标

26、识,页面,因而转移还要用放在括号中的条件来标识,该条件指定了转移发生时提交的数据值。该条件指定了转移发生时提交的数据值。可以将页面导航图改写成一棵树。根节点为可以将页面导航图改写成一棵树。根节点为q0,每,每个节点的子节点为其通过超链接能够到达的页面,个节点的子节点为其通过超链接能够到达的页面,同时注意避免产生回路;这样,从根节点到每个叶同时注意避免产生回路;这样,从根节点到每个叶子节点之间的路径就是测试路径,从而能够检查超子节点之间的路径就是测试路径,从而能够检查超链接的可达性,保证导航行为是合适的并且是满足链接的可达性,保证导航行为是合适的并且是满足需求的。需求的。 页面导航图与导航测试树

27、页面导航图与导航测试树利用这个导航树检测某些导航特性时,利用这个导航树检测某些导航特性时,发现:如果有一个用户访问了发现:如果有一个用户访问了Page-b,则这个用户没有机会访问除了则这个用户没有机会访问除了Page-e和和Page-f之外的任何页面。而且,用户将之外的任何页面。而且,用户将在访问在访问Page-e和和Page-f时停止,而若不时停止,而若不使用浏览器所提供的历史页面功能则不使用浏览器所提供的历史页面功能则不能转到任何其他页面。能转到任何其他页面。 导航测试树的路径表达式导航测试树的路径表达式 导航测试树的路径表达式是图中所有路径的导航测试树的路径表达式是图中所有路径的代数表示

28、,表达式中的变量是边标签,表达代数表示,表达式中的变量是边标签,表达式中的操作符有三个,分别为式中的操作符有三个,分别为(),+和和*,其,其中,中,“()”用于表示子表达式组,用于表示子表达式组,“+”用于用于路径的选择,路径的选择,“*”用于路径的循环。用于路径的循环。从从Page-a导航的测试路径:导航的测试路径:(var=d1url-b,url-e)+(url-d,(url-e,url-f)*+(url-f,url-e)*+url-a) + (var=d2url- c,(url-d+url-f)对象状态图对象状态图(OSD)OSD是一组层次化的、并发和交互的状态机,状态是一组层次化的、

29、并发和交互的状态机,状态之间的转换通过事件触发来进行,多个相互依赖的之间的转换通过事件触发来进行,多个相互依赖的OSD构成了一个组合对象状态图构成了一个组合对象状态图COSD。 对象之间的交互,例如对象之间的交互,例如HTTP请求请求/呼应,可以使用呼应,可以使用“/”后的触发器进行建模。后的触发器进行建模。例如例如submit/S.recv_request,触发器,触发器S.recv_request表示如果表示如果submit转移发生,则转移发生,则process server page S中的中的recv_request转移将转移将被触发。被触发。为了同步处理并发的对象,在对象状态图中引入

30、了为了同步处理并发的对象,在对象状态图中引入了一个一个waiting状态,表示对象将会一直等待,直到它状态,表示对象将会一直等待,直到它其中的一个转移被其他对象触发。其中的一个转移被其他对象触发。 状态依赖图例子状态依赖图例子 COSD测试树测试树 为了揭示交互对象状态依赖行为的错误,可以基于复合对象为了揭示交互对象状态依赖行为的错误,可以基于复合对象状态图状态图COSD产生产生COSD测试树,然后利用测试树,然后利用COSD测试树得测试树得到测试用例。到测试用例。利用利用CDSD图得到图得到COSD测试树时,测试树中的节点描述了测试树时,测试树中的节点描述了COSD的复合状态,树的边代表了状

31、态之间的转移。如果的复合状态,树的边代表了状态之间的转移。如果COSD包含了包含了N个个OSD,则测试树中的每个节点的状态用一,则测试树中的每个节点的状态用一个个N元组来表示,下标元组来表示,下标I代表了是相应代表了是相应OSD的第几个状态。构的第几个状态。构造的算法如下所示:造的算法如下所示:树根:是每一个树根:是每一个OSD的初始状态的复合状态。的初始状态的复合状态。检查树中的每一个节点,根据检查树中的每一个节点,根据OSD中的节点的转移对树中中的节点的转移对树中的节点进行扩展,并且修改相应的状态。的节点进行扩展,并且修改相应的状态。重复第重复第2步,直到没有节点需要扩展。步,直到没有节点

32、需要扩展。测试用例是树中起始于根,结束于任何节点的各个路径的转测试用例是树中起始于根,结束于任何节点的各个路径的转移序列。移序列。基于基于COSD产生产生COSD测试树例子测试树例子一个测试用例:一个测试用例:keypress.(submit,recv_request).(place_bid,bid).(return,response,recv_response)结构模型结构模型 深入了解深入了解Web应用,必须掌握其内部的控制应用,必须掌握其内部的控制流和数据流信息流和数据流信息 从变量出发,找出其定义从变量出发,找出其定义-使用链,进而得到使用链,进而得到关于这个变量的测试路径关于这个变量

33、的测试路径 在变量的定义在变量的定义-使用链的基础上,可以由低到使用链的基础上,可以由低到高地分五个等级来描述不同范围内的数据流高地分五个等级来描述不同范围内的数据流测试测试函数级、函数群级、对象级、对象群级和应函数级、函数群级、对象级、对象群级和应用级用级 函数级结构测试函数级结构测试 函数级测试用来测试单一的函数,变量的定义函数级测试用来测试单一的函数,变量的定义-使用使用链局限在函数内部,与传统的数据流测试类似。链局限在函数内部,与传统的数据流测试类似。函数级的定义函数级的定义-使用链可以从函数的控制流图使用链可以从函数的控制流图(CFG)中得到。中得到。CFG是有向图,节点表示语句块,

34、边表示语句块之是有向图,节点表示语句块,边表示语句块之间的执行流。间的执行流。例如,如果节点例如,如果节点i有清楚的定义,节点有清楚的定义,节点j有变量的使用,有变量的使用,则定义则定义-c-使用链使用链存在;如果节点存在;如果节点i有清楚的定有清楚的定义,边义,边引用了变量,则定义引用了变量,则定义-p-使用链使用链i,存在,存在,一个测试路径会覆盖一个定义一个测试路径会覆盖一个定义-c-使用链或者定义使用链或者定义-p-使用链。使用链。 一个一个CFG的例子的例子 函数群级结构测试函数群级结构测试函数群级的测试用来测试对象内部的函数群,变量函数群级的测试用来测试对象内部的函数群,变量的定义

35、的定义-使用链涉及到多个函数。使用链涉及到多个函数。一个对象内部的函数群是互相调用的函数集合。一个对象内部的函数群是互相调用的函数集合。因此,利用调用关系,对象内部的函数被划分为几因此,利用调用关系,对象内部的函数被划分为几个函数群,每个函数群的定义个函数群,每个函数群的定义-使用链可以从使用链可以从ICFG(Interprocedural Control Flow Graph)得到。得到。类似于传统的跨过程数据流测试,函数群级的测试类似于传统的跨过程数据流测试,函数群级的测试路径基于跨过程的定义路径基于跨过程的定义-使用链得到。使用链得到。 一个一个ICFG的例子的例子对象级结构测试对象级结

36、构测试对象级测试用来测试对象内部不同的函数调对象级测试用来测试对象内部不同的函数调用序列,变量的定义用序列,变量的定义-使用链通过不同的调用使用链通过不同的调用序列进行改变。序列进行改变。不同的函数调用序列的定义不同的函数调用序列的定义-使用链可以从对使用链可以从对象控制流图象控制流图OCFG得到。得到。OCFG是对象内部的是对象内部的ICFG或或CFG的连接的连接一个一个OCFG的例子的例子 对象群级结构测试对象群级结构测试对象群级测试用来测试对象群,变量的定义对象群级测试用来测试对象群,变量的定义-使用链使用链在群中是跨对象的。在群中是跨对象的。一个对象群是通过消息传递关联起来的对象的集合

37、一个对象群是通过消息传递关联起来的对象的集合直接消息传递:其测试路径可以从对象群中相关函直接消息传递:其测试路径可以从对象群中相关函数的数的ICFG中得到,中得到, 例如函数调用。例如函数调用。间接消息传递:例如间接消息传递:例如Web页面间的数据传递,当用页面间的数据传递,当用户点击了超链接或者提交了表单,数据就从客户端户点击了超链接或者提交了表单,数据就从客户端页面传递到服务器端页面,页面的脚本函数之间没页面传递到服务器端页面,页面的脚本函数之间没有直接的调用关系。有直接的调用关系。在此,引入复合控制流图在此,引入复合控制流图CCFG,计算跨页面的定,计算跨页面的定义义-使用链使用链CCF

38、G是交互的页面间的是交互的页面间的CFG或或ICFG的连接。的连接。 一个一个CCFG的例子的例子 应用级结构测试应用级结构测试应用级测试主要用来测试应用程序范围内的应用级测试主要用来测试应用程序范围内的变量,这些变量的定义变量,这些变量的定义-使用链跨不同的客户。使用链跨不同的客户。在在Web应用中,所有访问应用中,所有访问Web应用的客户都应用的客户都可以共享一些变量,这些共享变量成为应用可以共享一些变量,这些共享变量成为应用级变量级变量例如访问站点的客户计数变量。例如访问站点的客户计数变量。应用级的测试路径可以从可达图得到,而可应用级的测试路径可以从可达图得到,而可达图是利用与应用范围级

39、变量相关的达图是利用与应用范围级变量相关的CFG构构建。建。一个综合例子一个综合例子 ebid拍卖应用中的两个页面拍卖应用中的两个页面ebid.html和和bid.asp,对其进行结构测试。,对其进行结构测试。ebid.html的代码的代码 ebid.html的代码的代码bid.asp的代码的代码 ebid.html的的ICFGebid.html和和bid.asp的的CCFG定义定义-使用链使用链 9.2.8 Web应用的单元、集成测试策略应用的单元、集成测试策略和方法和方法Web应用软件在单元测试阶段,一个客户端应用软件在单元测试阶段,一个客户端页面被作为一个单元进行测试,而服务器端页面被作

40、为一个单元进行测试,而服务器端页面和其构造页面则一起作为一个单元进行页面和其构造页面则一起作为一个单元进行测试,利用页面测试模型生成测试用例,测测试,利用页面测试模型生成测试用例,测试用例的执行需要驱动模块和桩模块。试用例的执行需要驱动模块和桩模块。Web应用软件的集成测试可以利用系统的用应用软件的集成测试可以利用系统的用例图或者任何功能需求文档来驱动,对于每例图或者任何功能需求文档来驱动,对于每个用例,必须考虑个用例,必须考虑Web页面之间的协作。通页面之间的协作。通过分析测试模型,可以鉴别将要被集中测试过分析测试模型,可以鉴别将要被集中测试的所有页面,。的所有页面,。 以以login.as

41、p为例进行单元测试为例进行单元测试login.asp页面在用户首次登录时,会构建包页面在用户首次登录时,会构建包含了一个用来接收用户名和密码的表单的登含了一个用来接收用户名和密码的表单的登录客户端页面;用户通过提交按钮将输入的录客户端页面;用户通过提交按钮将输入的数据提交给数据提交给login.asp,由该页面验证输入数,由该页面验证输入数据的完整性和有效性,若数据有问题,则重据的完整性和有效性,若数据有问题,则重新返回登录客户端页面;若数据有效,则新返回登录客户端页面;若数据有效,则session中的中的nickname变量保存该用户的呢变量保存该用户的呢称,页面重定向到其他服务端页面。称,

42、页面重定向到其他服务端页面。 login.asp的判定表和部分测试用例的判定表和部分测试用例 以聊天功能为例进行集成测试以聊天功能为例进行集成测试 聊天功能的测试模型中包括五个服务端页面,分别聊天功能的测试模型中包括五个服务端页面,分别为:为:login.asp、chat.asp、read.asp、write.asp、logout.asp。其中,其中,chat.asp会构建一个包含两个框架的客户端会构建一个包含两个框架的客户端页面,分别装载页面,分别装载read.asp和和write.asp,read.asp会会构建一个包含了最新构建一个包含了最新20条信息的客户端页面,条信息的客户端页面,w

43、rite.asp会构建一个包含插入新信息的表单的客户会构建一个包含插入新信息的表单的客户端页面。端页面。集成测试的次序集成测试的次序首先集成测试首先集成测试login.asp和和chat.asp,这时需要两个,这时需要两个桩页面桩页面read.asp和和write.asp;然后,分别集成然后,分别集成read.asp和和write.asp,最后,集成最后,集成logout.asp。集成集成login.asp和和chat.asp的测试用例的测试用例集成集成write.asp时增加的测试用例时增加的测试用例9.2.9 Web应用的统计测试应用的统计测试Web应用软件一般都具有体系结构复杂、代应用软

44、件一般都具有体系结构复杂、代码量大、页面众多且相互联结的特点,在一码量大、页面众多且相互联结的特点,在一定的时间和投入内,显然是无法做到穷尽的定的时间和投入内,显然是无法做到穷尽的测试,而确保其可靠性的一个很好的可选方测试,而确保其可靠性的一个很好的可选方案就是基于使用模型的统计测试。案就是基于使用模型的统计测试。使用模型使用模型使用模型是软件使用过程中软件形态的精确描述,它把软件的使用方式使用模型是软件使用过程中软件形态的精确描述,它把软件的使用方式以模型的方法表示出来,描述了软件的使用特性。以模型的方法表示出来,描述了软件的使用特性。使用模型可以用一个赋有状态节点间转换概率的有限状态机来表

45、示。使用模型可以用一个赋有状态节点间转换概率的有限状态机来表示。状态表示软件使用过程中的内部环境,边表示状态问的转移关系。状态表示软件使用过程中的内部环境,边表示状态问的转移关系。每条边都有一个激励输入与之对应,表明在当前状态下输入这种激励使每条边都有一个激励输入与之对应,表明在当前状态下输入这种激励使软件转移到下一个状态。软件转移到下一个状态。在特定状态下一种激励只能转移到另一个特定的状态,即状态的所有出在特定状态下一种激励只能转移到另一个特定的状态,即状态的所有出边所对应的激励必须互不相同。边所对应的激励必须互不相同。 每条边都有一个转移概率,转移概率标志了状态转移发生的可能性。每条边都有

46、一个转移概率,转移概率标志了状态转移发生的可能性。任一状态的所有出边的转移概率之和应该为任一状态的所有出边的转移概率之和应该为1每一个使用模型都有唯一的初态和终态。每一个使用模型都有唯一的初态和终态。初态是使用模型的初始状态,它是每一次软件使用的开始。终态是使用初态是使用模型的初始状态,它是每一次软件使用的开始。终态是使用模型的终止状态,它是软件每一次使用的终结。模型的终止状态,它是软件每一次使用的终结。软件的每一次使用软件的每一次使用(或者说每一次操作或者说每一次操作)都从初态开始经过若干个中间状都从初态开始经过若干个中间状态,最后到达最终状态。态,最后到达最终状态。 使用模型举例使用模型举

47、例 统计测试用例的产生和执行统计测试用例的产生和执行 统计测试用例是从初态开始经过若干个中间统计测试用例是从初态开始经过若干个中间状态到达终态的状态和边的序列。状态到达终态的状态和边的序列。产生测试用例时,从初态开始,在每一个状产生测试用例时,从初态开始,在每一个状态都生成一个态都生成一个01间的随机数,根据状态各间的随机数,根据状态各出边的转移概率用这个随机数选择一条出边,出边的转移概率用这个随机数选择一条出边,转移到下一个状态,直到到达终态。这样产转移到下一个状态,直到到达终态。这样产生的测试用例是随机的,符合用户的使用习生的测试用例是随机的,符合用户的使用习惯。惯。 根据使用模型随机产生

48、的测试用例根据使用模型随机产生的测试用例 如何界定测试的充分性?如何界定测试的充分性? 统计测试是通过测试过程中的使用链和测试链的比较来解决统计测试是通过测试过程中的使用链和测试链的比较来解决这个问题的。这个问题的。测试之初,可以把使用模型称为使用链,这是相对于测试过测试之初,可以把使用模型称为使用链,这是相对于测试过程中的测试链来说的。程中的测试链来说的。测试链是从使用链产生的,它把使用链各边所对应的转移概测试链是从使用链产生的,它把使用链各边所对应的转移概率替换为一个初值为率替换为一个初值为0的计数器,随着测试的进行,每当一的计数器,随着测试的进行,每当一个测试用例经过该边时计数器就加个测

49、试用例经过该边时计数器就加1。在测试过程中,测试链代表了测试环境,使用链代表使用环在测试过程中,测试链代表了测试环境,使用链代表使用环境。当测试环境和使用环境的差异变得足够小的时候,也就境。当测试环境和使用环境的差异变得足够小的时候,也就是说测试用例足够多,测试环境中所有状态用各边计数器的是说测试用例足够多,测试环境中所有状态用各边计数器的值算出的比值接近使用环境中各出边的转移概率时,测试就值算出的比值接近使用环境中各出边的转移概率时,测试就充分了,这时候我们从测试环境计算出的软件可靠性可以代充分了,这时候我们从测试环境计算出的软件可靠性可以代表实际使用时的软件的可靠性。表实际使用时的软件的可

50、靠性。 9.2.10 Web应用的性能测试应用的性能测试Web性能已经成为一个突出的问题,并已成性能已经成为一个突出的问题,并已成为为Web成功的关键因素。经过性能测试的成功的关键因素。经过性能测试的Web应用程序,减少了潜在的风险,建立和应用程序,减少了潜在的风险,建立和提高了用户的信心;同时,也使公司本身对提高了用户的信心;同时,也使公司本身对维持高业务量和减少出错风险充满信心。维持高业务量和减少出错风险充满信心。Web性能测试过程性能测试过程9.2.11 Web应用测试工具应用测试工具(1)基于规则的分析器基于规则的分析器(2)负载负载/性能测试工具性能测试工具(3)GUI捕获捕获(记录

51、记录/脚本脚本)和回放工具和回放工具(4)基于模型的测试工具基于模型的测试工具9.3图形用户界面图形用户界面(GUI)测试测试9.3.1 GUI测试概述测试概述9.2.2 GUI测试类型测试类型 9.3.1 GUI测试概述测试概述GUI软件的特点软件的特点GUI软件的常见错误软件的常见错误 GUI软件的特点软件的特点在屏幕上提供一系列的对象阵列,包括菜单、在屏幕上提供一系列的对象阵列,包括菜单、命令按钮、下拉列表、工具栏、滚动条等控命令按钮、下拉列表、工具栏、滚动条等控件,可以很方便的开发和使用。件,可以很方便的开发和使用。采用事件驱动的方式。采用事件驱动的方式。各操作界面可以进行快速的导航。

52、各操作界面可以进行快速的导航。提供多文档界面。提供多文档界面。GUI软件的常见错误软件的常见错误9.2.2 GUI测试类型测试类型 9.4实时系统测试实时系统测试实时系统是指将硬件、软件、人力和数据库实时系统是指将硬件、软件、人力和数据库元素集成起来,产生某种动作响应外部世界。元素集成起来,产生某种动作响应外部世界。 在实时系统中,时间是交互的核心,它必须在实时系统中,时间是交互的核心,它必须高速地获得数据,并在问题域规定的时间框高速地获得数据,并在问题域规定的时间框架内对该问题域做出相应的处理。架内对该问题域做出相应的处理。实时系统测试的一般步骤实时系统测试的一般步骤 1)任务测试。测试实时

53、系统的第一步是独立地测试每一个任任务测试。测试实时系统的第一步是独立地测试每一个任务,对每一个任务设计白盒和黑盒测试用例,并在测试时执务,对每一个任务设计白盒和黑盒测试用例,并在测试时执行每个任务。任务测试能够发现功能和逻辑错误,但是不能行每个任务。任务测试能够发现功能和逻辑错误,但是不能发现时间和行为错误。发现时间和行为错误。2)行为测试。利用行为测试。利用CASE工具创建软件模型,就可能仿真实工具创建软件模型,就可能仿真实时系统,并按照外部事件的序列检查其行为,这些分析活动时系统,并按照外部事件的序列检查其行为,这些分析活动可以作为设计实时系统测试用例的基础。可以作为设计实时系统测试用例的

54、基础。3)任务间测试。在隔离了任务内部和系统行为错误后,测试任务间测试。在隔离了任务内部和系统行为错误后,测试就要转向时间相关的错误。用不同的数据率和处理负载来测就要转向时间相关的错误。用不同的数据率和处理负载来测试与其他任务通信的的异步任务,检查任务间的同步是否会试与其他任务通信的的异步任务,检查任务间的同步是否会产生错误。另外,测试通过消息队列和数据存储进行通信的产生错误。另外,测试通过消息队列和数据存储进行通信的任务,以便发现这些数据存储区区域大小方面的错误。任务,以便发现这些数据存储区区域大小方面的错误。4)系统测试。集成软件和硬件,并进行大范围的系统测试,系统测试。集成软件和硬件,并

55、进行大范围的系统测试,以便发现软件以便发现软件/硬件接口间的错误。硬件接口间的错误。本章总结本章总结讨论了:讨论了:9.1客户端客户端/服务器体系结构测试服务器体系结构测试9.2 Web应用的测试应用的测试 9.3图形用户界面图形用户界面(GUI)测试测试9.4实时系统测试实时系统测试习题习题1.C/S系统的特点及其对测试的影响是什么系统的特点及其对测试的影响是什么?2.Web应用软件的特点及其对测试的影响是什么应用软件的特点及其对测试的影响是什么?3.Web应用软件的测试类型有哪些应用软件的测试类型有哪些?4.Web应用软件的测试模型一般有哪几种应用软件的测试模型一般有哪几种?5.Web应用软件的性能测试的过程是什么应用软件的性能测试的过程是什么?6.GUI软件具有怎样的特点软件具有怎样的特点?GUI的测试类型有哪些的测试类型有哪些?7.什么是实时系统什么是实时系统?实时系统的测试步骤是什么实时系统的测试步骤是什么?

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号