青岛科技大学 宋 波
关于Web应用中的组合模型和生成测试
青岛科技大学 宋 波
【摘要】如今,随着Web应用的普及,互联网上有越来越多可供使用的服务和信息,而其正确性、安全性和可靠性往往是企业和组织成功的关键。Web测试是保证Web安全的一种方法。然而,由于Web应用的特殊性,传统的测试方法在诸多方面都不适合进行Web测试。一个典型的Web应用程序由两层组成:客户端和服务器。现有的大多数工作是从外部或用户视图进行Web应用程序的测试,而不考虑服务器端的交互与行为。在本文中,对于服务器端的交互与行为进行了特别的考虑,并提出了组合模型和测试Web应用程序的方法。有限状态机(FSMs)用于分别从用户端和服务器端建立Web应用模型,然后,同步产物被用作构建有限状态机组成的工具。最后,基于有限状态机的组成,生成测试满足相应的测试复盖准则。
【关键词】Web;组合模型;测试
如今,随着Web应用的普及,互联网上有越来越多可供使用的服务和信息,Web应用在世界各地非常普遍,而其正确性、安全性和可靠性往往是企业和组织成功的关键。Web应用程序开发需要新方法、技术和工具,来支持生命周期各个阶段的工程项目。然而,由于Web应用的特殊性,传统的测试方法在诸多方面都不适合进行Web测试,而Web测试是保证Web安全的一种方法。Web应用非常流行,发展迅速,已经拥有了大量的用户。Web应用由网站或Web系统发展而来,利用使能技术,一种页面动态机制,根据用户输入作出响应,使其内容动态并允许用户响应服务器的业务逻辑。我们知道,Web应用程序开发利用导航和超文本HTML页面的交互设备,向用户提供或获取信息,同时向庞大的用户群体提供跨平台访问的通用Web资源。
Web应用的基本结构包括2层:客户端和服务器。一个简单的静态Web应用程序,主要是超文本标记语言(HTML)页面。网站中的网页和其他组件都存储在服务器端,当用户访问Web应用程序时,点击链接,请求被发送至服务器。收到请求后,服务器作出响应,向客户端发送一个相应的纯HTML显示给用户。客户端如何与服务器进行交互,服务器如何正确响应用户的请求,服务器端的行为等等,让我们感到困惑,这对Web开发者来说是一个挑战。现有的大多数Web应用程序的建模和测试工作都是来自外部或用户视图。
在本文中,我们考虑了客户端和服务器端的行为,有限状态机被用作客户端和服务器端的Web应用程序模型。由于客户端与服务器进行交互或通信是通过发送消息请求和响应,因此,采用同步产品来完成客户端与服务器端的模型组成。最终,基于组合模型,测试生成。
本文结构安排如下:第二部分给出一个示例,这个例子贯穿整篇文章,以证明我们的方法。然后我们使用有限状态机从客户端和服务器端建立Web应用模型,随后在第三部分中利用同步产品来完成对有限状态机的组成。第四部分是测试生成过程,此外,第五部分是一些结论及相关工作。
图1 有限状态机示例
为了简化我们方法的介绍和地址,在这里,我们给出了一个简单的例子,如图1所示。所有的网页都存储在服务器端,用户在Web浏览器的地址栏中键入Web应用程序的网址,按下Enter键后,Web服务器将返回主页(P1)给用户。当用户点击消息链接,对消息的请求将被发送至服务器,用户会处于短暂的等待状态(W1),服务器收到请求后,将发送消息网页(P2)给用户。在图1中,符号“’”表示“反应”。当点击主页的登录链接后,用户将进入短暂的等待状态(W2),服务器响应后,登录页面(P3)出现。用户输入用户名和密码,并点击提交按钮。提交后,用户名和密码被发送至Web服务器进行身份验证,因此,用户将进入短暂的等待状态(W3)。如果用户名和密码是正确的,一个用户私人页面(P4)会被加载并显示。当用户点击注销,他/她将返回到主页(P1)。
图2 有限状态机用于服务器
根据客户的要求,服务器将做出相应的响应,我们使用有限状态机来描述服务器行为,如图2所示。当接收到消息的请求时,服务器发送HTML页面的消息到客户端(消息’指的是服务器对消息请求的响应),并发送相同的登录请求。当用户向服务器提交他/她的用户名和密码时,当服务器收到请求认证用户名和密码时,服务器会发送一个查找请求在数据库中进行匹配,随后服务器进入状态S5,匹配后,服务器进入状态S4,响应提交的请求,提交’,此时服务器进入状态S6。在状态S6,进行构建会话数据。当用户点击注销链接,服务器会删除该会话的数据,它将返回状态S1。
有限状态机(FSM)提供一种简便的构建软件行为模型方式,来避免执行伴随的问题。从有限状态机导出的几种测试方法已被提出,从理论上讲,Web应用程序可以完全利用有限状态机建模,然而,即使是简单的网页,也可能面临来自状态空间爆炸的问题。文本域可以有多种可能的输入,在一些有大量的选项网页上,可以选择信息的输入顺序,这些因素意味着一个有限状态机可能占据非常大的因素,即使只有一页。因此,一个基于有限状态机的测试方法只能用于发现生成有限状态机的应用技术,这种技术是描述性的,小却很实用,足以产生有效的测试。因此,在本文中,我们不用去考虑每一个网页的细节,而是在一个较高的抽象层次上,使用有限状态机分别在客户端和服务器端建立Web应用模型。此外,客户端通过发送消息请求和响应与服务器进行通信。因此,我们可以将消息的请求和响应作为桥梁,来把同步产品组成两个有限状态机。进而,基于新的复合状态机,可以很容易的生成测试。
通常,我们从外观视图方面来对Web应用程序进行建模和测试,web服务器的行为都没有考虑到。这使得我们不知道服务器的响应和互动是怎样的。此外,客户端和服务器之间进行互动或取得通信你是通过消息的请求和响应装置。所以,可以使用该消息来进行同步产品的操作已构成两种形式。以这种方式,整个web应用程
序的模式是由FSM的组合物建模组成。
据我们所知,已经有一些Web应用的建模和测试技术被提出,每一种都有不同的起源,在处理Web应用的独特性时追求不同的目标。
导航模型如使用状态图表示法。他们建立Web导航模型,当用户通过Web应用程序时,网页元素与它们进行交互。然而,这与服务器端的行为是无关的。
安德鲁斯等人提出了一种从有限状态机导出测试的方法。生成基于有限状态机的测试序列,他们尝试利用输入约束来限制状态空间的爆炸。这种方法将整个Web应用分为几个子系统,然后要求在有限状态机的状态序列下生成测试。这种方法也是来自用户视图。
在扩展有限状态机的构造函数来适应其需求之后,使用有限状态机的Web应用程序的行为模型。它解决了设计方面的问题,而不是实施的问题。此外,没有考虑与服务器的进行交互。
在本文中,客户端和服务器端的行为都被考虑在内,使用有限状态机分别在客户端和服务器端建立Web应用模型。
Web应用广泛应用在我们的日常生活中,现有的Web应用建模和测试的研究几乎都是建立在外部或用户视图的,不考虑服务器端的交互行为。本文中,我们利用有限状态机建立客户端和服务器端的Web应用模型。由于客户端通过发送消息请求和响应来与服务器进行交互或通信,因此,采用同步产品来完成客户端与服务器端的模型组成。最终,基于组合模型,测试生成。
基金项目:国家自然科学基金面向项目,项目编号:61572268,基于云计算和MapReduce的区域医疗大数据分析关键技术研究;山东省自然科学基金,项目编号:ZR2011FL010,基于模型的Web应用测试与验证方法研究。