999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MVC模型和行為描述的Web應用測試框架

2017-04-10 23:53:04蔣破荒徐建明
現代電子技術 2017年6期
關鍵詞:計算機軟件

蔣破荒 徐建明

摘 要: MVC模型分離設計的思想提高了軟件的整體質量,然而由于模型只定義了靜態架構組件的配置,其并不能明顯地提供Web應用程序開發過程中的行為表現,這導致了Web應用程序的描述和其行為特性間較為明顯的差異。為了解決這一問題,提出一種行為模型來填補該差異,即對該程序的URL請求序列自動接收機制進行模式化,為Web應用程序提出一個基于行為模式的測試框架。研究表明,當集中于循環行為自動機制時,該框架可提供Web應用程序更好的測試標準。最后,將框架應用于Jakarta Struts框架的配置方案中,其結果表明,該行為模型在對Web應用的測試路徑進行分類時取得了較好的效果。

關鍵詞: 計算機軟件; MVC構架; Jakarta Struts框架; 軟件測試

中圖分類號: TN911?34; TP311.5 文獻標識碼: A 文章編號: 1004?373X(2017)06?0071?04

Abstract: Although the separation design thought of MVC model has improved the overall quality of the software, but because the model only defines the configuration of static architectural components, MVC model con not clearly provide the behavioral expression of Web application program development process, which leads to the obvious differences between the description of Web application program and its behavioral characteristics. To fill this difference, a behavior model is proposed in this paper, in which the automatical receiving mechanism of the URL request sequence of the program is modeled, and a testing framework based on behavior pattern is proposed for Web application program. The research result shows that, when it is focused on the cyclic behavior of an automatic mechanism, this framework can provide a better test standard for Web application program. The result that the framework is applied to the configuration scheme of Jakarta Struts framework shows that the behavior model has achieved a very good effect in the classification of the testing paths of the Web application.

Keywords: computer software; MVC architecture; Jakarta Struts framework; software testing

0 引 言

Web應用是計算機響應系統外的網絡請求所需的一種軟件技術,其基本特征是根據不同交互系統和環境所表現出的特殊行為機制。在傳統基于功能模塊的軟件中,輸入輸出關系極為重要,這種特征影響著軟件架構的各個方面[1?3]。網頁應用普遍建立在基于MVC架構上的J2EE平臺上,其為Sun 微系統公司制定的一系列構建網頁應用的基礎API接口集合。MVC模型給出了在API之上來結合組件以開發網頁應用的架構模型,其旨在采用合適的方式對組件進行分離式設計,增加Web應用的可維護性和可重用性。然而,由于MVC模型僅提供抽象的形式,導致了行為描述在描述組件靜態架構關系時被分離,在實際開發調試及測試的過程中兩者差異較大[4?6]。因此,本文給出一種簡單的行為模型,并定義一種直接行為描述方式。本文的基本想法是將Web應用程序的行為類比為一個自動機,其狀態為JSP,且狀態轉換被URL請求所調用。假設應用程序有一個進入頁面,如歡迎頁面,同時有一些最終頁面,如感謝頁或錯誤頁。在網頁應用中,返回到之前訪問過的頁面常會要求相似的轉換。因此,本文考慮將重訪頁面作為改進測試。基于這種思想,本文給出一種網頁程序的測試標準,并通過一個簡單的圖書管理系統來論證該方法的有效性。

1 網頁應用的MVC模型

MVC模型由三種組件構成:模塊、視圖和控制器。其中,模塊組件代表數據域,視圖組件處理客戶端的輸出,控制器組件定義對數據的操作。MVC模型通常在J2EE平臺上使用JSP/Servlet技術[7],其模型基本結構如圖1所示。首先瀏覽器遞交一個需求給控制器,控制器根據需求處理模塊組件中的數據,并將處理后的數據更新至后臺數據庫,然后控制器將會調用一個JSP對請求做出響應。

文中MVC模型使用JSP/Servlet技術,其中模塊組件采用JavaBean來實現,視圖組件采用Java Server 頁面,控制器組件則采用ActionServlet實現。J2EE根據指定組件之間連接的配置信息來組裝組件。

Struts是由Jakarta項目開發的一個開源網頁應用框架,Struts采用遵從如上所述的MVC模型的JSP/Servlet技術,其具體類結構如圖2所示。基于MVC模型的行為在其中的實現如下:ActionServlet是一個總的工廠類,負責處理外部請求及分配適當的ActionServlet。開發人員通過定義操作類的子類來實現具體的控制行為。操作類是通過ActionServlet類激發的抽象類。一個Servlet操作指的是一種活動形式目標以及做一些處理操作,其結果被包括到操作轉發目標中以返回給Servlet操作[8?9]。Servlet操作將會根據描述ActionForward到JSP的映射關系ActionMapping來調用一個JSP。最后,所調用的JSP作為響應呈現。與此同時,JSP可能會根據其動態內容做出一些相應處理。

2 行為模型

基于MVC模型的Web應用程序的原始外部行為是成對的請求序列和JSP,本文將網頁應用的行為模式化為一種自動機。鑒于Struts框架,文中用有限狀態來完成自動機模式化,其中的狀態是一系列出現在配置中的JSP[10?11]。自動機的字母表來自ActionServlet的請求和響應,這些請求和響應在其中被描述為配置文件。本文假設有一個最初的JSP作為預期行為的切入點,同時假設最終的JSP作為網頁應用事務和會話的預期終結點。

定義1 給定一個在Struts中描述的網頁應用A,一個有限自動機WebA=(View,Act,AM,iv,FV),調用Web自動機定義如下:View是在A中的JSP文件;Act是A的一系列請求及Servlet響應對集合;[AM?View×Act×View]是A的操作映射;[iv∈View]是A中的初始JSP頁面;[FV?View]是A中的最終JSP頁面集合。存在[a∈Act],本文定義rq/re,其中rq是一個對ActionServlet的請求標簽,re是對ActionServlet的響應標簽,當ActionServlet被激活時,re被忽略。Action映射指被激活的指向指定的ActionServlet的指令集合,而JSP則根據ActionServlet被調用。

本文的建模目的旨在測試網頁應用,即使在最終的JSP中,仍需存在一些鏈接以開始其另一個請求;但對于測試應用的動態行為,這些鏈接并不重要,因通常這些鏈接并不包含應用的邏輯組件,這些請求均惟一地被應用映射到含有適當前綴的URL上。為了簡單起見,本文忽視這些參數。

圖3所示為一個行為模型的示例——簡單的圖書館管理系統,其負責管理圖書數據庫。該圖書館管理系統由三個功能組成,其一是檢索系統中已注冊的書籍,該功能由JSP,QueryAct構成搜索,由JSP構成列表,并使用未認證的JSP呈現細節。另外兩個功能是注冊新書以及修改注冊記錄,這兩個功能由JSP執行修改,由ModifyAct及RegistAct執行注冊,由JSP顯示成功和失敗的結果,通過CertifyAct進行認證以及通過JSP來進行登錄實現。

圖3中Weblib的行為模型組成如下:

View = {search, list, detail, login, modify, regist, failure, success}

Act= {QueryAct/list,QueryAct/detail, CertifyAct/mod, CertifyAct/reg, CertifyAct/NG, ModifyAct/success, Modify/failure, RegistAct/success, RegistAct/failure, link search, link detail}

iv = search

FV = {list, detail, failure, success}

AM = {(search, QueryAct/list, list), (search,QueryAct/detail, detail), (search, CertifyAct/NG, login), (search, CertifyAct/mod, modify), (search, CertifyAct/reg, regist), (login, CertifyAct/NG, login), (login, CertifyAct/mod, modify), (login,CertifyAct/reg,regist), (detail, CertifyAct/mod, modify),(detail,CertifyAct/reg,regist), (detail, CertifyAct/NG, login), (modify, ModifyAct/success, success),(modify, ModifyAct/failure, failure), (list, link detail, detail), (regist, RegistAct/success, success), (list, link search, search),(regist, RegistAct/failure, failure), (detail, link search, search),(success, link search, search), (failure, link search, search)}

3 測試框架

給定一個網頁應用A,WebA將遵從操作映射模擬全部的行為特性。每個字均會被WebA介紹以模仿預期A的事務或會話。語言同樣也被WebA接收,即L(WebA)。因此,檢測L(WebA)中的所有字是一種對A有效的測試方式。然而,因L(WebA)是一個常規集合,通常其是無窮的,從測試的角度來看,本文主要關注網頁應用的特性,WebA中的循環是一個返回之前訪問過的頁面的序列,這些重復訪問的頁面通常會導致應用中的邏輯組件進行相似的應用。據此,在L(WebA)中最令人感興趣的測試是其中最多一次循環的字,為了包含所有轉換,必須將單循環考慮在內。通過增加JSP的訪問,可以測試Web應用程序更多的屬性。本文將這種思想形式化以形成一種測試標準。

Weblib有兩種循環:由首尾頁間鏈接觸發的以及由更新認證鏈接觸發的。前一種循環是相似事務的重復,后一種循環是用戶得到認證前的空循環。給定一個網頁自動機WebA=(View,Act,AM,iv,FV),一個執行操作是一個由iv引發的View和Act的交變序列:[v0a1v1…alvl]。其中,[v0=iv,vl∈FV],且對于所有的i,[vi,ai+1,vi+1∈AM]。令Exec(WebA)為所有WebA的執行操作計劃,occ(vi,e)為執行操作e中出現vi的次數。文中記錄除去所有來自e的View活動序列L(e)和出現在e中的View集V(e)

定義2 擁有n度的A測試標準[TnA]定義如下:

[TnA={L(e)e∈Exec(WebA),?v∈V(e):occ(v,e)≤n+1}]

顯然,[T0A],[T1A],[T2A],…是遞增數列且[n=0∞TnA=][L(WebA)]。

在很多時候,[T0A]給出了一組大量的測試序列,圖4顯示了網頁應用的測試框架。

在這一框架中,通過一個網頁應用配置構造了網頁自動機,然后提取了執行操作。接著根據測試標準進行了測試,從[Tn]開始直到得到滿足條件的結果。測試標準的最大維度取決于測試中的網頁應用,若任何循環均無副作用,則[T0]就足夠了。

將測試標準應用在Weblib中。如前所述,特征值為L(Weblib)的正則表達式Replib如下:

[Replib=(Path1+Path2)(link_search(Path1+Path2))]

其中,

[path1defCertifyAct/NG?(CertifyAct/mod(ModifyAct/success+ModifyAct/failure)+CertifyAct/reg(RegistAct/success+RegistAct/failure))Path2def(QueryAct/list(e+link_detail)+QueryAct/detail)(e+Path1)]

此處描述測試標準為[T0]和[T1]時的測試序列,使用[Replib↑Ti]來表示語言限制為[Ti],如下:

[Replib↑T0=Path01+(QueryAct/list(e+link_detail)) (e+Path01)]

其中,

[Path01def(e+CertifyAct/NG)×(CertifyAct/mod(ModifyAct/success+ModifyAct/failure)+CertifyAct/reg(RegistAct/sucess+RegistAct/failure)+QueryAct/detail))]

注意到CertifyAct的ActionServlet被重新激活多次,但由于其不是JSP,所以不會對測試標準造成影響。

4 Struts的應用

將Struts的配置方案擴展以直接描述行為。主要增加了JSP和動作映射的結合信息。通過這種擴展,可以在Struts中描述一個網頁應用的網頁自動機。本文為視圖組件創建了一個配置文件(wsm?config.xml),該擴展描述了JSP間的轉換關系。如圖5所示。

圖5顯示了圖書館管理系統中的struts?config.xml 和wsm?config.xml,網頁自動機Weblib由以下部分組成:iv指定為初始狀態元素的路徑屬性,FV則代表了終止狀態元素的路徑屬性。視圖和部分AM指定為視圖映射元素,每個擁有路徑屬性的視圖元素指定一個視圖和由該視圖鏈接的可能狀態轉換。動作鏈接元素定義了一個由其路徑屬性所請求的Servlet調用的狀態轉換。AM的其余部分由struts?config.xml中的一個動作映射元素所指定。根據每個和活動鏈接中路徑元素所匹配的動作元素,這些元素表明哪一種Servlet活動應被激活以及哪些JSP應被活動Servlet執行的結果所調用。因此,AM是被視圖元素中的活動鏈接元素及映射活動元素所指定的。

5 結 論

本文提出了一種基于MVC模型的網頁應用測試框架,首先定義了一種網頁應用的行為模型,并在J2EE平臺上采用JSP/Servlet技術實現的MVC結構展示了一種面向Jakarta Struts框架的應用。該模型直觀地呈現了網頁應用全面的行為,且在這種行為模型下進行了測試。本文的重點在于網頁應用的特性,即通過重訪某些頁面經常導致相似的頁面轉換,為此提出了基于重訪問相同頁數量的測試標準,相比較其他測試其更為精確。盡管測試標準基于測試中的網頁應用的特性,在眾多情況下預期最簡單的測試標準可涵蓋哪些僅重復訪問一次的測試序列。

參考文獻

[1] 林艷琴.Web功能測試自動化的研究與應用[D].成都:電子科技大學,2010.

[2] 侯婷.基于Web功能測試自動化研究與應用[D].青島:山東科技大學,2014.

[3] 鄧璐娟,范乃梅,孫義坤,等.基于Web應用的性能測試模型研究[J].計算機工程與應用,2013,49(1):75?77.

[4] 王新.基于MVC模式的通用Web軟件系統開發框架設計與實現[D].成都:電子科技大學,2007.

[5] 郝紅巖.基于MVC模式的Web框架的應用研究[D].武漢:武漢理工大學,2013.

[6] 王俊芳,李隱峰,王池.基于MVC模式的ThinkPHP框架研究[J].電子科技,2014,27(4):151?153.

[7] ATKINS D L, BALL Thomas, BRUNS Glenn, et al. Mawl: a domain?specific language for form?based services [J]. IEEE transactions on software engineering, 1999, 25(3): 334?346.

[8] 歐陽宏基,葛萌.基于Struts2與Hibernate框架的Java Web應用研究[J].自動化技術與應用,2016,35(2):48?52.

[9] MORALES?CHAPARRO R, LINAJE M, PRECIADO J C, et al. MVC web design patterns and rich internet applications [J]. Proceedings of the jornadas de ingenier?a del software y bases de datos, 2007, 32(5): 98?104.

[10] 曾紅衛.Web應用的驗證與測試方法研究[D].上海:上海大學,2008.

[11] WOJCIECHOWSKI J, SAKOWICZ B, DURA K, et al. MVC model, struts framework and file upload issues in web applications based on J2EE platform [C]// Proceedings of the 2004 International Conference on Modern Problems of Radio Engineering, Telecommunications and Computer Science. [S.l.]: IEEE, 2004: 342?345.

猜你喜歡
計算機軟件
芻議計算機軟件中的安全漏洞檢測技術
消費電子(2021年7期)2021-08-10 06:03:55
計算機軟件技術的不可靠性探析
基于C語言的計算機軟件編程
電子制作(2018年16期)2018-09-26 03:27:08
淺談不同編程語言對計算機軟件開發的影響
電子制作(2018年1期)2018-04-04 01:48:36
計算機軟件數據庫設計應用探析
電子制作(2017年14期)2017-12-18 07:08:03
計算機軟件安全檢測技術研究
電子制作(2017年10期)2017-04-18 07:22:58
淺談基于C語言的計算機軟件程序設計
電子制作(2017年24期)2017-02-02 07:14:40
淺析計算機軟件數據接口的應用分析
工業設計(2016年7期)2016-05-04 04:02:29
神州修車救援APP取得計算機軟件著作權
計算機軟件開發中的分層技術分析
河南科技(2014年19期)2014-02-27 14:15:24
主站蜘蛛池模板: 91无码人妻精品一区二区蜜桃| 鲁鲁鲁爽爽爽在线视频观看 | 亚洲无码高清视频在线观看| 日本免费福利视频| 国产精品第一区在线观看| 麻豆精品久久久久久久99蜜桃| 91精品视频网站| 亚洲精品国产乱码不卡| 国产91久久久久久| 午夜国产精品视频黄| 国产91无毒不卡在线观看| 狠狠做深爱婷婷综合一区| 亚洲精品无码久久毛片波多野吉| 91精品国产一区自在线拍| 综合色在线| 婷婷99视频精品全部在线观看| 天天做天天爱天天爽综合区| 国产在线视频自拍| 污网站免费在线观看| 欧美一区二区三区欧美日韩亚洲| 国产日韩av在线播放| 国产第四页| 91在线中文| 无码网站免费观看| 另类重口100页在线播放| 黄色网在线| 伊人久热这里只有精品视频99| 国产电话自拍伊人| 国产精品久线在线观看| 亚洲精品不卡午夜精品| 美女扒开下面流白浆在线试听| 亚洲无码精彩视频在线观看| 国产成人1024精品| 在线观看精品国产入口| 色婷婷丁香| 亚洲男女在线| 中文字幕欧美日韩| 成人毛片免费在线观看| 亚洲免费毛片| 亚洲成人77777| 欧美色伊人| 亚洲国产天堂久久综合| 狠狠色噜噜狠狠狠狠色综合久| 亚洲精品无码抽插日韩| 六月婷婷激情综合| 一级毛片视频免费| 干中文字幕| 久久一色本道亚洲| 91成人试看福利体验区| 国产午夜无码片在线观看网站| 国产理论最新国产精品视频| 欧美成a人片在线观看| 青草视频网站在线观看| 伊人久久大香线蕉影院| 无码国产伊人| 视频一本大道香蕉久在线播放| 午夜日b视频| 萌白酱国产一区二区| av在线无码浏览| 2020极品精品国产| 国产va在线观看| 亚洲综合色婷婷| 国产精品成人观看视频国产| 久久国产乱子| 成人韩免费网站| 九九久久精品国产av片囯产区| 国产一区二区网站| 91欧美亚洲国产五月天| 99热这里只有精品在线观看| 91福利一区二区三区| 黄片一区二区三区| 欧美成人影院亚洲综合图| 亚洲黄色成人| 国产99精品视频| 国产成人1024精品下载| 国产精品第一区| 亚洲日本精品一区二区| 91精品人妻互换| 国产欧美日韩在线在线不卡视频| 久久综合色88| 欧美日韩v| 九色综合视频网|