特定环境及应用测试.ppt

上传人:牧羊曲112 文档编号:4938903 上传时间:2023-05-24 格式:PPT 页数:77 大小:540KB
返回 下载 相关 举报
特定环境及应用测试.ppt_第1页
第1页 / 共77页
特定环境及应用测试.ppt_第2页
第2页 / 共77页
特定环境及应用测试.ppt_第3页
第3页 / 共77页
特定环境及应用测试.ppt_第4页
第4页 / 共77页
特定环境及应用测试.ppt_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《特定环境及应用测试.ppt》由会员分享,可在线阅读,更多相关《特定环境及应用测试.ppt(77页珍藏版)》请在三一办公上搜索。

1、0,第 9 章 特定环境及应用测试,罗 东 俊,1,主要内容,9.1客户端/服务器体系结构测试9.2 Web应用的测试 9.3图形用户界面(GUI)测试9.4实时系统测试,2,9.1客户端/服务器体系结构测试,9.1.1 C/S系统的特点及其对测试的影响9.1.2 C/S系统的测试策略和规则,3,9.1.1 C/S系统的特点及其对测试的影响,客户/服务器(C/S)系统具有用户界面图形化、设计面向对象性、数据存储分布性、控制并发性以及平台异构性等特性,这些新的特性为C/S系统的测试引入了一系列新的问题。,4,多层软件体系结构对测试的影响,典型的C/S系统结构一般由客户端、服务器端,以及用于客户端

2、和服务器端进行通信的中间协议三部分组成。由于C/S系统由多层体系构成,各层之间存在各种复杂的关系,一个C/S系统的静态表示是一个复杂的网状结构,传统的系统集成测试策略已不适应C/S系统的集成测试。因此,需要研究适应C/S软件系统的特点的集成测试策略。另外,C/S系统的客户端和服务器端通过通信协议进行通信,需要研究通信协议一致性测试策略和方法。,5,图形用户界面特性对测试的影响,C/S系统都提供图形用户界面和用户进行交互。每个窗口上的每个对象(包括菜单、命令按钮、下拉列表、工具栏、滚动条等控件)都必须进行测试,更为复杂的是,窗口上的对象相互影响和相互控制,使得窗口上对象的测试工作成几何数量级地增

3、长。,6,面向对象特性对测试的影响,C/S系统的实现大多都采用面向对象的程序设计(OOP)。面向对象的程序设计重要特征是信息隐蔽、封装和继承,这些特征都会给测试带来一定的困难。,7,平台异构特性对测试的影响,C/S系统一般运行在异构平台之上。例如,数据库服务器可能是运行UNIX操作系统的SUN或HP服务器,应用服务器可能是UNIX服务器,也可能是基于Intel计算机的服务器。客户端既可以是各种基于Pentium的机器,也可以是各种UNIX的工作站。因此,C/S系统在各种不同类型的机器上都必须进行充分的测试。,8,9.1.2 C/S系统的测试策略和规则,由于C/S系统由客户端、服务器端和中间协议

4、三部分构成,所以C/S系统的软件测试也可分为客户端测试、服务器端测试和中间协议测试三部分分别进行。客户端软件测试主要针对GUI界面的显示、发送请求命令格式及接收服务器端回传信息的处理;服务器端软件的测试主要针对客户端的请求命令的解析、客户端命令的执行以及结果的输出;中间协议的测试主要测试客户端和服务器端的协议的解析。,9,客户端测试,对于客户端测试,可以采用以下规则:1)按照客户端功能的不同,可以将屏幕显示的界面分为静态画面和动态画面两大类,静态画面不需要与服务器端进行数据交换,动态画面需要和服务器端进行数据交互,对静态画面的测试不需编写测试脚本,只对动态画面编写测试脚本。2)按照对象的不同,

5、将各个单元分成不同大类,对每个大类分别编写相应的测试脚本。再对每个大类中包含的每一个小类进行分类,并依次类推,一直到叶节点,分别编写其测试脚本。3)根据客户端功能的不同,将客户端软件对用户的响应(Responsibility)进行等价类划分,根据等价类划分所得到的响应,定义产生各个响应的完整交互序列(Complete Interaction Sequence),对每个完整交互序列构造一个简单的有限自动机生成相应的测试用例。,10,客户端测试过程,11,服务器端测试,对服务器的测试主要是性能的测试。测试包含服务器的协调和数据管理功能以及服务器的性能(整体响应时间和数据的吞吐量)的表现。通常包括:

6、数据库测试、连接速度测试、负载测试、压力测试。,12,服务器端测试过程,13,中间协议层测试,对中间应用层协议是建立在网络通信协议之上,不需考虑数据传输过程中是否正确,只需测试两端协议实现程序是否按照协议规定的格式对数据进行打包,以及在接收数据时能否按照规定的格式进行解包。,14,C/S系统的集成测试,C/S体系结构的软件测试通常是从单个客户端开始,然后再逐步集成客户端、服务器和网络系统进行集成测试,最后进行系统的整体测试。即从以下三个层面来进行C/S系统的测试:1)客户端的独立测试。2)客户端与服务器端的集成测试。3)整体测试。先测试中间协议层通信程序,然后将中间协议层通信程序和服务器端应用

7、程序集成,最后和客户端程序进行集成,从而完成C/S系统的整个系统的集成测试。,15,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应用软件的测试模型以及基于模型的测试9.2.8 Web应用的单元、集成测试策略和方法9.2.9 Web应用的统计测试9.2.10 Web应用的性能测试9.2.11 Web应用测试工具,16,9.2.1 Web应用软件体系结

8、构的特点及对测试的影响,Web应用软件一般采用客户机/服务器/数据服务器的计算模式,在这种模式下,客户机层用于人机交互与应用的表示,Web服务器层用于事务处理,数据服务器层用于应用数据的存取和管理Web应用软件的新特点使得传统的测试技术无法胜任,因此需要一套独特的测试体系来支持Web应用软件的测试。,17,9.2.2 技术对Web应用测试的影响,HTML/XML和JSP(ASP)技术的成熟,使得创建一个Web应用系统可能会建立两个组一起来工作,即程序开发组和Web页面设计组。程序开发组负责编写业务逻辑和表示业务逻辑方面的代码。Web页面设计组则负责建立HTML页面和有关的图形。这就促使测试也分

9、为两个部分进行:第一部分,页面之间、页面和组件之间的链接是否符合系统的要求;第二部分,系统是否完成正确的功能。,18,9.2.3 Web应用测试与传统软件测试的不同,除了传统的测试之外,对Web应用系统进行的测试还包括以下几个主要方面:配置与兼容性安全性性能、负载和强度,19,9.2.4 Web应用软件的测试类型,20,Web应用软件的测试类型,21,9.2.5 Web应用软件的测试过程,首先结合待测的Web应用确定测试需求,包括测试目标、对象、方法等内容,其中测试对象直接对应为该Web应用;然后生成选择测试用例,需要明确输入信息、预期输出结果、测试步骤等内容;接着在一定的客户端配置下,通过测

10、试监控器组织管理测试执行者完成测试任务;最后是测试结果分析度量,包括分析比较和度量反馈,以验证测试效果并实现发展演化。,22,9.2.6 Web应用软件的基本测试技术,为了确保Web应用软件功能的正确,并能同时处理大量的并发用户的访问,而且兼容不同的浏览器、不同浏览器版本和操作系统,从而使Web应用软件的设计达到预期的功能需求同时又具有良好的性能,必须进行以下不同类型的测试,包括功能测试、压力和强度测试、兼容性测试、可用性测试、安全测试和回归测试等。这些测试过程完全靠手工进行不太现实,借助测试工具的帮助将会取得更好的效果。目前,市场上已经有一些实用的工具,例如,SilkTest、TelSoft

11、、Doctor Html、Visual Test、Net Mechanic等,测试人员可以根据需要来选择适当的工具,但在具体的测试环境中,需求不尽相同,因而需要针对实际情况进行调整、改进,甚至重新编写。,23,9.2.7 Web应用软件的测试模型以及基于模型的测试,可以从三个不同的角度来讨论Web测试模型(1)对象模型(2)行为模型(3)结构模型,24,对象模型,对象模型将web应用的实体分为三类对象,分别为客户端页面、服务端页面和页面中的组件客户端页面是Html文档,其中可以嵌入脚本;服务器端页面是由Web服务器执行的CGI脚本、ASP、JSP和Servlet等;组件可以是JavaApple

12、t、ActiveX控件、Html元素、JavaBean,与客户端页面、服务端页面或者其他组件交互的任意程序模块。表示对象之间的关系,除了传统的面向对象体系中的继承(Inheritance)、组成(Aggregation)和联合(Association)三种关系外,还需要增加四种新的关系类型,分别为请求(Request)、响应(Response)、导航(Navigation)和重定向(Redirect),25,对象关系图,可以通过对象关系图ORD来描述Web应用软件中的实体以及它们之间的关系。对象关系图ORD=(V,L,E)V是代表对象的节点集合L是对象间关系类型的集合,L=I,Ag,As,Re

13、q,Res,N,Rd;E是代表对象之间关系的边的集合,E=EI,EAg,EAs,EReq,ERes,EN,ERd,ENV*V*L,表示两个客户端页面之间的导航关系;EReqV*V*L,表示客户端页面和服务端页面之间的请求关系;EResV*V*L,表示客户端页面和服务端页面之间的响应关系;ERdV*V*L,表示两个服务端页面之间的重定向关系。,26,某电子商务网站的ORD图,27,某电子商务网站的ORD图,用户可以从页面Item client page中选择喜欢的某一项进行购买;从该页面可以链接到Detail client page页面;用户可以在页面Detail client page中查看商

14、品详细的信息,确定购买后将请求提交到Buy server page页面,Buy server page中包含了BuyAgent componet来处理购买请求。基于处理的结果,会产生相应的页面BuyAbortclientpage或者BuySucceed client page。从BuyAbortclientpage或者BuySucceed client page页面,用户可以链接到Item client page页面,继续下一次的购买。而且,Buy server page页面可以重定向请求给页面Auth server page,将结果用Auth client page发送给用户。,28,行为模

15、型,可以通过两方面进行行为模型建模:一方面表示Web页面之间的导航行为,利用页面导航图来描述;另一方面表示交互对象的状态依赖行为,利用对象状态图来描述。,29,页面导航图(PND),PND是一个有限状态机,每个状态代表一个客户页,状态之间的转移表示超链接,并用超链接的URL来标识;另外,由于同样的超链接可能会产生不同的客户端页面,因而转移还要用放在括号中的条件来标识,该条件指定了转移发生时提交的数据值。可以将页面导航图改写成一棵树。根节点为q0,每个节点的子节点为其通过超链接能够到达的页面,同时注意避免产生回路;这样,从根节点到每个叶子节点之间的路径就是测试路径,从而能够检查超链接的可达性,保

16、证导航行为是合适的并且是满足需求的。,30,页面导航图与导航测试树,利用这个导航树检测某些导航特性时,发现:如果有一个用户访问了Page-b,则这个用户没有机会访问除了Page-e和Page-f之外的任何页面。而且,用户将在访问Page-e和Page-f时停止,而若不使用浏览器所提供的历史页面功能则不能转到任何其他页面。,31,导航测试树的路径表达式,导航测试树的路径表达式是图中所有路径的代数表示,表达式中的变量是边标签,表达式中的操作符有三个,分别为(),+和*,其中,“()”用于表示子表达式组,“+”用于路径的选择,“*”用于路径的循环。从Page-a导航的测试路径:(var=d1url-

17、b,url-e)+(url-d,(url-e,url-f)*+(url-f,url-e)*+url-a)+(var=d2url-c,(url-d+url-f),32,对象状态图(OSD),OSD是一组层次化的、并发和交互的状态机,状态之间的转换通过事件触发来进行,多个相互依赖的OSD构成了一个组合对象状态图COSD。对象之间的交互,例如HTTP请求/响应,可以使用“/”后的触发器进行建模。例如submit/S.recv_request,触发器S.recv_request表示如果submit转移发生,则process server page S中的recv_request转移将被触发。为了同步处

18、理并发的对象,在对象状态图中引入了一个waiting状态,表示对象将会一直等待,直到它其中的一个转移被其他对象触发。,33,状态依赖图例子,34,COSD测试树,为了揭示交互对象状态依赖行为的错误,可以基于复合对象状态图COSD产生COSD测试树,然后利用COSD测试树得到测试用例。利用CDSD图得到COSD测试树时,测试树中的节点描述了COSD的复合状态,树的边代表了状态之间的转移。如果COSD包含了N个OSD,则测试树中的每个节点的状态用一个N元组来表示,下标I代表了是相应OSD的第几个状态。构造的算法如下所示:树根:是每一个OSD的初始状态的复合状态。检查树中的每一个节点,根据OSD中的

19、节点的转移对树中的节点进行扩展,并且修改相应的状态。重复第2步,直到没有节点需要扩展。测试用例是树中起始于根,结束于任何节点的各个路径的转移序列。,35,基于COSD产生COSD测试树例子,一个测试用例:keypress.(submit,recv_request).(place_bid,bid).(return,response,recv_response),36,结构模型,深入了解Web应用,必须掌握其内部的控制流和数据流信息 从变量出发,找出其定义-使用链,进而得到关于这个变量的测试路径 在变量的定义-使用链的基础上,可以由低到高地分五个等级来描述不同范围内的数据流测试函数级、函数群级、对

20、象级、对象群级和应用级,37,函数级结构测试,函数级测试用来测试单一的函数,变量的定义-使用链局限在函数内部,与传统的数据流测试类似。函数级的定义-使用链可以从函数的控制流图(CFG)中得到。CFG是有向图,节点表示语句块,边表示语句块之间的执行流。例如,如果节点i有清楚的定义,节点j有变量的使用,则定义-c-使用链存在;如果节点i有清楚的定义,边引用了变量,则定义-p-使用链存在,一个测试路径会覆盖一个定义-c-使用链或者定义-p-使用链。,38,一个CFG的例子,39,函数群级结构测试,函数群级的测试用来测试对象内部的函数群,变量的定义-使用链涉及到多个函数。一个对象内部的函数群是互相调用

21、的函数集合。因此,利用调用关系,对象内部的函数被划分为几个函数群,每个函数群的定义-使用链可以从ICFG(Interprocedural Control Flow Graph)得到。类似于传统的跨过程数据流测试,函数群级的测试路径基于跨过程的定义-使用链得到。,40,一个ICFG的例子,41,对象级结构测试,对象级测试用来测试对象内部不同的函数调用序列,变量的定义-使用链通过不同的调用序列进行改变。不同的函数调用序列的定义-使用链可以从对象控制流图OCFG得到。OCFG是对象内部的ICFG或CFG的连接,42,一个OCFG的例子,43,对象群级结构测试,对象群级测试用来测试对象群,变量的定义-

22、使用链在群中是跨对象的。一个对象群是通过消息传递关联起来的对象的集合直接消息传递:其测试路径可以从对象群中相关函数的ICFG中得到,例如函数调用。间接消息传递:例如Web页面间的数据传递,当用户点击了超链接或者提交了表单,数据就从客户端页面传递到服务器端页面,页面的脚本函数之间没有直接的调用关系。在此,引入复合控制流图CCFG,计算跨页面的定义-使用链CCFG是交互的页面间的CFG或ICFG的连接。,44,一个CCFG的例子,45,应用级结构测试,应用级测试主要用来测试应用程序范围内的变量,这些变量的定义-使用链跨不同的客户。在Web应用中,所有访问Web应用的客户都可以共享一些变量,这些共享

23、变量成为应用级变量例如访问站点的客户计数变量。应用级的测试路径可以从可达图得到,而可达图是利用与应用范围级变量相关的CFG构建。,46,一个综合例子,ebid拍卖应用中的两个页面ebid.html和bid.asp,对其进行结构测试。,47,ebid.html的代码,48,ebid.html的代码,49,bid.asp的代码,50,ebid.html的ICFG,51,ebid.html和bid.asp的CCFG,52,定义-使用链,53,9.2.8 Web应用的单元、集成测试策略和方法,Web应用软件在单元测试阶段,一个客户端页面被作为一个单元进行测试,而服务器端页面和其构造页面则一起作为一个单

24、元进行测试,利用页面测试模型生成测试用例,测试用例的执行需要驱动模块和桩模块。Web应用软件的集成测试可以利用系统的用例图或者任何功能需求文档来驱动,对于每个用例,必须考虑Web页面之间的协作。通过分析测试模型,可以鉴别将要被集中测试的所有页面,。,54,以login.asp为例进行单元测试,login.asp页面在用户首次登录时,会构建包含了一个用来接收用户名和密码的表单的登录客户端页面;用户通过提交按钮将输入的数据提交给login.asp,由该页面验证输入数据的完整性和有效性,若数据有问题,则重新返回登录客户端页面;若数据有效,则session中的nickname变量保存该用户的呢称,页面

25、重定向到其他服务端页面。,55,login.asp的判定表和部分测试用例,56,以聊天功能为例进行集成测试,聊天功能的测试模型中包括五个服务端页面,分别为:login.asp、chat.asp、read.asp、write.asp、logout.asp。其中,chat.asp会构建一个包含两个框架的客户端页面,分别装载read.asp和write.asp,read.asp会构建一个包含了最新20条信息的客户端页面,write.asp会构建一个包含插入新信息的表单的客户端页面。集成测试的次序首先集成测试login.asp和chat.asp,这时需要两个桩页面read.asp和write.asp;

26、然后,分别集成read.asp和write.asp,最后,集成logout.asp。,57,集成login.asp和chat.asp的测试用例,58,集成write.asp时增加的测试用例,59,9.2.9 Web应用的统计测试,Web应用软件一般都具有体系结构复杂、代码量大、页面众多且相互联结的特点,在一定的时间和投入内,显然是无法做到穷尽的测试,而确保其可靠性的一个很好的可选方案就是基于使用模型的统计测试。,60,使用模型,使用模型是软件使用过程中软件形态的精确描述,它把软件的使用方式以模型的方法表示出来,描述了软件的使用特性。使用模型可以用一个赋有状态节点间转换概率的有限状态机来表示。状

27、态表示软件使用过程中的内部环境,边表示状态问的转移关系。每条边都有一个激励输入与之对应,表明在当前状态下输入这种激励使软件转移到下一个状态。在特定状态下一种激励只能转移到另一个特定的状态,即状态的所有出边所对应的激励必须互不相同。每条边都有一个转移概率,转移概率标志了状态转移发生的可能性。任一状态的所有出边的转移概率之和应该为1每一个使用模型都有唯一的初态和终态。初态是使用模型的初始状态,它是每一次软件使用的开始。终态是使用模型的终止状态,它是软件每一次使用的终结。软件的每一次使用(或者说每一次操作)都从初态开始经过若干个中间状态,最后到达最终状态。,61,使用模型举例,62,统计测试用例的产

28、生和执行,统计测试用例是从初态开始经过若干个中间状态到达终态的状态和边的序列。产生测试用例时,从初态开始,在每一个状态都生成一个01间的随机数,根据状态各出边的转移概率用这个随机数选择一条出边,转移到下一个状态,直到到达终态。这样产生的测试用例是随机的,符合用户的使用习惯。,63,根据使用模型随机产生的测试用例,64,如何界定测试的充分性?,统计测试是通过测试过程中的使用链和测试链的比较来解决这个问题的。测试之初,可以把使用模型称为使用链,这是相对于测试过程中的测试链来说的。测试链是从使用链产生的,它把使用链各边所对应的转移概率替换为一个初值为0的计数器,随着测试的进行,每当一个测试用例经过该

29、边时计数器就加1。在测试过程中,测试链代表了测试环境,使用链代表使用环境。当测试环境和使用环境的差异变得足够小的时候,也就是说测试用例足够多,测试环境中所有状态用各边计数器的值算出的比值接近使用环境中各出边的转移概率时,测试就充分了,这时候我们从测试环境计算出的软件可靠性可以代表实际使用时的软件的可靠性。,65,9.2.10 Web应用的性能测试,Web性能已经成为一个突出的问题,并已成为Web成功的关键因素。经过性能测试的Web应用程序,减少了潜在的风险,建立和提高了用户的信心;同时,也使公司本身对维持高业务量和减少出错风险充满信心。,66,Web性能测试过程,67,9.2.11 Web应用

30、测试工具,(1)基于规则的分析器(2)负载/性能测试工具(3)GUI捕获(记录/脚本)和回放工具(4)基于模型的测试工具,68,9.3图形用户界面(GUI)测试,9.3.1 GUI测试概述9.2.2 GUI测试类型,69,9.3.1 GUI测试概述,GUI软件的特点GUI软件的常见错误,70,GUI软件的特点,在屏幕上提供一系列的对象阵列,包括菜单、命令按钮、下拉列表、工具栏、滚动条等控件,可以很方便的开发和使用。采用事件驱动的方式。各操作界面可以进行快速的导航。提供多文档界面。,71,GUI软件的常见错误,72,9.2.2 GUI测试类型,73,9.4实时系统测试,实时系统是指将硬件、软件、

31、人力和数据库元素集成起来,产生某种动作响应外部世界。在实时系统中,时间是交互的核心,它必须高速地获得数据,并在问题域规定的时间框架内对该问题域做出相应的处理。,74,实时系统测试的一般步骤,1)任务测试。测试实时系统的第一步是独立地测试每一个任务,对每一个任务设计白盒和黑盒测试用例,并在测试时执行每个任务。任务测试能够发现功能和逻辑错误,但是不能发现时间和行为错误。2)行为测试。利用CASE工具创建软件模型,就可能仿真实时系统,并按照外部事件的序列检查其行为,这些分析活动可以作为设计实时系统测试用例的基础。3)任务间测试。在隔离了任务内部和系统行为错误后,测试就要转向时间相关的错误。用不同的数

32、据率和处理负载来测试与其他任务通信的的异步任务,检查任务间的同步是否会产生错误。另外,测试通过消息队列和数据存储进行通信的任务,以便发现这些数据存储区区域大小方面的错误。4)系统测试。集成软件和硬件,并进行大范围的系统测试,以便发现软件/硬件接口间的错误。,75,本章总结,讨论了:9.1客户端/服务器体系结构测试9.2 Web应用的测试 9.3图形用户界面(GUI)测试9.4实时系统测试,76,习题,1.C/S系统的特点及其对测试的影响是什么?2.Web应用软件的特点及其对测试的影响是什么?3.Web应用软件的测试类型有哪些?4.Web应用软件的测试模型一般有哪几种?5.Web应用软件的性能测试的过程是什么?6.GUI软件具有怎样的特点?GUI的测试类型有哪些?7.什么是实时系统?实时系统的测试步骤是什么?,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号