亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于MVC模型和行為描述的Web應(yīng)用測試框架

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

        蔣破荒 徐建明

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

        關(guān)鍵詞: 計(jì)算機(jī)軟件; MVC構(gòu)架; Jakarta Struts框架; 軟件測試

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

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

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

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

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

        2 行為模型

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

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

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

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

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

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

        定義2 擁有n度的A測試標(biāo)準(zhǔn)[TnA]定義如下:

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

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

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

        在這一框架中,通過一個(gè)網(wǎng)頁應(yīng)用配置構(gòu)造了網(wǎng)頁自動機(jī),然后提取了執(zhí)行操作。接著根據(jù)測試標(biāo)準(zhǔn)進(jìn)行了測試,從[Tn]開始直到得到滿足條件的結(jié)果。測試標(biāo)準(zhǔn)的最大維度取決于測試中的網(wǎng)頁應(yīng)用,若任何循環(huán)均無副作用,則[T0]就足夠了。

        將測試標(biāo)準(zhǔn)應(yīng)用在Weblib中。如前所述,特征值為L(Weblib)的正則表達(dá)式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)]

        此處描述測試標(biāo)準(zhǔn)為[T0]和[T1]時(shí)的測試序列,使用[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,所以不會對測試標(biāo)準(zhǔn)造成影響。

        4 Struts的應(yīng)用

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

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

        5 結(jié) 論

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

        參考文獻(xiàn)

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

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

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

        [4] 王新.基于MVC模式的通用Web軟件系統(tǒng)開發(fā)框架設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2007.

        [5] 郝紅巖.基于MVC模式的Web框架的應(yīng)用研究[D].武漢:武漢理工大學(xué),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應(yīng)用研究[J].自動化技術(shù)與應(yīng)用,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應(yīng)用的驗(yàn)證與測試方法研究[D].上海:上海大學(xué),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.

        猜你喜歡
        軟件測試計(jì)算機(jī)軟件
        基于OBE的軟件測試課程教學(xué)改革探索
        航天軟件測試模型構(gòu)建與應(yīng)用
        軟件(2020年3期)2020-04-20 01:45:34
        EXCEL和VBA實(shí)現(xiàn)軟件測試記錄管理
        電子制作(2018年16期)2018-09-26 03:27:18
        基于C語言的計(jì)算機(jī)軟件編程
        電子制作(2018年16期)2018-09-26 03:27:08
        淺談不同編程語言對計(jì)算機(jī)軟件開發(fā)的影響
        電子制作(2018年1期)2018-04-04 01:48:36
        關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
        電子測試(2017年15期)2017-12-18 07:19:20
        計(jì)算機(jī)軟件數(shù)據(jù)庫設(shè)計(jì)應(yīng)用探析
        電子制作(2017年14期)2017-12-18 07:08:03
        淺談基于C語言的計(jì)算機(jī)軟件程序設(shè)計(jì)
        電子制作(2017年24期)2017-02-02 07:14:40
        神州修車救援APP取得計(jì)算機(jī)軟件著作權(quán)
        智能電能表軟件測試技術(shù)概述
        伊人网综合| av素人中文字幕在线观看| 老熟妇乱子交视频一区| 日本真人做人试看60分钟| 中出内射颜射骚妇| 日本视频一区二区三区免费观看 | 精品卡一卡二卡3卡高清乱码 | 成年人一区二区三区在线观看视频 | 日本精品女优一区二区三区| 中文字幕一精品亚洲无线一区| 成人精品一区二区三区中文字幕| 久久久久亚洲av无码尤物| 国产成人AⅤ| 青青青爽在线视频免费播放| 无码专区一ⅴa亚洲v天堂| 亚洲 自拍 另类小说综合图区| 久久亚洲国产精品成人av秋霞| 中文字幕亚洲乱亚洲乱妇| 国产伦理一区二区久久精品| 久久综合伊人77777麻豆| 国偷自产一区二区免费视频| 国产精品毛片无码久久| 青青草久热手机在线视频观看| 久久精品女同亚洲女同| 国产成人小视频| 在线va免费看成| 亚洲AV永久无码精品表情包| 日韩有码在线免费视频| 十八禁视频在线观看免费无码无遮挡骂过 | 国产在线精品亚洲视频在线| 高清在线有码日韩中文字幕| 人人鲁人人莫人人爱精品 | 中文乱码人妻系列一区二区| 亚洲va精品va国产va| 精品国产一区二区三区av免费| 一本精品99久久精品77| 免费无码国产v片在线观看| 免费人成视频网站在线| 婷婷丁香开心五月综合| 熟女人妇 成熟妇女系列视频| 精品久久久久久中文字幕大豆网|