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

        ?

        Web應(yīng)用系統(tǒng)中的MOCK測試技術(shù)

        2016-02-13 05:58:26潘詩瑤黃建明
        軟件 2016年12期
        關(guān)鍵詞:測試工具單元測試服務(wù)端

        潘詩瑤,黃建明

        (1. 北京郵電大學(xué)電子工程學(xué)院電子科學(xué)與技術(shù)專業(yè),北京 100876;2. 北京郵電大學(xué),北京 100876)

        Web應(yīng)用系統(tǒng)中的MOCK測試技術(shù)

        潘詩瑤1,黃建明2

        (1. 北京郵電大學(xué)電子工程學(xué)院電子科學(xué)與技術(shù)專業(yè),北京 100876;2. 北京郵電大學(xué),北京 100876)

        近年來Web應(yīng)用的市場占有率越來越高,Web開發(fā)技術(shù)也得到了飛速的發(fā)展。然而針對Web應(yīng)用系統(tǒng)的測試卻不夠成熟。為了提高Web應(yīng)用的開發(fā)效率和系統(tǒng)的穩(wěn)定性,研制出適用于Web應(yīng)用的測試?yán)碚撆c框架日益迫切。MOCK測試技術(shù)是通過構(gòu)建模擬對象實現(xiàn)對單元測試中的被測模塊孤立進行測試的技術(shù)。而本文針對Web應(yīng)用系統(tǒng)的分布式等特性,結(jié)合Web開發(fā)的實際需求,對傳統(tǒng)軟件開發(fā)中的MOCK測試技術(shù)進行改進,并且提出了Web應(yīng)用下MOCK自動化測試工具的系統(tǒng)架構(gòu),為Web應(yīng)用系統(tǒng)的測試提供了一個高效的解決方案。

        計算機應(yīng)用;Web應(yīng)用系統(tǒng);軟件測試;MOCK測試

        本文著錄格式:潘詩瑤,黃建明. Web應(yīng)用系統(tǒng)中的MOCK測試技術(shù)[J]. 軟件,2016,37(12):214-218

        0 引言

        隨著移動互聯(lián)網(wǎng)的普及與Web技術(shù)的不斷發(fā)展,以瀏覽器作為承載平臺的Web應(yīng)用開發(fā)與解決方案越來越多。當(dāng)今Web應(yīng)用已經(jīng)不僅僅滿足于靜態(tài)頁面的展示,而是能夠獨立作為一個應(yīng)用系統(tǒng)。隨著Web應(yīng)用系統(tǒng)的廣泛應(yīng)用,Web應(yīng)用系統(tǒng)的測試也越來越受到人們的重視。Web應(yīng)用系統(tǒng)具有異構(gòu)、分布、并發(fā)和平臺無關(guān)等特性,這些特性都使得對Web應(yīng)用系統(tǒng)的測試要比對傳統(tǒng)程序的測試更加困難。由于分布式系統(tǒng)的功能模塊經(jīng)常與其他模塊發(fā)生耦合,為進行單元測試引入了極大的不確定性。在此背景下,Mock技術(shù)于2001年被提出并且逐漸成為單元測試中不可或缺的技術(shù)。Mock是指在單元測試中,測試系統(tǒng)通過構(gòu)造一系列符合預(yù)定義規(guī)則的模擬對象(Mock Object)來與被測試單元進行交互,從而判斷被試單元在正常邏輯,異常邏輯或壓力情況下能夠正常工作,返回預(yù)期的輸出結(jié)果。然而在Web應(yīng)用系統(tǒng)剛剛興起不久的情況下,沒有可靠的Mock測試工具可用于Web應(yīng)用場景下的Mock自動化測試[1]。

        本文對比了Web應(yīng)用系統(tǒng)與傳統(tǒng)軟件的不同之處,闡述了Web應(yīng)用系統(tǒng)測試所面臨的挑戰(zhàn)。通過對Web應(yīng)用系統(tǒng)開發(fā)所面臨問題的分析,提出了Web應(yīng)用系統(tǒng)下Mock測試的需求,創(chuàng)新性的設(shè)計了Web系統(tǒng)下Mock自動化測試工具的模型與架構(gòu),對指導(dǎo)Web場景下的Mock單元測試具有重要意義。

        1 Mock測試技術(shù)

        1.1 軟件測試概述

        互聯(lián)網(wǎng)時代的到來與計算機技術(shù)的發(fā)展,使軟件產(chǎn)品極大的改變了人們的工作與生活。與此同時,軟件產(chǎn)品的質(zhì)量也成為人們關(guān)注的焦點。為了避免軟件出現(xiàn)缺陷與漏洞,從而帶來巨大損失,在軟件分析、設(shè)計等各個開發(fā)階段,應(yīng)對軟件進行嚴(yán)格的技術(shù)評審。軟件在編碼階段會被引入大量錯誤,由于人的能力有限,通過技術(shù)審查無法發(fā)現(xiàn)所有的錯誤。如果這些軟件漏洞與缺陷在軟件交付與投入使用時才被暴露出來,修復(fù)缺陷的成本會大幅提高,為軟件開發(fā)商和使用者造成巨大的損失。

        提早對軟件產(chǎn)品進行測試可以避免上述問題的發(fā)生。軟件測試就是在軟件開發(fā)的初始階段,對軟件的需求、設(shè)計及編碼進行嚴(yán)格的審查,及時的發(fā)現(xiàn)軟件產(chǎn)品的缺陷,確保產(chǎn)品的穩(wěn)定性與可靠性。軟件測試就是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程[2]。

        1.1.1 軟件測試模型

        在當(dāng)前的軟件測試領(lǐng)域,最常見的軟件測試模型是V模型。V模型是80年代由Paul Rock提出,是目前使用最廣泛的一種模型。V模型是瀑布模型的變種,它明確的表明了測試過程的單元測試、集成測試、系統(tǒng)測試及驗收測試四個不同的階段,并且描述了這四個階段和開發(fā)過程的各個階段的對應(yīng)關(guān)系。

        圖1 V模型Fig.1 the V Model

        V模型界定了測試存在于軟件開發(fā)的不同階段,并明確了軟件開發(fā)各個階段與測試各個階段的對應(yīng)關(guān)系,是軟件工程中最常用的軟件測試模型。

        1.1.2 軟件缺陷的修復(fù)成本分析

        由圖1可知,軟件測試對應(yīng)于系統(tǒng)開發(fā)的各個階段。而隨著軟件開發(fā)生命周期的不斷推移,修復(fù)軟件漏洞的成本也不斷提高。Boehm在《軟件工程經(jīng)濟學(xué)》一書中曾經(jīng)對軟件缺陷的修復(fù)成本進行過統(tǒng)計與分析[3]。在軟件的各個生命周期中,引入系統(tǒng)漏洞及軟件的修復(fù)成本如圖2所示。

        圖2 軟件各生命周期的漏洞修復(fù)成本Fig.2 The vulnerability repairing cost in the software life cycle

        從圖中可以看出,軟件漏洞的修復(fù)成本隨著軟件周期的推移呈指數(shù)型增長。因此,企業(yè)和開發(fā)者應(yīng)在軟件開發(fā)初期,通過軟件測試盡早的發(fā)現(xiàn)問題并對系統(tǒng)漏洞進行修復(fù),避免在產(chǎn)品發(fā)布后造成破壞性的后果。而在軟件測試中,單元測試處于軟件生命的最早期,因此,對單元測試技術(shù)的研究以及單元測試工具的開發(fā)都具有重要的意義。

        1.2 Web應(yīng)用場景下的軟件測試

        12.1 Web系統(tǒng)的特性

        Web應(yīng)用與傳統(tǒng)的軟件不同。Web應(yīng)用軟件一般采用客戶機/服務(wù)器/數(shù)據(jù)庫的計算模式,在這種模式下,系統(tǒng)至少由三層體系結(jié)構(gòu)組成:客戶端(瀏覽器)-應(yīng)用服務(wù)器-數(shù)據(jù)庫服務(wù)器。可以把Web應(yīng)用軟件看成是一個使用方便、接受全局訪問、具有圖形化界面的大的數(shù)據(jù)庫的前端。其結(jié)構(gòu)示意圖如圖3所示。

        圖3 Web應(yīng)用軟件結(jié)構(gòu)Fig.3 The Structure of Web Application

        由圖3可以看到,由于Web應(yīng)用系統(tǒng)具有分布式的特性,使用不同編程語言、具有不同邏輯功能的單元模塊之間相互依賴。這種依賴為Web系統(tǒng)的單元測試引入了不確定性,由于不同模塊的開發(fā)進度不同,單元測試常常無法順利的進行。

        1.2.2 Mock測試技術(shù)

        為了保證使軟件最小單元之間可以無干擾的獨立進行單元測試,保證測試結(jié)果的穩(wěn)定性,就必須為軟件測試提供一個細(xì)粒度的模擬對象。Tim Mackinnon,Steve Freeman和Philip Craig在XP2000會議上的一篇文章《Endo Testing: Unit Testing with Mock Objects》中提出了Mock objects的概念。Mock objects(簡稱Mocks)是用來代替與代碼協(xié)作對象的對象,它為代碼提供了具有特性屬性和方法的對象支持。使用Mock objects的技術(shù)叫做Mock技術(shù),它是在單元測試基礎(chǔ)框架基礎(chǔ)上的擴展的代碼邏輯單元測試方法。Mocks通過隔離被測碼之間、被測試代碼和測試代碼之間的關(guān)聯(lián)程度,來簡化測試結(jié)構(gòu),避免被代碼因測試環(huán)境出現(xiàn)意外,而導(dǎo)致的復(fù)雜情況。它可以確保單元測試的獨立性,在一個時間段只對一個最小可測試單元進行測試,實現(xiàn)軟件漏洞的快速定位,提高開發(fā)和測試效率。

        2 Web系統(tǒng)下的Mock測試工具

        2.1 Mock測試需求

        由于Mock技術(shù)提供了與模塊具有相同數(shù)據(jù)結(jié)構(gòu)和功能的模擬對象,非常適用于針對Web應(yīng)用系統(tǒng)的單元測試中。使用Mock測試工具進行Web軟件的單元測試,可以非常好的解決以下場景中Web系統(tǒng)開發(fā)存在的問題。

        2.1.1 客戶端優(yōu)先場景

        在Web應(yīng)用系統(tǒng)的開發(fā)過程中,前后端分離開發(fā)已經(jīng)成了主流高效的開發(fā)方式。在這種開發(fā)方式下,服務(wù)端和客戶端的開發(fā)人員可以各自獨立并行進行系統(tǒng)邏輯、界面、接口的開發(fā)工作,僅僅通過HTTP協(xié)議訪問API進行JSON數(shù)據(jù)的傳輸來實現(xiàn)服務(wù)端對客戶端的邏輯支持[4]。這種模式下,前端十分依賴來自后臺的JSON數(shù)據(jù),此時若后臺接口開發(fā)進度落后,前端沒有辦法使用數(shù)據(jù)進行頁面的填充,會很大程度上阻礙前端頁面開發(fā)的進行。

        2.1.2 服務(wù)端優(yōu)先場景

        而當(dāng)服務(wù)端接口優(yōu)先完成開發(fā)時,由于客戶端開發(fā)的滯后,無法通過構(gòu)建AJAX對象訪問服務(wù)端接口,測試接口的準(zhǔn)確性。若服務(wù)端接口出現(xiàn)漏洞,則直到客戶端AJAX對象開發(fā)完畢才有可能被發(fā)現(xiàn),不滿足軟件測試應(yīng)盡早進行的原則,同時有可能給系統(tǒng)帶來嚴(yán)重的損失。

        圖4 前后端分離開發(fā)模型Fig.4 The Separation of Frontend and Backend

        在這兩種場景下,引入Mock測試技術(shù)能夠有效的解決問題。Mock測試工具需要根據(jù)Web應(yīng)用系統(tǒng)的開發(fā)需要動態(tài)構(gòu)建出Mock API,返回與服務(wù)端具有相同數(shù)據(jù)模型的Mock數(shù)據(jù),是客戶端可以脫離服務(wù)端開發(fā)進度進行AJAX對象的開發(fā)和測試。同時Mock測試工具需要模擬出客戶端可能提供的請求參數(shù),測試服務(wù)端接口邏輯的正確性。

        2.2 Mock工具原型

        在Web系統(tǒng)開發(fā)過程中,由于服務(wù)端-客戶端開發(fā)進度的不同步,會引起相互無法為對方提供依賴對象的問題。因此,Mock測試工具需要為客戶端與服務(wù)端分別提供符合接口數(shù)據(jù)規(guī)則的模擬數(shù)據(jù)。由于Web系統(tǒng)的特殊性,服務(wù)端與客戶端通過HTTP訪問接口進行通信,因此,Mock測試工具應(yīng)能夠通過開發(fā)者配置的項目接口文檔信息,在Mock測試工具所在的服務(wù)器地址動態(tài)的構(gòu)建模擬接口(Mock API),并返回Mock數(shù)據(jù)。前端開發(fā)者可以訪問該Mock API獲取到與真實接口具有相同格式與含義的數(shù)據(jù),從而對自身的單元進行邏輯驗證。經(jīng)過設(shè)計的Mock測試工具模型如圖5所示。

        3 Mock自動化工具的設(shè)計

        3.1 業(yè)務(wù)流程

        根據(jù)上一章節(jié)對Web系統(tǒng)下Mock測試工具的模型的研究,可以設(shè)計出Mock工具的具體業(yè)務(wù)流程。開發(fā)人員應(yīng)首先在Mock系統(tǒng)中錄入待測項目的接口信息,包括接口的URI,接口請求與請求參數(shù)的數(shù)據(jù)格式、數(shù)據(jù)類型、數(shù)據(jù)含義等參數(shù)。當(dāng)接口信息被保存時,Mock服務(wù)器隨即對該接口進行構(gòu)建,即提供了運行在Mock服務(wù)器上的Mock API支持[5]。此后,客戶端人員即可訪問該Mock API對其最小系統(tǒng)進行測試,服務(wù)端人員也可通過使用該Mock工具發(fā)送Mock請求,驗證接口路由邏輯的正確性[6]。完整的業(yè)務(wù)流程如圖6所示。

        圖5 Web系統(tǒng)下Mock測試工具模型Fig.5 The Mock Test Model in Web System

        圖6 Web系統(tǒng)下Mock測試流程Fig.6 The Technological Process in Mock Test

        3.2 系統(tǒng)架構(gòu)

        根據(jù)上一節(jié)對Web系統(tǒng)中Mock測試的流程設(shè)計,可以設(shè)計出Mock測試工具的具體系統(tǒng)架構(gòu)。由圖6可以看出,Mock工具要為開發(fā)者分別提供接口信息錄入的平臺界面,以及來自Mock服務(wù)端的API支持。因此,Mock工具系統(tǒng)架構(gòu)可以分為Mock平臺與Mock服務(wù)器兩部分。Mock平臺為待測試系統(tǒng)的接口信息錄入提供入口,Mock服務(wù)器則主要為待測試模塊提供Mock API支持[7]。經(jīng)過設(shè)計的Web系統(tǒng)下Mock測試工具的最終系統(tǒng)架構(gòu),如圖7所示。

        開發(fā)者通過前面章節(jié)對Web系統(tǒng)下Mock測試的流程與Mock測試工具的系統(tǒng)架構(gòu)設(shè)計,提出了在Web應(yīng)用系統(tǒng)下應(yīng)用Mock單元測試技術(shù),實現(xiàn)Web應(yīng)用開發(fā)的前后端分離,極大的提高了開發(fā)效率和系統(tǒng)的穩(wěn)定性,在Web應(yīng)用開發(fā)領(lǐng)域具有重大的意義。

        圖7 Mock測試工具系統(tǒng)架構(gòu)Fig.7 The Structure of Mock Test Tool

        4 結(jié)論

        Mock單元測試是針對軟件測試中由于被測試單元之間存在依賴性使測試變得復(fù)雜不可預(yù)料提出的重要解決方案,在軟件測試領(lǐng)域具有重要的地位。

        由于Web應(yīng)用系統(tǒng)的開發(fā)和測試技術(shù)并不成熟,缺乏系統(tǒng)化的Mock測試思想及測試工具。因此,對

        Web應(yīng)用場景下軟件測試的研究具有重要的意義。本文在對軟件單元測試技術(shù)進行深入研究,并對Web應(yīng)用系統(tǒng)測試的特殊性進行闡述之后,提出了針對Web應(yīng)用系統(tǒng)的Mock測試思想,并根據(jù)該思想進行了Web應(yīng)用系統(tǒng)具體的Mock自動化測試工具的流程及架構(gòu)設(shè)計。該架構(gòu)針對Web應(yīng)用系統(tǒng)的特殊性,創(chuàng)新性的提出了Mock API與Mock數(shù)據(jù)的概念,能夠極大的提高Web應(yīng)用系統(tǒng)的開發(fā)及效率,解耦服務(wù)端-客戶端間的模塊依賴,實現(xiàn)真正的前后端分離開發(fā)。

        [1] PATTON R. Software Testing [M]. New York: John Wiley and Sons Ltd, 2007.

        [2] 隋智泉.一種改進的單元測試JUnit框架[J]. 電腦知識與技術(shù), 2007(8): 479-480. SUI Z Q. An Improved JUnit Unit Testing Framework [J]. Computer Knowledge and Technology, 2007(8): 479-480 (in Chinese).

        [3] 鄧小鵬. Web應(yīng)用測試技術(shù)進展[J]. 計算機研究與發(fā)展, 2007, 44(8): 74-81. DENG X P. Web Application Testing Technology [J]. Computer Research and Development, 2007, 44(8): 74-81(in Chinese)

        [4] 張福民. 信息系統(tǒng)開發(fā)中的自動化測試應(yīng)用研究[D]. 大連: 大連海事大學(xué), 2006. ZHANG F M. Automated Test Applications in the Development of Information System[D]. Dalian: Dalian Maritime University, 2006(in Chinese)

        [5] 伍向前. 單元測試中mock技術(shù)的研究和創(chuàng)新[D]. 大連:大連交通大學(xué), 2008. Wu X Q. Mock Technology Research and Innovation in Unit Test [D]. Dalian: Dalian Railway Institute, 2008(in Chinese)

        [6] T Mackinnon, S Freeman, P Craig. Endo-Testing: Unit Testing with Mock Objects [J] Extreme Programming Examined, 2001(5): 287-301

        [7] 張敏. 面向Web應(yīng)用的測試適配技術(shù)研究[D]. 山東: 山東師范大學(xué), 2010 Zhang M. Test Adapter Technologies for Web Applications [d]. Shandong: Shandong Normal University, 2010(in Chinese)

        The Mock Testing Technology in the Web Application System

        PAN Shi-yao1, HUANG Jian-ming1

        (Beijing University of Posts and Telecommunications, Beijing 100876, China)

        In recent years, the market share of Web applications is increasing, and the Web technology is rapidly developed. However, the testing of Web application system is not mature enough. In order to improve the efficiency of Web application development and the stability of the system, it is urgent to develop a test theory and framework for Web applications. MOCK test is a technique to test the tested module isolated in the unit test by constructing the mock object. This paper in view of the characteristics of distributed Web application system, combining the actual needs of the Web application development, ameliorates the MOCK testing technology in traditional software development, and puts forward the system architecture of MOCK automated testing tools in the Web application, provides an effective solution for the testing of Web application system.

        Computer application; Web application system; Software testing; MOCK testing technology

        TP393.06

        A

        10.3969/j.issn.1003-6970.2016.12.046

        潘詩瑤(1992-),女,碩士研究生,計算機Web應(yīng)用技術(shù)。

        黃建明,副教授,主要研究方向:多媒體技術(shù)、衛(wèi)星導(dǎo)航技術(shù)和智能通信等。

        猜你喜歡
        測試工具單元測試服務(wù)端
        邊緣智力兒童及其智力測試工具的研究進展
        Http并發(fā)連接測試工具
        云存儲中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
        新時期《移動Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
        在Windows Server 2008上創(chuàng)建應(yīng)用
        福祿克推出先進的連接式測試工具系統(tǒng)
        一年級上冊第五單元測試
        一年級上冊一、二單元測試
        第五單元測試卷
        第六單元測試卷
        亚洲午夜无码久久yy6080| 日产一区二区三区免费看| 国产自国产自愉自愉免费24区| 秘书边打电话边被躁bd视频| 人妻 日韩精品 中文字幕| 妞干网中文字幕| 人妻尤物娇呻雪白丰挺| 久久久精品亚洲人与狗| 中文字幕av伊人av无码av| 帮老师解开蕾丝奶罩吸乳视频| 亚洲欧美精品伊人久久| av无码电影一区二区三区| 97人妻精品一区二区三区免费| 亚洲乱码中文在线观看| 国产男女免费完整视频| 色老汉免费网站免费视频| 无码高潮少妇毛多水多水免费| 亚洲av资源网站手机在线 | 蜜臀av999无码精品国产专区| 国产肉丝袜在线观看| 亚洲国产精品无码久久九九大片健| 久久久噜噜噜噜久久熟女m| 亚洲中文久久精品字幕| 97人人模人人爽人人少妇| 最新亚洲人成无码网站| 精品黑人一区二区三区| 亚洲成人一区二区三区不卡| 国产大片内射1区2区| 成人白浆超碰人人人人| 99国产精品无码专区| 日韩三级一区二区三区四区| 国产情侣一区二区| 国语精品一区二区三区| 久久久国产精品免费无卡顿| 久久精品亚洲熟女九色| 久久精品色福利熟妇丰满人妻91| 久久久久亚洲av成人无码| 中文字幕av日韩精品一区二区 | 亚洲自偷自拍另类第一页| 精品国产一区二区三区不卡在线| 亚洲av无码精品蜜桃|