首页> 中国专利> 一种Web应用系统测试方法

一种Web应用系统测试方法

摘要

本发明公开了一种Web应用系统测试方法。该方法包括:根据待测Web应用系统的交互性功能需求构建有限状态机模型;基于所确定的有限状态机模型,确定待测Web应用系统的测试状态转移图;对所确定的测试状态转移图进行遍历以生成测试用例集;根据所生成的测试用例集对所述待测Web应用系统进行测试。这样,既考虑了Web应用系统中的静态结构和动态行为,也保证测试的正确性和完整性。

著录项

  • 公开/公告号CN102929775A

    专利类型发明专利

  • 公开/公告日2013-02-13

    原文格式PDF

  • 申请/专利权人 中标软件有限公司;

    申请/专利号CN201210408956.6

  • 发明设计人 颜佩琼;

    申请日2012-10-23

  • 分类号G06F11/36(20060101);

  • 代理机构11372 北京聿宏知识产权代理有限公司;

  • 代理人钟日红;张宇峰

  • 地址 200030 上海市徐汇区番禺路1028号1006-1010室

  • 入库时间 2024-02-19 17:47:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-03-25

    授权

    授权

  • 2013-03-20

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20121023

    实质审查的生效

  • 2013-02-13

    公开

    公开

说明书

技术领域

本发明涉及Web测试领域,尤其涉及Web应用系统测试方法。

背景技术

目前针对Web应用软件的功能测试模型较多,侧重点不尽相同,且各 有优缺点。主要包括:面向对象的Web应用测试模型、面向链接与交互等 动态内容的结构模型等。

面向对象的Web应用测试模型既考虑了Web应用软件的静态结构表 示、又考虑了动态交互行为的表示,是一种相对比较全面的测试模型,然 而,该模型只能捕获静态数据流,对不同的导航场景造成的数据流交互不 能检测。

面向链接与交互等动态内容的结构模型侧重于Web应用系统的导航特 性,所有与结构相关的实体都被明显地表示出来。

然而,随着Web应用技术的发展,新近的Web应用系统既侧重静态结 构,也侧重动态的数据交互,同时还会注重脚本、组件及对象的构建。因 此,如何使得测试系统在既能考虑Web应用系统中的静态结构和动态行 为,也能保证测试的正确性和完整性,是一个亟待解决的技术难题。

发明内容

本发明所要解决的技术问题之一是需要提供一种既能考虑Web应用系 统中的静态结构和动态行为也能保证测试正确性和完整性的Web应用系统 测试方法。

为了解决上述技术问题,本发明提供了一种Web应用系统测试方法。 该方法包括:根据待测Web应用系统的交互性功能需求构建有限状态机模 型;基于所确定的有限状态机模型,确定待测Web应用系统的测试状态转 移图;对所确定的测试状态转移图进行遍历以生成测试用例集;根据所生 成的测试用例集对所述待测Web应用系统进行测试。这样,既能考虑Web 应用系统中的静态结构和动态行为也能保证测试的正确性和完整性。

根据本发明一方面的方法,状态转移图G=(V,E)是有向图,且顶点集V 表示应用状态集,有向边集E表示变迁集,每个有向边对应一个变迁,每个 顶点对应一种状态,以s表示状态,以t表示变迁。

根据本发明一方面的方法,在对所确定的测试状态转移图进行遍历以 生成测试用例集的步骤中,对所确定的测试状态转移图进行深度优先遍历 以生成测试用例集。

根据本发明一方面的方法,所述对所确定的测试状态转移图进行深度 优先遍历以生成测试用例集的步骤进一步包括:

A)、确定当前访问状态s及初始状态到当前状态的变迁路径,记为 path={t0,t1,t2,t3,...,ti,...tn},其中,i为序号,ti表示路径path中的第i+1 个变迁,并标记当前状态s为已访问;

B)、对于当前状态s,检查当前状态s是否存在未访问的变迁,如果存 在未访问的变迁t,那么把变迁t加入变迁路径path,使得path={t0,t1, t2,...,tn,tn+1=t},并标记变迁t为已访问,进入步骤C),如果不存在未访问的 变迁,将路径path作为一组测试用例加入到测试用例集中,弹出队尾tn,进 入步骤D);

C)、如果变迁t的结束状态s’为未访问,则令当前状态为s’,并返回步 骤B);如果变迁t中s’为已访问,则将路径path作为一组测试用例加入到测 试用例集中,返回步骤B)。

D)、判断变迁路径path是否为空且当前状态是否不存在未访问变迁, 若判断结果为是,则遍历结束,反之,重复执行步骤B)以检查当前队尾变 迁tn-1的起始状态Sn-1是否存在未访问过的变迁。

这样,能够提高本方法的处理效率。

根据本发明一方面的方法,所述根据待测Web应用系统的交互性功能 需求构建有限状态机模型的步骤进一步包括:基于状态集States、请求数据 集Requests、和响应数据集Responses、状态迁移函数集TFs、响应函数集 RFs和初始状态InitState来构建限状态机模型WAS={States,Requests, Responses,TFs,RFs,InitState}。

根据本发明一方面的方法,所述根据所生成的测试用例集对所述待测 Web应用系统进行测试的步骤进一步包括:由所生成的测试用例集转换得 到的TTCN-3可执行的测试套对待测Web应用系统进行测试。

根据本发明一方面的方法,通过如下步骤来由所生成的测试用例集转 换得到TTCN-3可执行的测试套:将变迁中的应用请求数据和应用响应数据 转换为TTCN-3形式的数据格式;将变迁转换为TTCN-3测试行为函数;将 变迁路径转换为TTCN-3测试用例。

本发明的其他优点、目标,和特征在某种程度上将在随后的说明书中 进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员 而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目 标和其他优点可以通过下面的说明书,权利要求书,以及附图中所特别指 出的结构来实现和获得。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与 本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图 中:

图1是根据本发明实施例的Web应用系统测试方法的流程图;

图2是根据本发明实施例的Web应用系统测试方法步骤S130中采用深 度优先遍历算法对测试状态转移图G=(V,E)进行遍历的流程图;

图3是根据本发明实施例Web应用系统测试方法步骤S140中将测试用 例集转换为TTCN-3可执行测试套的流程图;

图4是根据本发明实施例的TTCN-3数据描述转换对应关系示意图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发 明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分 理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施 例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发 明的保护范围之内。

另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令 的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某 些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

下面参考图1来说明本发明实施例的Web应用系统测试方法的各步骤。

步骤S110,根据待测Web应用系统的交互性功能需求构建有限状态机 模型,记为WAS={States,Requests,Responses,TFs,RFs,InitState},其 中,States表示状态集,Requests和Responses分别表示请求数据集和响应数 据集,TFs(Transfer Function)和RFs(Response Function)分别表示状态迁 移函数集和响应函数集,InitState表示初始状态。

步骤S120,基于步骤S110中确定的有限状态机模型,确定待测Web应 用系统的测试状态转移图G=(V,E),顶点集V表示应用状态集States,有向 边集E表示变迁集Transtions,变迁transition表示状态之间的一次迁移。

步骤S130,对步骤S120中确定的测试状态转移图进行遍历,生成测试 用例集,优选地,进行深度优先遍历。

步骤S140,根据所生成的测试用例集对待测Web应用系统进行测试。

下面进一步详细说明步骤S110。

可将有限状态机模型WAS={States,Requests,Responses,TFs,RFs, InitState}中的状态集合States中的状态定义为三元组State={Function, FunctionState,Data}。其中,Function表示应用功能,FunctionState表示当前 应用功能的状态,Data表示当前应用功能对应的数据。

例如,State={“Login”,“Login in”,“admin”}表示系统中用户admin已登 录状态,其中,Function=“Login”表示用户登录函数;FunctionState为 “Login in”,表示当已登录状态;Data为“admin”,表示当前登录用户信息。

可将有限状态机模型WAS中请求数据集Requests的请求数据定义为三 元组Request={ReqType,ParaType,ParaData},ReqType表示请求类型, ParaType表示请求对应的参数名和参数数据类型,ParaData表示请求的具体 数据信息。

有限状态机模型WAS中响应数据集Responses的响应数据Response与 请求数据Request类似,也可定义为三元组Response={ResType,ParaType, ParaData},ResType表示响应类型。

例如,请求数据Request={“LoginRequest”,“Username string”“Password string”,“admin”“000”}表示用户名为“admin”,密码为“000”的用户请求登 录系统,亦即,ReqType=“LoginRequest”,ParaType={“Username string”, “Password string”},ParaData={“admin”,“000”}。与之对应的表示欢迎登录 的响应数据Response可为{“LoginResponse”,“HomeTitle String”,“Welcome to the Electronic Documents System”},亦即,ResType为“LoginResponse”, ParaType为{HomeTitle String},ParaData为{“Welcome to the Electronic Documents System”}。

定义状态迁移函数集TFs(Transfer Functions)和响应函数集RFs (Response Functions)。其中状态迁移函数TF:D->State,表示当前应用状 态下接受用户请求时如何进行状态转移,且当系 统处于状态s(s∈States),若收到用户请求r(r∈Requests),则应用转移到下一 个状态s’=TF(s,r)。

状态响应函数RF:D->Responses,表示在当前状态下接受客户请求如何 进行响应,当系统接受用户请求后,会向用户返回 响应信息res=RF(s,r)。

定义初始状态InitState。所有的Web应用系统的初始状态都可以定义为 且InitState∈States。

下面进一步详细说明步骤S120。

步骤S120中,根据有限状态机定义测试状态转移图。

通过根据Web应用系统的有限状态机模型定义相应的测试状态转移图 G=(V,E),可以更好地描述Web应用系统的交互性行为和不同应用状态之间 的关系。

如上所述,状态转移图G=(V,E)是有向图,且顶点集V表示应用状态 集States,有向边集E表示变迁集transitions,每个有向边对应一个变迁,每 个顶点对应一种状态,以s表示状态,以t表示变迁。可将变迁可记为 transitions=(si,sj,x/y),表示应用状态之间的一次转移,其中si,∈States,sj∈ States,x∈Requests,y∈Responses,,且TF(si,x)=sj,FR(sj,x)=y;即si是变迁的 起始状态,sj是变迁的结束状态,x和y分别是应用状态发生转移时的用户 请求和系统响应。

对测试状态转移图进行深度优先遍历生成测试用例集

这里的测试用例是指针对具体业务流程的从开始状态到结束状态的一 个访问变迁路径。

下面进一步详细说明步骤S130。下面参考图2详细说明一个采用深度 优先遍历算法对测试状态转移图G=(V,E)进行遍历的各步骤。

步骤S231:确定当前访问状态s及初始状态到当前状态的变迁路径 path={t0,t1,t2,t3,...tn},标记当前状态s为已访问。

步骤S232:对于当前状态s,检查当前状态s是否存在未访问变迁t,如 果存在变迁t=(s,s’,x/y)未访问,进入步骤S233,如果不存在未访问变迁,进 入步骤S235。

步骤S233:把未补充访问的变迁t加入变迁路径path,使得path={t0,t1, t2,...,tn,tn+1=t},并将变迁t标记为已访问,进入步骤S234;

步骤S234,如果变迁t的结束状态(即s’)为未访问,则令当前状态为 t的结束状态s’,如果变迁t中s’为已访问,则路径path可以作为一组测试 用例,加入到测试用例集TS(Test Cases)中,返回步骤S232。

步骤S235:路径path可以作为一组测试用例,加入到测试用例集TS 中,弹出队尾tn,然后进入步骤S236。

步骤S236,判断变迁路径path是否为空且当前状态是否不存在未访问 变迁,若判断结果为不存在,则遍历结束,反之,重复执行步骤S232以检 查当前队尾变迁tn-1的起始状态sn-1是否存在未访问变迁。

通过如上4个步骤生成的测试用例集TS将覆盖测试状态转移图中的所 有变迁,即覆盖了待测Web应用系统的所有应用状态,如果对于测试用例 集TS中的所有测试用例都能通过,则认为待测的Web应用系统符合需求。

优选地,步骤S140中,可优选为由所生成的测试用例集转换得到的 TTCN-3可执行的测试套对待测Web应用系统进行测试。

下面参考图3详细说明步骤S140中的详细步骤。

步骤S341:将变迁t=(si,sj,x/y)中的应用请求数据x和应用响应数据y转 换为TTCN-3形式的数据格式。

该过程包括下述两个阶段,其转换对应关系如图4所示。

阶段一:抽取变迁中应用请求数据x和应用响应数据y的数据类型,转 换成TTCN-3数据类型

其中TTCN-3数据类型一般通过record关键词来定义,需要指定类型名 称、成员变量名和变量数据类型。

将表示数据类型的ReqType和ParaType,以及应用响应数据类型的 Restype和ParaType抽取出来,转换为Record格式的描述形式,其中 ReqType和Restype转换为Record类型名称,ParaType转换为TTCN-3格式的 成员变量描述形式。

阶段二:将变迁中应用请求数据x和应用响应数据y中的具体测试用例 ParaData转换成TTCN-3数据实例

其中TTCN-3数据实例一般通过template关键词定义,需要指定实例化 数据的record类型和数据模板名称,并初始化该record类型的成员变量值。

根据表示数据类型的ReqType和Paratype指定相应的record类型,然后 根据具体数据ParaData初始化成员变量值,最后定义一个切合实际需要 template名称即可。

步骤S342:将变迁t=(si,sj,x/y)转换为TTCN-3测试行为函数。

在测试中,一个变迁表示一个测试行为,并可通过判断测试响应数据 是否为测试输入数据的正确响应来确定该测试行为是否通过。

TTCN-3测试行为一般通过TTCN-3函数来表示,且通常从测试输入数 据、测试预期结果和测试判断机制这三方面来描述。其中函数参数定义操 作的测试输入数据类型和预期响应数据类型,函数体定义测试过程和测试 判断逻辑。

定义TTCN-3测试行为函数参数类型:根据变迁中的应用请求数据x和 应用响应数据y对应的record类型,定义TTCN-3测试行为函数参数类型, 分别代表测试输入数据类型和预期响应数据类型。

定义TTCN-3测试行为函数体:将测试输入数据发送到测试端,然后将 接收的响应信息与预期响应信息进行比较,如果一致则断言测试通过,如 果不一致则断言测试失败或出错等。

步骤S343:将变迁路径path={t0,t1,t2,t3,...,tn}转换为TTCN-3测试用 例。根据具体的变迁实例化相应TTCN-3测试行为函数的输入参数,然后将 具体的变迁路径转换成TTCN-3测试函数调用序列,最后定义测试配置,便 可将一个测试用例的变迁路径转换为一个完整的可编译执行的TTCN-3测试 用例,相应地,测试用例集TS便转换成了TTCN-3可执行测试套。

可见,本发明提供的Web应用系统测试方法有效保证了Web应用交互 性功能测试的完备性。此外,能够通过与TTCN-3测试机制的结合有效分离 测试设计与实现过程,从而为提高测试代码的可移植性提供了支撑。

TTCN-3(Testing and Test Control Notation Version3)即测试与测试控制 表示法第3版,是一种抽象描述能力很强的测试语言,其灵活的参数化机制 可以有效实现测试设计与测试实现过程的分离,从而提高测试代码的可重 用性。主要用于描述在多种通信端口上的各种响应系统测试。应用典型领 域有协议测试、服务测试、基于平台的CORBA测试、API测试等,除此之 外,TTCN-3还可以用于许多其他种类的测试,如互操作性测试、健壮性测 试、回归测试、系统和集成测试等。

本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用 通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在 多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程 序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行, 或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步 骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬 件和软件结合。

虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解 本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领 域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在 实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围, 仍须以所附的权利要求书所界定的范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号