• 
    

    
    

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

      基于Spring的API自動(dòng)化測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

      2015-07-25 09:41:32陳茉莉張會(huì)林張洋洋
      通信電源技術(shù) 2015年5期
      關(guān)鍵詞:測(cè)試人員測(cè)試用例軟件測(cè)試

      陳茉莉,張會(huì)林,劉 波,張洋洋

      (1.上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093;2.上海市現(xiàn)代光學(xué)系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,上海 200093;3.邵陽(yáng)學(xué)院電氣系,湖南 邵陽(yáng) 422002)

      0 引 言

      在早期的軟件測(cè)試活動(dòng)中,人們普遍采用手工測(cè)試法,從編寫(xiě)測(cè)試用例開(kāi)始到執(zhí)行測(cè)試,直到比較測(cè)試結(jié)果得出測(cè)試結(jié)論,都是由測(cè)試人員手動(dòng)來(lái)完成。但是隨著軟件業(yè)的發(fā)展,測(cè)試的需求越來(lái)越大,測(cè)試所遇到的場(chǎng)景也越來(lái)越復(fù)雜,加之軟件測(cè)試過(guò)程越來(lái)越智能化、高效化,軟件測(cè)試開(kāi)始由原來(lái)的人工測(cè)試向自動(dòng)化測(cè)試方向發(fā)展。在開(kāi)發(fā)一款軟件時(shí),不可能針對(duì)每一個(gè)操作系統(tǒng)都開(kāi)發(fā)一個(gè)相應(yīng)的后臺(tái),為了能夠只用一種語(yǔ)言就開(kāi)發(fā)出各種平臺(tái)都適用的后臺(tái)程序,API就產(chǎn)生了。前端和后臺(tái)的開(kāi)發(fā)人員可以通過(guò)API來(lái)進(jìn)行交互操作,而并不需要了解對(duì)方是如何具體去實(shí)現(xiàn)這個(gè)功能的,API相當(dāng)于一個(gè)連接前后端的橋梁。既然API占據(jù)著一個(gè)特殊的地位,那么它的質(zhì)量也是軟件質(zhì)量的基礎(chǔ)。API的測(cè)試既保證了后臺(tái)的質(zhì)量,也為前端開(kāi)發(fā)人員減輕了負(fù)擔(dān)。因此,如果提高API測(cè)試的自動(dòng)化程度,就可以輔助測(cè)試人員高效完成工作。針對(duì)以上的情況,API自動(dòng)化測(cè)試系統(tǒng)的開(kāi)發(fā)刻不容緩。本系統(tǒng)主要針對(duì)Android、IOS操作系統(tǒng),對(duì)App的API進(jìn)行單元測(cè)試,保證軟件在編碼階段的質(zhì)量,為之后的集成測(cè)試、系統(tǒng)測(cè)試打下堅(jiān)實(shí)的基礎(chǔ)。另一方面,基于API的自動(dòng)化測(cè)試系統(tǒng)可以代替手工進(jìn)行API的回歸測(cè)試,這樣在系統(tǒng)版本升級(jí)的時(shí)候就不必再浪費(fèi)人力在回歸測(cè)試上,既保證了產(chǎn)品的質(zhì)量又提高了測(cè)試的效率。

      1 系統(tǒng)的分析與設(shè)計(jì)

      本系統(tǒng)由業(yè)務(wù)處理、測(cè)試用例、數(shù)據(jù)層和Yimin工具四個(gè)部分組成。其中,業(yè)務(wù)處理是系統(tǒng)的核心部分,由它來(lái)完成訪問(wèn)持久性數(shù)據(jù)庫(kù)的操作、根據(jù)測(cè)試用例執(zhí)行測(cè)試、比較測(cè)試結(jié)果等一系列業(yè)務(wù)動(dòng)作;測(cè)試用例是業(yè)務(wù)處理的基礎(chǔ)部分,也是整個(gè)測(cè)試的基礎(chǔ),系統(tǒng)根據(jù)測(cè)試用例來(lái)執(zhí)行并比較結(jié)果得出最終測(cè)試結(jié)果;數(shù)據(jù)層主要是數(shù)據(jù)源提供數(shù)據(jù)信息,Yimin工具主要是用來(lái)和后臺(tái)交互,返回響應(yīng)的API信息。

      1.1 系統(tǒng)的需求分析

      本系統(tǒng)的主要目的是對(duì)API進(jìn)行自動(dòng)化測(cè)試,最終能夠保證軟件產(chǎn)品的質(zhì)量。首先來(lái)介紹一下API在整個(gè)軟件項(xiàng)目中的重要地位。

      該項(xiàng)目是針對(duì)手機(jī)而開(kāi)發(fā)的客戶(hù)端應(yīng)用軟件,主要適用于Android和IOS兩大手機(jī)操作系統(tǒng)。為了使得軟件產(chǎn)品具有高質(zhì)量、高穩(wěn)定性、高健壯性的特點(diǎn),開(kāi)發(fā)團(tuán)隊(duì)的前后端分工十分明確。API為客戶(hù)端和后臺(tái)的交互起到了橋梁的作用。API在項(xiàng)目中的位置如圖1所示。

      圖1 API在項(xiàng)目中的位置

      API在整個(gè)項(xiàng)目中所處的特殊地位,要求它的質(zhì)量必須夠高,也正因?yàn)槿绱耍瑢?duì)API的測(cè)試也是整個(gè)測(cè)試環(huán)節(jié)中必不可少的。因?yàn)閅imin這個(gè)工具的局限性,本文提出了針對(duì)API測(cè)試的自動(dòng)化測(cè)試系統(tǒng),這個(gè)系統(tǒng)的主要作用是省去測(cè)試人員對(duì)測(cè)試結(jié)果一一比對(duì)的過(guò)程,由系統(tǒng)自動(dòng)去完成獲取接口返回信息和結(jié)果比較的工作,也減少了對(duì)API進(jìn)行回歸測(cè)試的成本。

      1.2 系統(tǒng)的總體設(shè)計(jì)

      本系統(tǒng)主要分為大四個(gè)模塊:業(yè)務(wù)邏輯、數(shù)據(jù)層、Yimin和測(cè)試用例,各個(gè)模塊之間相互協(xié)作完成測(cè)試工作,同時(shí)四個(gè)模塊又是相互獨(dú)立的模塊,每一個(gè)模塊內(nèi)部發(fā)生變化,都不會(huì)對(duì)其他模塊產(chǎn)生影響。模塊之間的關(guān)系如圖2所示。

      圖2 系統(tǒng)的總體設(shè)計(jì)

      如圖2所示,業(yè)務(wù)邏輯層是整個(gè)系統(tǒng)的核心部分,由它來(lái)完成訪問(wèn)數(shù)據(jù)層和測(cè)試用例的工作,在業(yè)務(wù)邏輯層中,還會(huì)對(duì)結(jié)果進(jìn)行處理,它會(huì)訪問(wèn)Yimin工具。數(shù)據(jù)層主要是為測(cè)試提供數(shù)據(jù)支持,它會(huì)提供測(cè)試過(guò)程中需要用到的存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)。測(cè)試用例主要是提供一些訪問(wèn)Yimin所需要的信息和進(jìn)行測(cè)試的期望結(jié)果。Yimin是該系統(tǒng)專(zhuān)門(mén)用于API測(cè)試的一個(gè)工具,當(dāng)通過(guò)拼接接口名加參數(shù)連接上Yimin之后,Yimin這個(gè)工具會(huì)返回相應(yīng)的接口信息。四個(gè)模塊各有所長(zhǎng),它們只要完成各自負(fù)責(zé)的功能,不需要干預(yù)其他的模塊功能的實(shí)現(xiàn),而且其中一個(gè)模塊的變化對(duì)于其它兩個(gè)模塊來(lái)說(shuō)是透明的。

      業(yè)務(wù)邏輯層作為系統(tǒng)的核心模塊,需要和數(shù)據(jù)層、測(cè)試用例進(jìn)行交互。業(yè)務(wù)邏輯層在與數(shù)據(jù)層交互時(shí)主要采用了Spring的DAO模式;訪問(wèn)測(cè)試用例時(shí)主要是通過(guò)測(cè)試用例的路徑來(lái)獲得,接著解析測(cè)試用例獲得名稱(chēng)、期望結(jié)果等信息;最后通過(guò)測(cè)試用例中解析出來(lái)的信息,生成一個(gè)URL來(lái)訪問(wèn)Yimin工具。

      2 系統(tǒng)的實(shí)現(xiàn)

      本項(xiàng)目中使用了一些Spring的注解,使得項(xiàng)目的開(kāi)發(fā)變得簡(jiǎn)單高效。Spring利用了DAO模式,將業(yè)務(wù)邏輯和數(shù)據(jù)層分離。該系統(tǒng)采用Spring的DAO模式來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn),使用MySQL的數(shù)據(jù)庫(kù)。Spring可以通過(guò)配置文件實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接,訪問(wèn)數(shù)據(jù)源,本系統(tǒng)采用DAO模式,并用JDBC的方式來(lái)實(shí)現(xiàn)DAO。為了更好地模塊化JDBC操作,簡(jiǎn)化傳統(tǒng)的JDBC操作的復(fù)雜和繁瑣過(guò)程,使用模板方式封裝JDBC數(shù)據(jù)庫(kù)操作,即JdbcTemplate。用模板封裝數(shù)據(jù)庫(kù)操作的優(yōu)點(diǎn)在于可以簡(jiǎn)化JDBC的操作,開(kāi)發(fā)者只需要提供SQL、設(shè)置SQL中的變量,最后提取ResultSet,而JDBC對(duì)象的獲取釋放、異常類(lèi)型轉(zhuǎn)化的操作都由模板負(fù)責(zé)。最后通過(guò)TestNG的配置文件來(lái)達(dá)到將測(cè)試用例和代碼相分離的目的。只需要將要執(zhí)行的case放入配置文件中,在執(zhí)行測(cè)試時(shí),選擇Run as TestNG Suite,測(cè)試就能按照測(cè)試用例一條一條執(zhí)行下去。該方法使得自動(dòng)化測(cè)試具有了更高的靈活性,不再受到測(cè)試用例的約束。在測(cè)試執(zhí)行得到一個(gè)結(jié)果后,需要對(duì)測(cè)試結(jié)果和期望結(jié)果進(jìn)行比較,其中一種就是得到的測(cè)試結(jié)果完全等價(jià)于期望的結(jié)果,這里使用equals()方法來(lái)進(jìn)行兩個(gè)結(jié)果之間的比較。另一種可能的結(jié)果就是測(cè)試結(jié)果中包含了期望結(jié)果的內(nèi)容,在這種情況下,只要測(cè)試所得出的結(jié)果集中包含了期望結(jié)果中的所有的信息,那么測(cè)試也能通過(guò)。這種情況可以使用contains()方法來(lái)實(shí)現(xiàn)。還有一種測(cè)試結(jié)果就是對(duì)數(shù)字的比較,有些情況下,系統(tǒng)的邏輯要求是如果某個(gè)參數(shù)的值不大于某個(gè)指定值,就可以認(rèn)為測(cè)試是通過(guò)的。

      3 結(jié)束語(yǔ)

      本文介紹了軟件測(cè)試在軟件發(fā)展過(guò)程中所占據(jù)的不可替代的位置,并且隨著軟件復(fù)雜度的增加,軟件測(cè)試的重要性也越發(fā)突出。隨著功能的不斷增加,手工測(cè)試不再是高效的測(cè)試方法。自動(dòng)化測(cè)試的效率很高,減少測(cè)試人員的測(cè)試時(shí)間,能讓測(cè)試人員更加專(zhuān)注于測(cè)試用例的設(shè)計(jì),使得系統(tǒng)的邏輯更加細(xì)致和完善。本文介紹了基于Spring的API自動(dòng)化測(cè)試系統(tǒng)中所用到的技術(shù),主要包括Spring框架、DAO模式和TestNG框架。介紹了基于Spring的API自動(dòng)化測(cè)試系統(tǒng)的設(shè)計(jì);采用了分層的設(shè)計(jì)思想,將業(yè)務(wù)邏輯層和數(shù)據(jù)層分離;運(yùn)用Spring的IOC容器實(shí)現(xiàn)依賴(lài)注入,讓IOC容器來(lái)管理對(duì)象之間的依賴(lài)關(guān)系,降低耦合度;采用TestNG測(cè)試框架將測(cè)試用例和測(cè)試代碼分離,由系統(tǒng)自己去讀取測(cè)試用例,將執(zhí)行的結(jié)果和測(cè)試用例中的期望結(jié)果進(jìn)行比較來(lái)得到最終的測(cè)試結(jié)果。本系統(tǒng)目前的主要作用是用于對(duì)API的自動(dòng)化測(cè)試,只要對(duì)該系統(tǒng)稍加改進(jìn),就能擴(kuò)展到對(duì)UI的自動(dòng)化測(cè)試,具有廣闊的應(yīng)用前景。

      [1] 戴莉萍,杜 瓊.一種軟件測(cè)試V模型的改進(jìn)及其應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2004,13(7):29-33.

      [2] 柯 玲,徐 京,李 穎.IOC模式及其在設(shè)備監(jiān)控軟件中的應(yīng)用[J].航天器工程,2009,(18):117-122.

      [3] 林 寧,孟慶余.軟件測(cè)試實(shí)用指南[M].北京:清華大學(xué)出版社,2004.

      [4] 劉曉丹,武君勝.基于數(shù)據(jù)驅(qū)動(dòng)的自動(dòng)化測(cè)試平臺(tái)設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2008,8(3):779-782.

      [5] 王 萍.軟件測(cè)試的重要性[J].軟件導(dǎo)刊,2009,4(8):20-21.

      [6] 王艷秋,燕孝飛.軟件自動(dòng)化測(cè)試初探[J].計(jì)算機(jī)與網(wǎng)絡(luò),2007,2(5):168-171.

      [7] Randell B.System structure for software fault tolerance[J].IEEE Trans.Software Eng,1975,14(6):220-231.

      [8] Bill Councill.Third-Party Testing and Stirrings of The New Software Engineering[J].IEEE Software,1999,16(6):76-79.

      [9] Edward Kit.軟件測(cè)試過(guò)程改進(jìn)[M].北京:機(jī)械工業(yè)出版社,2003.

      [10]GUO PJ,ERNST MD,PERKINGS JH,et al.The Daikon System for dynamic detection of likcly invariants[Z].2006.

      猜你喜歡
      測(cè)試人員測(cè)試用例軟件測(cè)試
      移動(dòng)應(yīng)用眾包測(cè)試人員信譽(yù)度復(fù)合計(jì)算模型研究
      基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
      基于OBE的軟件測(cè)試課程教學(xué)改革探索
      EXCEL和VBA實(shí)現(xiàn)軟件測(cè)試記錄管理
      電子制作(2018年16期)2018-09-26 03:27:18
      基于混合遺傳算法的回歸測(cè)試用例集最小化研究
      高校分析測(cè)試中心測(cè)試隊(duì)伍建設(shè)方案初探
      山東化工(2018年20期)2018-04-02 16:30:53
      關(guān)于軟件測(cè)試技術(shù)應(yīng)用與發(fā)展趨勢(shì)研究
      淺析軟件測(cè)試中的心理學(xué)應(yīng)用
      軟件測(cè)試工程化模型及應(yīng)用研究
      基于依賴(lài)結(jié)構(gòu)的測(cè)試用例優(yōu)先級(jí)技術(shù)
      西华县| 长葛市| 栖霞市| 嘉禾县| 定州市| 西青区| 沈阳市| 连江县| 宁陵县| 贵阳市| 龙州县| 迁西县| 浮山县| 铁力市| 白城市| 金山区| 东海县| 普陀区| 吴江市| 额济纳旗| 尚义县| 日喀则市| 沙洋县| 巴东县| 韶关市| 仁寿县| 鄢陵县| 定西市| 芜湖县| 滦南县| 富阳市| 河津市| 盐边县| 新绛县| 当阳市| 绥化市| 绥江县| 鄂托克旗| 小金县| 鄂温| 肇州县|