• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      蔣破荒 徐建明

      摘 要: MVC模型分離設計的思想提高了軟件的整體質量,然而由于模型只定義了靜態(tài)架構組件的配置,其并不能明顯地提供Web應用程序開發(fā)過程中的行為表現(xiàn),這導致了Web應用程序的描述和其行為特性間較為明顯的差異。為了解決這一問題,提出一種行為模型來填補該差異,即對該程序的URL請求序列自動接收機制進行模式化,為Web應用程序提出一個基于行為模式的測試框架。研究表明,當集中于循環(huán)行為自動機制時,該框架可提供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應用是計算機響應系統(tǒng)外的網(wǎng)絡請求所需的一種軟件技術,其基本特征是根據(jù)不同交互系統(tǒng)和環(huán)境所表現(xiàn)出的特殊行為機制。在傳統(tǒng)基于功能模塊的軟件中,輸入輸出關系極為重要,這種特征影響著軟件架構的各個方面[1?3]。網(wǎng)頁應用普遍建立在基于MVC架構上的J2EE平臺上,其為Sun 微系統(tǒng)公司制定的一系列構建網(wǎng)頁應用的基礎API接口集合。MVC模型給出了在API之上來結合組件以開發(fā)網(wǎng)頁應用的架構模型,其旨在采用合適的方式對組件進行分離式設計,增加Web應用的可維護性和可重用性。然而,由于MVC模型僅提供抽象的形式,導致了行為描述在描述組件靜態(tài)架構關系時被分離,在實際開發(fā)調試及測試的過程中兩者差異較大[4?6]。因此,本文給出一種簡單的行為模型,并定義一種直接行為描述方式。本文的基本想法是將Web應用程序的行為類比為一個自動機,其狀態(tài)為JSP,且狀態(tài)轉換被URL請求所調用。假設應用程序有一個進入頁面,如歡迎頁面,同時有一些最終頁面,如感謝頁或錯誤頁。在網(wǎng)頁應用中,返回到之前訪問過的頁面常會要求相似的轉換。因此,本文考慮將重訪頁面作為改進測試?;谶@種思想,本文給出一種網(wǎng)頁程序的測試標準,并通過一個簡單的圖書管理系統(tǒng)來論證該方法的有效性。

      1 網(wǎng)頁應用的MVC模型

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

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

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

      2 行為模型

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

      定義1 給定一個在Struts中描述的網(wǎng)頁應用A,一個有限自動機WebA=(View,Act,AM,iv,F(xiàn)V),調用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則根據(jù)ActionServlet被調用。

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

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

      圖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 測試框架

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

      Weblib有兩種循環(huán):由首尾頁間鏈接觸發(fā)的以及由更新認證鏈接觸發(fā)的。前一種循環(huán)是相似事務的重復,后一種循環(huán)是用戶得到認證前的空循環(huán)。給定一個網(wǎng)頁自動機WebA=(View,Act,AM,iv,F(xiàn)V),一個執(zhí)行操作是一個由iv引發(fā)的View和Act的交變序列:[v0a1v1…alvl]。其中,[v0=iv,vl∈FV],且對于所有的i,[vi,ai+1,vi+1∈AM]。令Exec(WebA)為所有WebA的執(zhí)行操作計劃,occ(vi,e)為執(zhí)行操作e中出現(xiàn)vi的次數(shù)。文中記錄除去所有來自e的View活動序列L(e)和出現(xiàn)在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],…是遞增數(shù)列且[n=0∞TnA=][L(WebA)]。

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

      在這一框架中,通過一個網(wǎng)頁應用配置構造了網(wǎng)頁自動機,然后提取了執(zhí)行操作。接著根據(jù)測試標準進行了測試,從[Tn]開始直到得到滿足條件的結果。測試標準的最大維度取決于測試中的網(wǎng)頁應用,若任何循環(huán)均無副作用,則[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中描述一個網(wǎng)頁應用的網(wǎng)頁自動機。本文為視圖組件創(chuàng)建了一個配置文件(wsm?config.xml),該擴展描述了JSP間的轉換關系。如圖5所示。

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

      5 結 論

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

      參考文獻

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

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

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

      [4] 王新.基于MVC模式的通用Web軟件系統(tǒng)開發(fā)框架設計與實現(xiàn)[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] 曾紅衛(wèi).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.

      猜你喜歡
      軟件測試計算機軟件
      基于OBE的軟件測試課程教學改革探索
      計算機教育(2020年5期)2020-07-24 08:53:20
      航天軟件測試模型構建與應用
      軟件(2020年3期)2020-04-20 01:45:34
      EXCEL和VBA實現(xiàn)軟件測試記錄管理
      電子制作(2018年16期)2018-09-26 03:27:18
      基于C語言的計算機軟件編程
      電子制作(2018年16期)2018-09-26 03:27:08
      淺談不同編程語言對計算機軟件開發(fā)的影響
      電子制作(2018年1期)2018-04-04 01:48:36
      關于軟件測試技術應用與發(fā)展趨勢研究
      電子測試(2017年15期)2017-12-18 07:19:20
      計算機軟件數(shù)據(jù)庫設計應用探析
      電子制作(2017年14期)2017-12-18 07:08:03
      淺談基于C語言的計算機軟件程序設計
      電子制作(2017年24期)2017-02-02 07:14:40
      神州修車救援APP取得計算機軟件著作權
      智能電能表軟件測試技術概述
      桓仁| 乌审旗| 邓州市| 报价| 留坝县| 东台市| 积石山| 海口市| 淮滨县| 绥芬河市| 青岛市| 梨树县| 弥渡县| 崇明县| 阿拉尔市| 阿城市| 手机| 措勤县| 深水埗区| 建阳市| 临潭县| 昭苏县| 衡水市| 聊城市| 黎平县| 平利县| 山丹县| 米脂县| 边坝县| 永仁县| 乐清市| 光泽县| 望城县| 榆树市| 开化县| 丹凤县| 延长县| 浙江省| 海门市| 方正县| 旺苍县|