国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于網(wǎng)頁分類的Web應(yīng)用軟件測試研究

2013-03-17 02:47:28劉小園
關(guān)鍵詞:白盒測試用例軟件測試

劉小園

(羅定職業(yè)技術(shù)學(xué)院,羅定 527200)

基于網(wǎng)頁分類的Web應(yīng)用軟件測試研究

劉小園

(羅定職業(yè)技術(shù)學(xué)院,羅定 527200)

隨著Web應(yīng)用軟件的廣泛應(yīng)用,為了保證Web應(yīng)用軟件的質(zhì)量和可靠性,人們越來越重視Web應(yīng)用軟件測試.但目前大多數(shù)基于模型的測試技術(shù)都很難滿足人們對Web應(yīng)用軟件的測試要求,本文在模型測試技術(shù)的基礎(chǔ)上,提出基于網(wǎng)頁分類的Web應(yīng)用軟件測試方法,并通過一個網(wǎng)上購物系統(tǒng)的實例,驗證了該方法在功能覆蓋率和錯誤檢測率兩方面都有較好的表現(xiàn).

Web應(yīng)用軟件;軟件測試;網(wǎng)頁分類;測試用例

隨著 Web技術(shù)的廣泛應(yīng)用,科學(xué)技術(shù)類 Web系統(tǒng)、電子商務(wù)和電子政務(wù)等Web技術(shù)的應(yīng)用已經(jīng)廣泛影響著人們的生活.可是由于Web應(yīng)用軟件的規(guī)模越來越大、復(fù)雜度越來越難、開發(fā)周期越來越長等特點,使得大量的Web應(yīng)用軟件在部署到實際運行環(huán)境中都被發(fā)現(xiàn)存在不同程度的錯誤,因此人們開始重視起 Web應(yīng)用軟件的質(zhì)量問題.為了保證Web應(yīng)用軟件的質(zhì)量和可靠性,對其進(jìn)行測試就是Web應(yīng)用軟件開發(fā)過程中一個必不可少的環(huán)節(jié).但是由于Web應(yīng)用軟件與傳統(tǒng)軟件相比較有著異構(gòu)、并發(fā)、跨組織和跨平臺等顯著特征,使得傳統(tǒng)的軟件測試方法基本無法滿足對Web應(yīng)用軟件的充分測試,這也就給軟件測試領(lǐng)域提出了新的挑戰(zhàn)[1].

1 相關(guān)研究

1.1 Web系統(tǒng)應(yīng)用簡介

Web應(yīng)用軟件是一系列Web網(wǎng)頁和部件組成的系統(tǒng),而與用戶打交道的實際上是客戶端瀏覽器.用戶使用系統(tǒng)時通過客戶機(jī)瀏覽器發(fā)送請求后,剩下的邏輯處理和運算交給前端Web服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫系統(tǒng)來完成,最后的處理結(jié)果再通過客戶機(jī)瀏覽器返回給用戶,在這個過程它們相互間還會有數(shù)據(jù)交流和傳遞,圖1是Web系統(tǒng)體系結(jié)構(gòu)簡圖.用戶在客戶機(jī)上使用瀏覽器向Web服務(wù)器發(fā)送訪問申請,Web服務(wù)器收到用戶發(fā)送的申請后向應(yīng)用服務(wù)器發(fā)送需求申請,Web服務(wù)器收到應(yīng)用服務(wù)器返回的需求申請運行結(jié)果后,以輸出網(wǎng)頁的形式轉(zhuǎn)發(fā)到客戶機(jī)上通過瀏覽器展示給用戶.在實際應(yīng)用系統(tǒng)中,用戶提出的訪問申請具有廣泛的多樣性和復(fù)雜性,所以說Web系統(tǒng)的應(yīng)用是復(fù)雜的和多變的.如果只是根據(jù)某一種模型來生成測試用例,勢必造成軟件測試的局限性,無法實現(xiàn)滿足客戶需求的測試要求.

圖1 Web體系結(jié)構(gòu)圖

1.2 相關(guān)研究工作

目前,國內(nèi)外關(guān)于Web應(yīng)用軟件測試方面的研究工作已經(jīng)做的比較多了,每個研究者的側(cè)重點也各有不同.例如基于狀態(tài)圖的導(dǎo)航模型提出用狀態(tài)來表示W(wǎng)eb應(yīng)用軟件中網(wǎng)頁和網(wǎng)頁中的各種元素,規(guī)定用狀態(tài)的遷移來表示網(wǎng)頁的超級鏈接或各頁面間的跳轉(zhuǎn),該方法雖然理解起來很直觀,但是最終形成的狀態(tài)圖卻錯綜復(fù)雜,表達(dá)起來很麻煩[2].又有基于用戶會話的測試方法提出利用Web應(yīng)用軟件的域數(shù)據(jù)進(jìn)行軟件測試,但該方法沒有考慮到Web應(yīng)用軟件具有多用戶交互的特性,顯然測試也不夠全面.也有人提出結(jié)構(gòu)測試方法,該方法注重把與結(jié)構(gòu)相關(guān)的所有實體如超級鏈接、表單和窗體等網(wǎng)頁間的跳轉(zhuǎn)關(guān)系都表示出來,強(qiáng)調(diào)鏈接和動態(tài)交互等帶導(dǎo)航特性的內(nèi)容,由于明顯忽略了Web應(yīng)用軟件的網(wǎng)頁中包含著腳本、組件、接口對象以及服務(wù)端網(wǎng)頁間的重定向關(guān)系,這樣的測試顯然也是不夠全面的[3].

綜上所述,以往提出的Web應(yīng)用軟件測試方法大部分是采用“白盒測試”技術(shù),這些測試方法都需要人工手動生成測試用例,這種測試用例的生成不光難度大,而且用例生成不充分,都存在一定的局限性.本文在吸收以往Web應(yīng)用軟件的測試方法優(yōu)點的基礎(chǔ)上,提出了一種對Web應(yīng)用軟件網(wǎng)頁進(jìn)行分類,然后針對不同類別的網(wǎng)頁采用不同的軟件測試方法.從而一方面提高了測試效率,另一方面也使得測試更加全面,并通過一個常見的網(wǎng)上購物系統(tǒng)為實例進(jìn)行了驗證.

2 基于網(wǎng)頁分類的Web應(yīng)用軟件測試

Web應(yīng)用軟件是由大量的Web網(wǎng)頁和網(wǎng)頁間的連接組件組成的.Web網(wǎng)頁是能在客戶機(jī)瀏覽器上顯示的信息體,有的是用HTML編寫的靜態(tài)的,有的是用 ASP(Active Server Pages)或JSP(Java Server Pages)等動態(tài)技術(shù)生成的;連接組件則通過超級鏈接、表單和窗體等與Web頁面相關(guān)聯(lián),用戶通過Web網(wǎng)頁實現(xiàn)對系統(tǒng)的訪問及使用.因此我們可以把網(wǎng)頁分成三種不同的類別:

第一種叫做靜態(tài)網(wǎng)頁:是用HTML創(chuàng)建的網(wǎng)頁.每個靜態(tài)網(wǎng)頁都有固定的URL,且都存儲在Web服務(wù)器上,都是一個獨立的HTML文檔.

第二種叫做動態(tài)網(wǎng)頁:是以HTML為基礎(chǔ),結(jié)合ASP或JSP來創(chuàng)建的網(wǎng)頁.動態(tài)網(wǎng)頁并不獨立存在于服務(wù)器上,只是在用戶發(fā)送請求后,才在服務(wù)器上運行動態(tài)生成一個HTML網(wǎng)頁返回給用戶.網(wǎng)頁的內(nèi)容會因為系統(tǒng)狀態(tài)和用戶的實時操作的不同而發(fā)生變化.

第三種叫做數(shù)據(jù)庫網(wǎng)頁:它本身也是動態(tài)網(wǎng)頁的一種,但由于與數(shù)據(jù)庫關(guān)聯(lián),網(wǎng)頁的內(nèi)容是讀取數(shù)據(jù)庫中的數(shù)據(jù)元素來插入到網(wǎng)頁中的,會因為數(shù)據(jù)庫內(nèi)容發(fā)生變化而變化.

基于網(wǎng)頁分類的測試技術(shù)有:

(1)黑盒測試(HHCS)

黑盒測試也稱為功能測試,是一種窮舉測試,需要把所有可能作為測試用例,適合用來測試那些功能確定的內(nèi)容.由于靜態(tài)網(wǎng)頁的內(nèi)容和功能確定、URL固定等特點使其非常適合進(jìn)行黑盒測試.瀏覽靜態(tài)網(wǎng)頁的每個頁面,檢查頁面中的文字內(nèi)容是否都能正確顯示.檢查網(wǎng)頁中的每個超級鏈接,查看是否能夠跳轉(zhuǎn)到正確的頁面.檢查網(wǎng)頁中的每張圖片是不是都能及時正確顯示.檢查網(wǎng)頁中的所有表單對象是不是拒絕錯誤數(shù)據(jù)和接受正確數(shù)據(jù).特別需要強(qiáng)調(diào)的是,由于Web應(yīng)用軟件的用戶平臺的不確定性,所以需要針對Web應(yīng)用軟件的網(wǎng)頁界面和軟件功能使用多種平臺和瀏覽器進(jìn)行搭配測試,以檢測出軟件的性能錯誤.

(2)灰盒測試(FHCS)

灰盒測試是以黑盒測試為主,白盒測試為輔,動態(tài)網(wǎng)頁動態(tài)生成的特點使其非常適合進(jìn)行灰盒測試.其工作原理是通過簡單的查看動態(tài)網(wǎng)頁的內(nèi)部代碼(不是像白盒測試那樣完整地查看),了解動態(tài)網(wǎng)頁的運行狀況,有助于把測試用例設(shè)計的更加合理.動態(tài)網(wǎng)頁相比于程序更容易被查看,利用這點在黑盒測試基礎(chǔ)上對動態(tài)網(wǎng)頁進(jìn)行檢查以實現(xiàn)網(wǎng)頁的灰盒測試.

(3)白盒測試(BHCS)

白盒測試深入到網(wǎng)頁代碼一級進(jìn)行測試,優(yōu)點是發(fā)現(xiàn)問題最早,效果最好;缺點是需要開發(fā)人員在Web應(yīng)用軟件編碼階段,根據(jù)自己對代碼的理解進(jìn)行軟件測試,測試的工作量大,只適合檢測少量網(wǎng)頁.在Web應(yīng)用軟件中,數(shù)據(jù)庫起著重要的作用,為整個軟件系統(tǒng)數(shù)據(jù)查詢和存儲提供空間.同時,由于數(shù)據(jù)庫網(wǎng)頁可能發(fā)生的錯誤主要有兩種:一種是由于用戶提交的表單信息不正確而造成的數(shù)據(jù)不一致性錯誤;另一種是由于程序設(shè)計本身引起的.第一種錯誤主要靠黑盒測試時的表單測試來檢查;第二種錯誤則需要對數(shù)據(jù)庫驅(qū)動網(wǎng)頁進(jìn)行基于網(wǎng)頁分類的白盒測試.

Web應(yīng)用軟件的測試用例往往是靠手工生成,造成測試成本很高,測試效率很低.為了提高測試的效率和測試覆蓋率,基于網(wǎng)頁分類的白盒測試的測試用例可以借助如下算法來自動生成.

①選擇數(shù)據(jù)庫網(wǎng)頁 H(h1,h2,…,hn)的 URL地址 Mi(1≤i≤n)作為測試用例;

②從網(wǎng)頁hi中選擇一個操作Ji;

③將Ji跳轉(zhuǎn)到的新網(wǎng)頁地址登記為Ni;

④若Ni沒有包含在H中,則將Ni作為新的測試用例添加到H中,若Ni已經(jīng)包含在H中,直接進(jìn)入下一步;

⑤將Ji登記為“已登記”,重復(fù)第二步到H的所有網(wǎng)頁的所有操作都已登記;

⑥對對最終的H進(jìn)行測試.

3 實驗驗證

我們通過實驗驗證了基于網(wǎng)頁分類的Web應(yīng)用軟件測試方法對Web應(yīng)用軟件的測試的有效性.電子商務(wù)作為時下最為流行的一種Web應(yīng)用系統(tǒng),我們選定一個開源網(wǎng)上購物系統(tǒng)進(jìn)行實驗測試,網(wǎng)站的功能主要面向顧客.顧客可以注冊會員、站內(nèi)搜索、瀏覽商品陳列頁面、管理購物車、在線訂購等共70個主要功能.由于系統(tǒng)原來的錯誤不多,為了達(dá)到測試效果,請了幾個有豐富網(wǎng)上購物系統(tǒng)開發(fā)經(jīng)驗的程序員根據(jù)自己的經(jīng)驗分別插入了三種不同類型的錯誤共45個.首先是與變量和控制流有關(guān)的腳本錯誤15個;其次是與表單對象有關(guān)的表單錯誤15個;最后是與數(shù)據(jù)庫操作有關(guān)的數(shù)據(jù)庫查詢錯誤15個.

我們設(shè)計了一個實驗框架,如圖2所示,包括4個步驟:

(1)將Web應(yīng)用軟件的網(wǎng)頁進(jìn)行分類.

(2)對不同類別的網(wǎng)頁分別生成測試用例.

(3)單個激活錯誤,進(jìn)行測試,并記錄測試結(jié)果.

(4)根據(jù)測試記錄,主要從功能覆蓋率和錯誤檢測率兩方面對測試方法進(jìn)行有效性評估.

為了評估基于網(wǎng)頁分類的Web應(yīng)用軟件測試方法的錯誤檢測有效性,每次只激活一個錯誤,但執(zhí)行所有測試用例.

圖2 實驗框架圖

表1顯示了基于網(wǎng)頁分類的Web應(yīng)用軟件測試方法在功能覆蓋率和故障檢測方面都有很不錯的表現(xiàn),比以往其他的測試方法不管在功能覆蓋率上還是在錯誤檢測率上都要高.

表1 功能覆蓋率和錯誤檢測率(%)

4 結(jié)論

本文提出了Web應(yīng)用軟件測試的一個改進(jìn)型的新方法,通過對系統(tǒng)網(wǎng)頁進(jìn)行分類,并針對不同類型網(wǎng)頁采用不同的測試方法.基于網(wǎng)頁分類的測試方法可以有效的改善Web應(yīng)用軟件測試技術(shù)中測試用例代價高和生成不充分的問題.并通過實驗驗證了該方法在功能覆蓋率和錯誤檢測率等方面都有更好的表現(xiàn).除了上述介紹的測試方法,未來將重點研究Web應(yīng)用軟件測試框架,Web應(yīng)用軟件測試的對象模型與應(yīng)用,Web應(yīng)用軟件測試中測試用例及復(fù)用等方面[4].

[1]路曉麗,董云衛(wèi).Web應(yīng)用軟件的結(jié)構(gòu)測試研究[J].計算機(jī)科學(xué),2010,37(12):110-113.

[2]Kong J,Zou C,Zhou H.Improving Software Security via Runti-me Instruction-level Taint Checkingp[C].Proc.of the 1st Workshop on Architectural and System Support for Improving Software Dependability.Califorria:ACM Press,2006:18-24.

[3]Alfond W,Orso A,Manolios P.Using Positive Tainting and Syntax-aware Evaluation to Counter SQL Injection Attacks[C].Proc.of the 14th ACM SIGSOFT International Symposiumon Foundations of Software Engineering.New York:ACMPress,2006:175-185.

[4]尚冬娟,郝克剛,葛瑋,等.軟件測試中的測試用例及復(fù)用研究[J].計算機(jī)技術(shù)與發(fā)展,2006,16(1):69-72.

Web Application Software Testing Research Based on Web-page Classification

LIU Xiao-yuan
(Luoding Polytechnic,Luoding 527200,China)

With the wide application of Web application software,to ensure the Web application software quality and reliability,people pay more and more attention to Web application software testing.But most of the current models based on testing technology are difficult to satisfy the peoples reguirement on the Web application software testing.Based on the model test technology,the Web application software testing method is proposed through The Web-page classification and an online shopping system example is given.The validation of the method in functional coverage and error detection rate shows better performance.

application of Web software;software testing;Web-page classification;test use case

TP393.1

A

1671-119X(2013)02-0037-03

2012-11-26

劉小園(1978-),男,碩士,講師,研究方向:網(wǎng)絡(luò)與數(shù)據(jù)庫系統(tǒng)、計算機(jī)軟件與理論、軟件工程.

猜你喜歡
白盒測試用例軟件測試
面向未來網(wǎng)絡(luò)的白盒交換機(jī)體系綜述
DWB-AES:基于AES 的動態(tài)白盒實現(xiàn)方法
基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
基于OBE的軟件測試課程教學(xué)改革探索
網(wǎng)絡(luò)“黑”“白”之爭
通信世界(2018年29期)2018-11-21 06:34:44
EXCEL和VBA實現(xiàn)軟件測試記錄管理
電子制作(2018年16期)2018-09-26 03:27:18
基于混合遺傳算法的回歸測試用例集最小化研究
關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
電子測試(2017年15期)2017-12-18 07:19:20
軟件測試工程化模型及應(yīng)用研究
基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
抚松县| 板桥市| 潮州市| 科技| 怀仁县| 武夷山市| 鄂伦春自治旗| 桃江县| 石河子市| 丰顺县| 双城市| 云南省| 武义县| 宁陵县| 遂宁市| 合水县| 凤阳县| 吉安市| 明光市| 磴口县| 太仆寺旗| 锡林浩特市| 临沭县| 西乌珠穆沁旗| 正定县| 五家渠市| 江北区| 兴化市| 佛坪县| 文登市| 静海县| 虞城县| 永胜县| 济源市| 德格县| 彝良县| 濮阳市| 易门县| 军事| 澄迈县| 福清市|