论文部分内容阅读
Web应用的巨大成功和不断发展,使其渗透到国计民生、商业领域和个人生活的各个方面。Web应用是一种非常复杂的、分布式的、多层结构的交互式应用系统,为用户提供了一种全新的部署软件应用的方式。Web应用的异构性、动态性、连接的多样性、控制流程的可变性以及需要快速开发与发布等特性给Web应用的建模和测试带来了新的挑战。目前还没有比较系统的方法和工具对Web应用进行有效的建模和测试。Web应用的特性要求必须对传统的建模和测试方法进行改进或提出新的适合Web应用特性的建模和测试方法。目前对Web应用的建模和测试工作基本上都是Web应用的静态导航建模和测试,很少关注Web应用的交互特性。而交互特性关乎于Web应用的功能性,Web应用从它出现之日起,它就是一个交互式系统。因此,迫切需要一套新的Web应用建模和测试方法来保证Web应用交互的可靠性,从而最终来保证Web应用功能的正确性和安全性。本文研究的对象是Web应用,重点研究Web应用中交互的建模和测试。主要贡献和创新如下:1. Web浏览器的交互行为消极地影响Web应用的安全性、功能性和导航的正确性。针对该问题论文,考虑了由于浏览器的交互而可能导致的和Web应用设计不一致的方面,提出了Web应用on-the-fly导航建模方法和测试生成方法。采用扩展的FSM(OFNM/FSM)来对on-the-fly导航模型进行形式化描述,并给出了从OFNM/FSM派生FSM测试树(FSM Test-Tree, FSM-TT)的算法,最后,从构造得到的FSM-TT中产生测试用例,并满足相应的测试覆盖准则。2.随着Web应用的不断演化,数据库已在Web应用中得到了广泛使用。数据库交互已经成为目前Web应用的关键功能特性之一。针对该问题,论文在对Web应用进行建模和测试时考虑数据库交互。采用GFSMs (Guarded Finite State Machines)作为数据库交互的建模工具。从得到的GFSM中构造一个GFSM-TT(GFSM test-tree)。基于GFSM-TT派生出最小测试集,这样就完成了测试生成。设计了一个算法来对测试路径进行优化,从而减少路径中重叠部分,消除了部分冗余。3. Web应用越来越依赖于后台数据库给其提供丰富的功能。ASP.NET支持事件驱动(event-driven)的编程范式,具有代码隐藏特性(code-behind feature),使得超文本标记语言(HTML)与表示逻辑完全分离。此外,数据库交互影响Web应用的导航和功能性。对于ASP.NET编程范式的数据库交互的抽取和测试还鲜有报道。论文提出了基于事件的依赖图模型(event-based dependence graph models,EDGMs)来对Web应用中数据库交互进行抽取和建模的方法。采用FSM来对Web页面的呈现(presentation)建模(也就是对Web页面的.aspx部分建模),采用控制流图(Control Flow Graph,CFG)和数据库交互流图(Database Interaction Flow Graph,DIFG)来抽取和建模Web页面对应的逻辑处理部分(.cs)。根据得到的EDGMs,构造一棵FSM测试树(FSM test-tree,FSM-TT)。根据构造的FSM-TT,产生测试序列。结合Web页面的FSM(s)可以进一步具体化得到的测试序列。这样就可以获得更加详细的测试序列。4. Web浏览器的行为会影响到Web应用的正确性,当把它部署在其支持环境中时有可能导致功能失常。针对Web浏览器的交互行为问题,论文提出一种通过组合Web应用的功能模块(用例)和浏览器交互行为的Web应用建模方法。Web应用被看作是一个由不同的功能模块构成的系统。最后给出了测试的生成和优化算法。5.论文从一般的Web应用的页面导航模型(UML状态图)出发,设计并实现了带浏览器交互的Web应用的自动建模和测试用例自动生成的工具原型AGT4W(Automatic Generating Tests for Web Applications)。论文介绍了实现方法和详细过程。