APP下载

面向测试生成的ASM模型约简研究*

2018-07-05何柳柳

计算机工程与科学 2018年6期
关键词:测试用例约简等价

杨 羊,何柳柳,尚 颖,李 征

(北京化工大学信息科学与技术学院,北京 100029)

1 引言

随着互联网的普及和快速发展,Web应用程序已经成为人们日常生活的一部分,同时Web应用程序的不稳定性或不安全性也常常引发个人隐私泄漏甚至高额的经济损失。早在2000年Ravi等人[1]提到,Web应用程序故障在媒体公司的损失为每小时15万美金,在信用卡交易市场的损失为每小时240万美金,在金融市场的损失为每小时650万美金。测试是保障Web应用程序质量的有效手段,具有十分重要的意义。

Web应用程序具有交互性、动态性和低耦合性等,使得传统软件的测试方法不能对Web应用程序进行有效的测试,如Web应用程序的控制流通过用户的操作交互形成、Web应用程序的部分页面是动态生成的、前后端模块分别开发的模式等。基于模型的测试方法是目前Web应用程序测试中比较普遍采用的方法[2],核心是通过Web应用程序建模生成有效的测试用例来检测程序中的错误或者漏洞。通常,研究者将传统软件测试领域中的建模方法与Web应用程序的部分特性结合建立UML(Uniform Modeling Language)模型[3]、FSM(Finite State Machine)模型[4,5]和EFSM(Extended Finite State Machine)模型[6]等,进而生成测试用例对Web应用程序进行测试。

Offutt等人[7,8]进一步提出基于Web应用程序表示层建立的原子段模型ASM(Atomic Section Model),根据服务器端与客户端的交互,通过源代码的解析,识别原子段、组件及其之间的交互,构建模型。该模型可以详细描述Web应用程序的交互性、动态性和低耦合性。

在基于ASM模型的测试生成中,通过无效访问状态和无效迁移路径来扩充测试用例,实现用户不可预期行为的测试[7]。但是,由于无效访问状态和无效迁移路径的引入,不可避免地带来了测试用例空间爆炸的问题。

本文通过研究ASM模型的构建过程和相应的测试用例生成方法,提出基于模型约简的测试用例空间优化方法,定义面向ASM模型测试用例生成的等价状态和等价迁移,进一步提出合并准则约简ASM模型,有效控制无效访问状态和无效路径数量,优化测试用例空间。实验表明,本文所提方法在不影响原子段覆盖和错误检测效果的基础上,有效地约减了74.38%的测试用例空间。

本文组织结构如下:第1节介绍Web应用程序的测试以及基于ASM模型的测试方法,第2节介绍ASM模型及其测试用例生成方法,第3节介绍基于ASM模型约简方法,第4节结合实例给出相关实验分析,第5节介绍相关工作,最后进行总结。

2 ASM模型及其测试用例生成

2.1 Web应用程序

Web应用程序由完成特定任务的各种Web组件(Web Components)构成,并通过Web将服务展示给用户。在实际的应用中,Web应用程序的组件包括多个Servlet、JSP页面、HTML文件以及图像文件等。所有这些组件相互协调为用户提供一组完整的服务。

Web应用程序的执行过程中,用户通过客户端的操作向服务器端发送请求(Post),服务器端对用户的请求进行响应,用户获得(Get)需要的内容。

基于表示层的Web应用程序的执行,通过组件的迁移,完成用户的需求。组件的迁移用来描述组件连接或者耦合的形式。根据Web应用程序执行形式的不同,组件的迁移类型又可分为五类[7],分别为简单跳转迁移、表单链接迁移、组件表达迁移、操作迁移和重定向迁移,其中组件表达迁移是指组件的执行,形成一条从组件到原子段的迁移,是组件到组件内的迁移;操作迁移是指用户通过浏览器上的操作(如前进、后退和刷新等)形成的组件迁移;重定向迁移指不可控制的服务器端组件的迁移,如Java Servlet中的重定向方法,对不同的URL(Uniform Resource Locator)重新生成相同的请求。

2.2 ASM模型

Offutt等人[7]基于Web应用程序表示层建立的ASM模型,通过解析源代码,识别组件内部执行逻辑和组件间迁移关系,其解析的主要对象是原子段,并通过程序设计的跳转或者方法调用形成ASM模型,对原子段定义如下。

定义1(原子段(Atomic Section)) 如果一段HTML中的任意一部分被发送给客户端,则整个段都会被发送给客户端,具有这种性质的HTML代码段,称为原子段。

通过解析源代码,识别服务器端发送给客户端的原子段,解析原子段之间的逻辑结果,形成原子段到组件的描述。ASM模型是两层模型,底层是组件交互模型CIM(Components Interaction Model),通过对组件的解析,形成组件内部原子段的控制流图;上层是应用迁移图ATG(Application Transition Graph),通过CIM中原子段以及组件与其他组件的调用关系形成组件间的迁移图。测试用例主要基于应用迁移图生成,应用迁移图定义如下:

定义2(应用迁移图) ATG是一个四元组〈Γ,Θ,Σ,α〉。Γ代表Web软件组件的有限集合,Γ={CIM1,CIM2,…,CIMn};Θ代表Γ中的Web应用程序组件间的迁移的集合,Θ=T1∪T2∪…∪Tn,Ti是CIMi的迁移的结合;Σ是指定义Web应用程序状态的变量的集合,Σ中的变量是从组件到页面传递的参数;α是起始页面的集合,α={S1,S2,…,Sn},Si是组件CIMi的起始页面。

2.3 基于ASM模型的测试用例生成

基于图的测试方法通常是基于图生成测试路径及测试数据。由于ASM模型中迁移参数只是客户端与服务器端的参数传递,不涉及数据层的数据传输,因此基于ASM模型的测试用例生成只包括测试路径的生成,即基于ASM模型的迁移路径。

ASM模型中组件之间的迁移,根据用户操作的不同,其迁移类型、迁移带有的信息均不同。通过迁移的定义可以来描述用户不同操作导致的组件间的迁移,因此对迁移的定义如下:

定义3(迁移) ASM模型的迁移是指从一个组件到达另一个组件的过程,即迁移ti可描述为源状态Source(ti),通过带有Label(ti)的Type(ti)类型迁移到达目标状态Target(ti),即Source(ti)[Label(ti)](Type(ti))Target(ti)。其中,Label(ti)表示迁移带有的标签;Type(ti)表示迁移类型,迁移的类型包括简单跳转迁移、表单链接迁移、组件表达迁移、操作迁移和重定向。

基于ASM模型生成的测试路径是ASM模型的迁移路径,对迁移路径的定义如下:

定义4(迁移路径) ASM模型的迁移路径是指ASM模型组件连续迁移序列,即路径П=t1t2…ti…tn,其中target(ti)=source(ti+1)(1≤i≤n),П∈Θ。

基于图生成的迁移路径是可执行路径,即按照程序员设计的迁移,用户按照预期操作依次形成迁移路径中的每个迁移ti。然而,在Web应用程序的实际运行过程中,用户的行为是不可预期的,如通过浏览器的前进/后退按钮实现Web应用程序非预期迁移。因此,迁移路径可行不能保证Web应用程序没有错误。

ATG不能描述Web应用程序实际运行过程中用户行为不可预期的行为,Offutt等人[7]提出的测试路径生成方法,在基于ASM模型生成的主要路径的基础上,通过扩充无效访问状态和无效迁移路径,形成可以描述用户不可预期行为的测试用例集。

定义5(无效访问状态) 将非起始页面中不存在自身循环的状态称为无效访问状态。

无效访问是根据用户在浏览器端进行的无目的的或者有目的的操作迁移,如输入非起始页面的URL地址,从Web应用程序的任意中间位置进入访问。

定义6(无效迁移) 若从源状态到目标状态的迁移不存在,且目标状态为无效访问状态,将这类迁移称为无效迁移。

无效迁移是由于用户在浏览器端的操作导致的迁移,如后退、刷新、前进和URL重写导致的Web应用程序组件的迁移。

基于ASM模型的测试用例生成方法主要包括以下三步:

(1)基于主要路径覆盖生成初始测试用例。

(2)针对每个无效访问状态生成基于无效访问状态的无效迁移。

(3)对(1)中生成的测试用例,通过添加无效访问状态和无效迁移进行扩充。具体扩充方法为:在以步骤(2)中无效迁移的源状态为目标状态的迁移末尾添加无效迁移,并补充简单路径,进而形成从无效访问状态到原目标状态的全部简单路径,则完成测试用例的补充。

该测试用例生成方法,在传统的基于模型的测试用例生成方法的基础上,通过扩充无效访问状态和无效迁移路径,形成覆盖用户非预期行为的测试用例集。

然而,随着Web应用程序规模的扩大,无效访问状态和无效迁移路径的增多,不可避免地会导致测试用例空间的爆炸。

3 ASM模型约简方法

3.1 测试用例空间爆炸原因分析

Web应用程序是高内聚低耦合的软件系统。内聚性越高,表明组件的设计越合理,系统的稳定性越高;耦合性越低,说明组件之间的独立性越高,Web应用程序的质量越高[9]。随着Web应用程序规模的扩大,Web应用程序的低耦合性和交互性相应加强,即表现为组件数目的增多和组件间迁移数目的增加。

基于Web应用程序表示层建立的ASM模型,详细描述了Web应用程序低耦合下的动态性和交互性。根据ASM模型的定义,随着Web应用程序规模的扩大,其底层CIM描述单个组件内原子段的动态执行过程,不受Web应用程序规模的影响;其上层ATG描述所有组件间的迁移关系,受Web应用程序规模的直接影响。

基于ASM模型的测试用例生成方法考虑了用户非预期行为,生成的测试用例数目随着Web应用程序规模的扩大而增加,导致测试用例空间的爆炸测试用例数增加的原因,一方面是无效访问状态和无效迁移路径数目的增加导致可扩充数目变多,另一方面是基于主要路径覆盖的测试用例可扩充位置产生的组合众多。

通常采用基于模型的约简或最小化来减少或压缩状态空间[10],以解决状态空间爆炸的问题。针对状态模型,基本的解决方案就是合并迁移和状态。

3.2 基于等价分析的模型约简

根据ASM模型的定义以及测试用例生成方法,为了有效避免状态空间爆炸问题,在不影响Web应用程序测试效果的基础上,通过定义等价状态和等价迁移来对原模型进行约简,减少了状态和迁移数量,进一步来约减测试用例集,有效地压缩测试用例空间。

根据ASM模型定义的组件之间的迁移,根据用户操作的不同,其迁移类型、迁移带有的信息均有不同。因此,对于拥有相同源状态和目标状态的迁移,如果迁移类型或者迁移标签不同,则不能作为等价迁移进行合并。

此外,ASM模型的每个组件都分别实现独自的功能,每条迁移都是根据用户在表示层的操作形成的组件的迁移,从同一源状态出发的多个目标状态不是都可以作为等价状态合并的状态。

因此,对等价迁移和等价状态的定义如下:

定义7(等价迁移) 对于任意迁移ti和tj,i≠j,若满足:

(1)Type(ti)=Type(tj);

(2)Label(ti)=Label(tj);

(3)Source(ti)=Source(tj) &&Target(ti)=Target(tj)。

则ti和tj为等价迁移,记为ti≌tj。

定义8(等价状态) 对于任意目标状态Target(ti) 和Target(tj),i≠j,若满足:

(1)任意迁移tm,满足Source(tm)≠Target(ti) 或Source(tm)≠Target(tj);

(2)Source(ti)=Source(tj);

(3)Label(ti)=Label(tj)=NULL;

(4)Type(ti)=Type(tj)。

则Target(ti)和Target(tj)是等价状态,记为Target(ti)≌Target(tj)。

根据等价迁移和等价状态的定义,定义以下两个约简规则。

规则1对于ASM模型中的任意两个迁移ti和tj,i≠j,如果满足ti≌tj,则合并迁移为t′,其中t′的标签信息为Label(ti),迁移类型为Type(ti)。

基于迁移合并对模型的约简,模型中任意满足等价迁移定义的迁移均可以按照规则1进行迁移合并。基于规则1对ASM模型进行基于迁移的约简,其约简前后示意图如图1所示。

Figure 1 Schematic of transitions merging图1 迁移合并示意图

规则2对于ASM模型中的任意两个目标状态Target(ti)和Target(ti),i≠j,如果满足Target(ti)≌Target(tj),则合并状态为s′,到达s′的迁移为ti和tj。

基于状态对模型的约简,只适用于ASM模型的终止状态。基于规则2对模型进行基于状态的约简,其约简前后的示意图如图2所示。

规则1约定如何合并从源状态到目标状态的多条相同迁移。合并后的模型,没有引入新的迁移和新的状态,则不会产生新的无效访问状态和无效迁移路径。迁移的合并,使得从源状态到目标状态的迁移数量有效减少了,但是从源状态到目标状态的迁移关系不产生影响。因此,基于约简后模型生成的测试用例与原有测试用例是等价的,并且通过减少迁移的数量,减少了无效迁移的数量,最终实现无效迁移路径数量的减少。

Figure 2 Schematic of states merging图2 状态合并示意图

规则2约定如何合并一个源状态经过相同的操作到达的多个目标状态。合并后的模型,从源状态出发的迁移,没有引入新的迁移类型和标签,引入的新状态是原有状态的合并状态,从而引入新的迁移。新的迁移与原有迁移,是迁移标签和类型相同的迁移,并且满足相同的源状态和相同的目标状态(原目标状态是新目标状态的一个子集),因此新的迁移可以视为是与原有迁移的等价迁移。根据规则1的约定,基于等价迁移的模型约简生成的测试用例与原有测试用例是等价的,因此基于等价状态的模型约简生成的测试用例与原有测试用例也是等价的。并且,通过状态的合并实现了无效访问状态数和无效迁移路径数的减少,有效压缩了测试用例空间。

依据规则1和规则2对ASM模型的约简是一个迭代的过程。基于等价状态的状态合并,产生新的等价迁移,进一步基于等价迁移进行合并,实现ASM模型的最小化,可以最大化约简测试用例空间。

4 实验与结果分析

为了验证ASM模型约简后,基于ASM模型对Web应用程序测试的有效性,本文提出如下研究问题,并通过实验进行验证。

RQ1:约简后的ASM模型对测试用例空间的压缩效果如何?

RQ2:约简后的ASM模型对Web应用程序的原子段覆盖率有何影响?

RQ3:约简后的ASM模型生成的测试用例对Web应用程序测试的影响如何?

4.1 实例设计

本文以中医药物质管理系统CTMMS(Chinese Traditional Medicine Management System)为实验对象,进行ASM模型建立和测试用例生成研究。

按照ASM模型的定义,解析Web应用程序源代码,自动构建ASM模型,并使用开源软件Graphviz[11]绘制状态图。最后,基于状态图实现测试用例的自动生成。

基于ASM模型的测试用例生成办法,通过测试用例的扩充形成循环测试路径,针对循环测试路径目前没有工具能够实现测试用例的自动执行,因此本研究的实验结果通过手动分析的方法来评估约简的ASM模型对原子段覆盖率和测试效果的影响。

4.2 实验描述

中医药物质管理系统基于J2EE框架,该系统的实现包括JSP(Java Server Page)和Java Servlet,使用MVC模型,数据存储在SQL Server数据库中,利用Eclipse for Java EE集成开发环境,及CSS+HTML开发。

中医药物质管理系统需要用户输入用户名和密码进行登录,主要操作包括添加、查询、修改、删除等。中医药物质的信息都存储在数据库里,这个系统包括11个JSP页面和1个Servlet,其应用迁移图如图3所示。操作迁移是用户在浏览器端的操作,无法通过源代码进行解析,因此图3中不包括操作迁移。此外,组件表达迁移是组件到达组件内部的迁移,由于本研究只涉及ASM模型的上层ATG,因此组件表达迁移直接描述为从组件到组件的迁移。基于中医药物质管理系统的表示层生成的ASM模型上层ATG,其应用迁移图共12个状态、57条迁移。

图3中,如CTMCLServlet通过(info)信息形成相同的迁移到达Error.jsp,则从状态CTMCLServlet到状态Error.jsp共有3条简单路径,均是从CTMCLServlet经过(info)信息的提交形成组件表达迁移。

Figure 3 ATG of the CTMMS图3 中医药物质管理系统应用迁移图

CTMCLServlet是Web应用程序的控制层,处理用户在浏览器端的请求,若用户的请求符合程序设定的要求,则根据用户的请求将相应的视图(.jsp)显示给用户。从CTMCLServlet到Error.jsp的迁移是由于用户在以CTMCLServlet为后继的迁移中填写了错误的信息,CTMCLServlet组件内部多个原子段分别处理不同的请求,按照程序逻辑执行的显示异常,提示Error.jsp。

由于本研究针对ASM模型的上层ATG进行研究,其组件内部的程序逻辑是可以采用传统软件的测试方法进行测试,Web应用程序表示层均是错误页面Error.jsp,对该迁移进行合并,不影响对Web应用程序表示层的测试。

对图3的应用迁移图,根据迁移合并原则进行模型约简,约简后应用迁移图如图4所示,图中虚线表示合并后的迁移。

ASM模型测试用例的生成是通过添加无效状态来扩充无效访问路径,那么无效状态的减少,必然能优化测试用例,减少测试用例的数量。基于此,在迁移合并后,判断模型中是否存在等价状态,若存在将其合并。

Figure 4 ATG after transitions merging图4 迁移合并后的应用迁移图

从图4可以看出,Rsub.jsp、RMat.jsp和Smed.jsp作为目标状态,也是应用迁移图的终止状态,到达这些状态的迁移均为ε-迁移,并且从源状态出发的迁移类型相同。

MVC模式开发的Web应用程序,其模型、视图、控制器是分开单独执行自身任务的。.jsp文件作为MVC的视图层,主要负责用户浏览及交互,在视图中没有业务逻辑和数据的处理。视图只是作为一种输出数据并允许用户操作的显示界面。

Rsub.jsp、Rmat.jsp和Smed.jsp作为终止状态,由于没有后继,不允许用户进行操作,其功能是输出数据给用户查看。Rsub.jsp、Rmat.jsp和Smed.jsp均是从相同的源状态经过相同的迁移后到达的目标状态,但由于上述页面的功能不同,导致显示的数据结果不同。从相同源状态出发,到达Rsub.jsp、Rmat.jsp和Smed.jsp的迁移,其源状态均为.jsp文件,是视图层文件,并且从源状态到目标状态的迁移为不存在信息传递的简单迁移,用户在源状态页面上的任一简单迁移操作,均会到达这三个状态中的任意一个,并且这三个状态不存在后继操作。对这三个状态进行合并,不影响从源状态出发的迁移的测试。由于这三个状态是终止状态,则该状态必然为无效状态,通过终止状态的约简,减少了无效状态的数量,优化了测试用例。

基于等价状态对图4的模型进行约简,约简后的模型如图5所示。

Figure 5 Reduction model of the ATG图5 模型约简后的应用迁移图

4.3 实验结果分析

这一节主要通过实验结果回答三个研究问题。

4.3.1 测试用例空间压缩分析

通过合并等价状态和等价迁移,对中医药物质管理系统(CTMMS)建立的ASM模型进行约简,对比结果如表1所示,其中,状态数减少2个,迁移数减少24条,测试用例数共减少6 036条,有效压缩了测试用例空间。

从表1的约减率可以看出,测试用例约减率74.38% > 状态约减率16.67%+迁移约减率42.11%,这是由于对ASM模型的约简不仅减少了迁移数量和状态数量,而且减少了可扩充的无效访问状态的位置数量,因此测试用例数减少率更高。

4.3.2 原子段覆盖率分析

按照ASM模型的定义,中医药物质管理系统(CTMMS)ASM模型的应用迁移图共有12个组件,其中,11个组件是Jsp文件,1个组件是Servlet,各个组件的组件表达式和原子段数如表2所示。

Table 1 Comparison of the number of test cases before and after reduction表1 约简前后测试用例数比较

Table 2 Component expression of the CTMMS表2 中医药物质管理系统组件表达式

对中医药物质管理系统(CTMMS)的ASM模型约简前后的测试用例原子段数目进行统计和对比,如表3所示。模型约简前后,其对原子段的覆盖率都没有达到100%,共有两个原子段没有覆盖到。为达到100%的原子段覆盖率,对这两个原子段进行人工分析,分析结果表明,这两个原子段分别涉及查询中医药标准物质时只输入名字不输入编号和查询中医药标准物质时既输入名字又输入编号。

Table 3 Statistics of the atomic section coverage表3 原子段覆盖率统计

没有覆盖到的原因是由于基于表示层建立的ASM模型不涉及数据层的传输,即实际的运行过程中该原子段需要特殊值传递,在其测试用例生成过程中无法涉及。分析表明,面向这两个原子段的基于表示层的测试不能发现软件错误。

表3分析结果表明,ASM模型约简前后生成的测试用例集对原子段覆盖率几乎没有变化。结合中医药物质管理系统的ASM模型的应用迁移图模型约简前后的对比,分析可以得出,合并的状态都不包含原子段。因此,ASM模型的约简对Web应用程序的原子段覆盖率几乎不产生影响。

4.3.3 测试效果分析

通过对中医药物质管理系统(CTMMS)进行手动的测试,共检测出3种类型的错误,分别是页面为空、软件异常以及URL重写导致空记录。

中医药物质管理系统(CTMMS)的ASM模型约简前后的测试效果统计对比,如表4所示。从表4中可以得出,基于无效迁移路径检测的错误率大于基于主要路径检测的错误率,约简前后检测到的错误类型数相同,且约简后由于总路径数量减少,错误检测率增大。因此,ASM模型的约简规则在不影响原子段覆盖率的情况下,使主要路径和无效路径数量减少,错误检测率增大,对检测到的错误类型的数量没有影响。

Table 4 Statistics of test results表4 测试结果统计

5 相关工作

2010年,Offutt等人[7]首次提出基于Web应用程序的表示层建立ASM模型,并于2014年对ASM模型的有效性进行了评估[8]。基于需求生成的测试用例与基于ASM模型生成的测试用例的测试效果对比结果显示,基于ASM模型的测试方法能够检测到更多的Web应用程序错误。郑芳等人[12]在此基础上提出基于依赖分析的测试用例的优化,避免了重复执行全部测试用例。

ASM模型是通过解析源码对Web应用程序建模, Cosma等人[13]基于此使用静态分析和可视化的方法来理解Web应用程序。

随着新技术的不断发展,对Web应用程序的测试提出了新的挑战。如Ajax技术在Web应用程序中的应用,使得网页可以动态更新页面内容,同样给针对Web应用程序的建模带来了挑战。Wang等人[14]基于用户会话的分析建立Web应用程序的模型。Marchetto等人[15]给出了一种基于Ajax操作的网页DOM结构变化的建模方法。贺涛等人[16]在FSM模型的基础上,引入了UML分层模型对含有Ajax部分的网页状态进行建模。与ASM模型相比,它们无法生成完整的测试用例,但是也为ASM模型的进一步优化提供了思考的空间。

Web应用程序的快速开发,导致其版本快速更新,原有的测试用例无法在新版本上得到应用,Leotta等人[17]基于DOM元素的变更修复测试用例,提高了测试用例的健壮性。

6 结束语

本文提出一种基于ASM模型约简的测试用例优化方法。随着Web应用程序规模的增大,基于ASM模型的测试用例生成方法,可以测试用户的非预期行为,但是由于无效访问状态和无效迁移的扩充,导致测试用例空间爆炸。本文通过定义基于ASM模型的等价迁移和等价状态进行迁移和状态的合并,有效地减少了测试用例的数量。实验结果分析表明,基于ASM模型约简的测试用例优化,极大压缩了测试用例空间,在ASM模型约简基础上生成测试用例,不影响原子段的覆盖率,也没有影响检测到的错误数目。

[1] Ravi K,Marcia R.E-Business 2.0:Roadmap for success[M].Boston:Addison-Wesley Professional,2000.

[2] Lebeau F,Legeard B,Peureux F,et al.Model-based vulnerability testing for web applications[C]∥Proc of the 6th International Conference on Software Testing,Verification and Validation WorkShops (ICSTW),2013:445-452.

[3] Mubin S A,Jantan A H,Abdullah R,et al.UML-based conceptual design approach for modeling complex processes in web application[J].International Journal of Applied Engineering Research,2016,11(6):4579-4585.

[4] Andrews A A,Offutt J,Alexander R T.Testing web applications by modeling with FSMs[J].Software & Systems Modeling,2005,4(3):326-345.

[5] Anand K.Systems and methods for tokenizing user-generated content to enable the prevention of attacks:U.S.Patent 9,313,223[P].2016-04-12.

[6] Shams M,Krishnamurthy D,Far B.A model-based approach for testing the performance of web applications[C]∥Proc of the 3rd International Workshop on Software Quality Assurance,2006:54-61.

[7] Offutt J,Wu Y.Modeling presentation layers of web applications for testing[J].Software & Systems Modeling,2010,9(2):257-280.

[8] Thummala S,Offutt J.An evaluation of the effectiveness of the atomic section model[C]∥Proc of International Conference on Model Driven Engineering Languages and Systems,2014:35-49.

[9] Lemos A L,Daniel F,Benatallah B.Web service composition:A survey of techniques and tools[J].ACM Computing Surveys (CSUR),2016,48(3):1-33.

[10] Hou Gang, Zhou Kuan-jiu,Yong Jia-wei,et al.Survey of state explosion problem in model checking[J].Computer Science,2013,40(6A):77-86.(in Chinese)

[11] Graphviz[CP/OL].[2016-06-01].http://www.graphviz.org/.

[12] Zheng Fang,Zheng Quan.Web application presentation layer test based dependency analysis[J].Computer & Digital Engineering,2011,39(1):163-167.(in Chinese)

[13] Cosma D C,Mihancea P F.Understanding web applications using component based visual patterns[C]∥Proc of the 23rd International Conference on Program Comprehension,2015:281-284.

[14] Wang W,Sampath S,Lei Y,et al.Using combinatorial testing to build navigation graphs for dynamic web applications[J].Software Testing,Verification & Reliability,2016,26(4):318-346.

[15] Marchetto A,Tonella P,Ricca F.State-based testing of Ajax web applications[C]∥Proc of the 1st International Conference on Software Testing,Verification,and Validation,2008:121-130.

[16] He Tao,Miao Huai-kou,Qian Zhong-sheng.Modeling and test case generation for Ajax-based WA[J].Computer Science,2014,41(8):219-223.(in Chinese)

[17] Leotta M,Stocco A,Ricca F,et al.Using multi-locators to increase the robustness of web test cases[C]∥Proc of the 8th International Conference on Software Testing,2015:1-10.

附中文参考文献:

[10] 侯刚,周宽久,勇嘉伟,等.模型检测中状态爆炸问题研究综述[J].计算机科学,2013,40(6A):77-86.

[12] 郑芳,郑全.基于依赖分析的 Web 应用表示层测试方法研究[J].计算机与数字工程,2011,39(1):163-167.

[16] 贺涛,缪淮扣,钱忠胜.基于 Ajax 技术的 Web 应用的建模与测试用例生成[J].计算机科学,2014,41(8):219-223.

猜你喜欢

测试用例约简等价
等价转化
基于SmartUnit的安全通信系统单元测试用例自动生成
基于二进制链表的粗糙集属性约简
基于混合遗传算法的回归测试用例集最小化研究
实值多变量维数约简:综述
n次自然数幂和的一个等价无穷大
基于模糊贴近度的属性约简
收敛的非线性迭代数列xn+1=g(xn)的等价数列
基于依赖结构的测试用例优先级技术
环Fpm+uFpm+…+uk-1Fpm上常循环码的等价性