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
主站蜘蛛池模板: 2020极品精品国产| 亚洲AV无码乱码在线观看代蜜桃 | 免费看a毛片| 在线欧美a| 日本高清成本人视频一区| 国产精品美女自慰喷水| 91视频首页| 五月激激激综合网色播免费| 黄色福利在线| 日韩av无码DVD| 日本久久免费| 欧美笫一页| 久久香蕉欧美精品| 青草娱乐极品免费视频| 久久99精品久久久久纯品| 99无码中文字幕视频| 美女无遮挡免费网站| 国产精品一区在线麻豆| 成人国产精品2021| 中文纯内无码H| 亚洲人网站| 欧美激情视频二区| 992Tv视频国产精品| 亚洲一区二区在线无码| 国产精品无码作爱| 亚洲天堂区| 欧美一级片在线| 日本国产精品一区久久久| 四虎影院国产| 青青草国产精品久久久久| 老司国产精品视频91| 久久久久免费精品国产| 欧美在线精品怡红院| 成人一级黄色毛片| 国产永久在线视频| 久久一日本道色综合久久| 亚洲高清中文字幕| 精品国产三级在线观看| 亚洲精品在线观看91| 久久香蕉国产线看观看精品蕉| 最新国产精品第1页| 亚洲专区一区二区在线观看| 四虎精品免费久久| 男女男免费视频网站国产| 亚洲狼网站狼狼鲁亚洲下载| 欧美亚洲一区二区三区导航 | 欧美激情成人网| a级毛片一区二区免费视频| 国产成人综合亚洲欧洲色就色| 亚洲欧洲日产无码AV| 国产欧美日韩在线一区| 91免费国产高清观看| 国产精品视频3p| 国内精品自在自线视频香蕉 | 国产毛片不卡| 亚洲妓女综合网995久久| 国产免费自拍视频| 在线播放91| 一级做a爰片久久毛片毛片| 亚洲无码高清视频在线观看| 亚洲国产中文精品va在线播放| 麻豆精品在线播放| 国产一区二区三区免费| 天天爽免费视频| 99er这里只有精品| 亚洲六月丁香六月婷婷蜜芽| 日韩黄色精品| 亚洲高清中文字幕在线看不卡| 亚洲天堂视频网| 四虎精品国产永久在线观看| 国产成人高精品免费视频| 色综合中文字幕| 欲色天天综合网| 日韩国产一区二区三区无码| 五月天天天色| 人妻一本久道久久综合久久鬼色| 国产jizz| 亚洲国产成人自拍| 国产精品永久在线| 人妻少妇乱子伦精品无码专区毛片| 成年人久久黄色网站| 久久久无码人妻精品无码|