已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀
[碩士論文精品]自動化平行測試在金融系統(tǒng)重構(gòu)中的應(yīng)用.pdf 免費下載
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
浙江大學(xué)碩士學(xué)位論文摘要摘要隨著個人計算機和互聯(lián)網(wǎng)技術(shù)的不斷進步,計算機應(yīng)用系統(tǒng)越來越滲透到我們?nèi)粘I畹拿總€方面,網(wǎng)上購物系統(tǒng)、網(wǎng)上銀行系統(tǒng)和網(wǎng)上金融交易系統(tǒng)就是最典型的例子。但是隨著計算機技術(shù)的更新?lián)Q代;系統(tǒng)擁有的用戶數(shù)量和數(shù)掘量的激增系統(tǒng)涉及的業(yè)務(wù)的增加等因素使得現(xiàn)有系統(tǒng)不得不面臨重構(gòu)。大型金融系統(tǒng)重構(gòu)項目中,最大的難點也是工作量最大的環(huán)節(jié)就是重構(gòu)以后的系統(tǒng)的測試環(huán)節(jié)。一方面金融交易系統(tǒng)因為直接管理大量貨幣,所以要求有很高的正確性、穩(wěn)定性、高效性等,故必須通過大量的測試來保證重構(gòu)以后的系統(tǒng)的質(zhì)量。另外一方面因為歷史的原因,需要重構(gòu)的系統(tǒng)往往存在需求文檔缺失,具體需求難以獲得等情況。如果從現(xiàn)有代碼逆向分析出需求,無論在時間還是在資源上的代價都很大,還很容易造成需求的遺漏和錯誤。本文結(jié)合作者參與的一個遺留的網(wǎng)上金融交易系統(tǒng)的重構(gòu)項目中測試環(huán)節(jié)遇到的需求缺失,時間和預(yù)算不足,難以從現(xiàn)有代碼獲得需求等困難。提出,設(shè)計并實現(xiàn)一個以平行測試為主要測試方法的自動化測試系統(tǒng)。該系統(tǒng)通過使用大量測試數(shù)據(jù)來自動實現(xiàn)對重構(gòu)以后系統(tǒng)的測試。有效地發(fā)現(xiàn)了系統(tǒng)重構(gòu)中的BUG,高效地完成了對重構(gòu)以后系統(tǒng)的測試工作。提出了一種在需求缺失,或者獲得需求代價過大的情況下用自動化測試來快速、低開銷、有效地完成對重構(gòu)項目的測試工作的新方法。關(guān)鍵詞自動化測試,金融軟件系統(tǒng),系統(tǒng)重構(gòu),平行測試浙江大學(xué)碩上學(xué)位論文ABSTRACTABSTRACTDUETOTHEGROWINGNUMBEROFTHEPERSONALCOMPUTERSANDTHEPROGRESSOFINTERACTTECHNOLOGY,THECOMPUTERAPPLICATIONSALEINCREASINGLYPENETRATEDINTOEVERYPARTOFOURDAILYLIVESSOFTWARESYSTEMSSUCHASONLINEBANKINGSYSTEMANDONLINEFINANCIALTRANSACTIONSYSTEMARETHEMOSTTYPICALEXAMPLESTHECOMPUTERTECHNOLOGYISUPGRADINGEVERYDAY;ANDTHENUMBEROFUSERSANDDATAINTHESYSTEMAREGROWINGTOO;ALSO,THEINCREASEREQUIREMENTINTHEBUSINESSMAKESTHESYSTEMTOFACETHERECONSTRUCTIONTHEBIGGESTDIFFICULTYINTHERECONSTRUCTIONPROJECTOFALARGESCALEFINANCIALUSEDSYSTEMISINTHETESTINGSTEPASTHEFINANCIALUSEDSYSTEMDIRECTLYMANAGESALARGEAMOUNTSOFCURRENCY,SOSUCHSYSTEMSDEMANDEDAHI曲LEVELOFACCURACY,DOWNWARDCOMPATIBILITY,STABILITYANDEFFICIENCYANDSOONHOWTOENSURESYSTEMQUALITYOFCOURSE,THEANSWERISENOUGHTESTINGHOWEVER,BECAUSEOFSOMEHISTORICALREASONSTHEREQUIREMENTDOCUMENTSAREUSUALLYINCOMPLETEANALYSISOFEXISTINGCODETOGETTHEREQUIREMENTNEEDSPLENTYOFTIMEANDHUMANRESOURCEBUT,THISMETHODISEASILYTOMAKEMISTAKESINTHISPAPER,ARECONSTRUCTIONPROJECTOFAFINANCIALUSEDSYSTEMWHICHISINUSESCIENCE90SLASTCENTREWASTAKENASTHEEXAMPLEINTHISRECONSTRUCTIONPROJECT,THEREWEREMANYDIFFICULTIESINTESTPERIODSUCH觴THELACKOFREQUIREMENTDOCUMENTSANDATESTAUTOMATIONSYSTEMWASDESIGNEDANDDEVELOPEDUSINGPARALLELTESTINGTOSOLVETHEDIFFICULTIESOFTHETESTINGINTHERECONSTRUCTIONPROJECTITGIVESANEWSOLUTIONOFTESTINGINTHERECONSTRUCTIONPROJECTWHENTHEREISNEITHERNOTENOUGHORCLEARREQUIREMENTNORENOUGHRESOURCEORTIMETOANALYZETHEREQUIREMENTTHESOLUTIONISUSINGAUTOMATEDPARALLELTESTTOCOVERTHEREQUIREMENT,ANDITISALOWCOSTANDHIGHACTIVESOLUTIONKEYWORDSTESTAUTOMATION,F(xiàn)INANCIALUSEDSYSTEM,RECONSTRUCTIONPROJECT,PARALLELTEST浙江大學(xué)碩士學(xué)位論文圖目錄圖目錄圖21交易流程圖5圖22重構(gòu)前后系統(tǒng)框架比較圖7圖31平行測試原理圖,13圖41平行測試工作流程圖17圖42回歸測試工作流程圖19圖43自動化測試系統(tǒng)模塊圖一20圖51測試數(shù)據(jù)查詢界面24圖52測試數(shù)據(jù)管理界面25圖53測試方案查詢界面27圖54測試方案管理界面“28圖55測試結(jié)果提取流程圖29圖56測試結(jié)果查詢流程圖一3L圖57測試結(jié)果比較流程圖33圖58VO類的類關(guān)系圖34圖59VOFORMATTER類的類關(guān)系圖34圖510測試結(jié)果列表界面35圖511測試結(jié)果詳細(xì)信息界面35圖71BUG定位系統(tǒng)工作流程圖45圖72預(yù)處理模塊工作流程圖47浙江人學(xué)碩十學(xué)位論文表目錄表目錄31回歸測試執(zhí)行表J1451TESTDATA表表定義2352TESTDATABASELINE表表定義2353TESTBMCH表表定義2654TESTRESULT表表定義3071輸出層單元信息真值表4972BUG分析系統(tǒng)測試結(jié)果51V表表表表表表表淘寶網(wǎng)購物HTTP/WWW521TAOBAOCOM/浙江大學(xué)研究生學(xué)位論文獨創(chuàng)性聲明本人聲明所呈交的學(xué)位論文是本人在導(dǎo)師指導(dǎo)下進行的研究工作及取得的研究成果。除了文中特別加以標(biāo)注和致謝的地方外,論文中不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得迸姿態(tài)鱟或其他教育機構(gòu)的學(xué)位或證書而使用過的材料。與我一同工作的同志對本研究所做的任何貢獻(xiàn)均已在論文中作了明確的說明并表示謝意。學(xué)位論文作者簽名簽字日期年月同學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解浙婆盤鱟有權(quán)保留并向國家有關(guān)部門或機構(gòu)送交本論文的復(fù)印件和磁盤,允許論文被查閱和借閱。本人授權(quán)浙望盤堂可以將學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進行檢索和傳播,可以采用影印、縮印或掃描等復(fù)制手段保存、匯編學(xué)位論文。保密的學(xué)位論文在解密后適用本授權(quán)書學(xué)位論文作者簽名導(dǎo)師簽名簽字同期年月R簽字日期年月浙江大學(xué)碩二L學(xué)位論文摘要致謝在研究生兩年半的學(xué)習(xí)生涯即將完成之際,我要首先由衷地感謝我的導(dǎo)師楊小虎教授。在我攻讀碩士學(xué)位期間,楊老師淵博的知識、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、一絲不茍的工作作風(fēng)都給我留下了極深的印象,也給我樹立了良好的榜樣。不論是在平日的研究生學(xué)習(xí)和工作期間還是在論文的寫作上,我自始至終都受到楊老師的悉心指導(dǎo)和鼓勵,使我能始終保持一個飽滿向上的態(tài)度來對待今后的工作和生活,讓我受益終身。其次,我要特別感謝和我一起從事實驗室項目同事們王特,曹煒,胡金俊,劉源根和戚力強,是你們陪伴我渡過了這意義非凡的兩年半。在此期間,大家互相學(xué)習(xí)互相幫助,組成一個積極向上,團結(jié)而且和諧的團隊。此外還要感謝項目組在美國BOSTON總部的同事們SINGH,SANGHARSHBAO,XIAOYUNPRATAP,RANA和ALANCLA,RAJESH,在兩個團隊的通力合作下,共同解決了很多項目中遇到的難題,出色完成了公司交給的任務(wù)。另外,我還要特別感謝王帆和戚力強同學(xué),感謝他們在我論文的撰寫過程中,對我寫作思路的梳理和靈感的啟發(fā),以及給予我技術(shù)上的幫助。還要感謝計算機科學(xué)與技術(shù)學(xué)院2007級碩士班的其他同學(xué)在學(xué)習(xí)和生活上給予我的關(guān)心和幫助,并衷心地希望我們的班級里的每個成員都能施展抱負(fù),出人頭地。最后衷心感謝我的父母多年來在學(xué)業(yè)上、生活上和精神上給予我的極大的關(guān)心、照顧、理解和支持,讓我永遠(yuǎn)保持進步;以及女友蔣梅玲的監(jiān)督和幫助,讓我時刻保持前進,不曾松懈。王雷2010年1月于求是園浙江火學(xué)碩士學(xué)位論文第I章緒論第1章緒論11引言隨著個人計算機的廣泛普及和互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,各種各樣的計算機應(yīng)用系統(tǒng)逐漸滲透到我們的生活中。超市購物系統(tǒng)、交通售票系統(tǒng)、財務(wù)管理系績等應(yīng)用軟件系統(tǒng)給生產(chǎn)力帶來了質(zhì)的飛躍;而之后出現(xiàn)的網(wǎng)上購物系統(tǒng)、網(wǎng)上銀行系統(tǒng)、各種網(wǎng)上金融交易系統(tǒng)等則進一步給我們的日常生活帶來了翻天覆地的變化。與此同時,隨著時間的推移,計算機技術(shù)不斷地更新?lián)Q代;系統(tǒng)所擁有敲用戶數(shù)量不斷增長;以及系統(tǒng)所涵蓋的業(yè)務(wù)不斷地擴展。直至軟件系統(tǒng)原有的架構(gòu)對新的需求漸漸地失去支持能力。所以到了這一階段,系統(tǒng)便不得不面臨重松以適應(yīng)進一步的發(fā)展。重構(gòu)是軟件工程中一個極為重要的課題。重構(gòu)能使開發(fā)人員修訂一個現(xiàn)有軟件系統(tǒng)的結(jié)構(gòu)或者設(shè)計,從而使它變得更加容易增加或者修改功能【。當(dāng)對金融交易系統(tǒng)這種規(guī)模龐大;系統(tǒng)正確性,安全性要求高;邏輯結(jié)構(gòu)又異常復(fù)雜的系統(tǒng)進行重構(gòu)時,如何確保重構(gòu)以后的系統(tǒng)的正確性和可靠性便成為一大難題。而軟件測試是軟件質(zhì)量保證的關(guān)鍵所在,在軟件生命周期中占有著J常重要的位置。不管開發(fā)人員采用怎樣的開發(fā)技術(shù)、開發(fā)流程來保證軟件質(zhì)量,都不能代替軟件測試的作用。因此,在金融系統(tǒng)的重構(gòu)中,測試環(huán)節(jié)扮演著舉足輕重的角色。12軟件測試的分類軟件測試從測試的執(zhí)行方式上一般可以分為兩種手工測試和自動化測試。傳統(tǒng)的手工測試是一個勞動密集型工作,但是其優(yōu)點是可以充分利用測試人員的個人的能力。測試員可以根據(jù)被測試的代碼設(shè)計一些專門的測試用例,也可以針對邊界數(shù)據(jù)增加一些測試用例,有經(jīng)驗的測試人員還能發(fā)現(xiàn)很多自動化測試軟件所不能預(yù)測的問題。但是手工測試的缺點十分明顯,首先手工測試非常容易浙江大學(xué)碩士學(xué)位論文第1章緒論出錯;此外手工測試的效果很大程度上依賴于測試人員的經(jīng)驗;最后手工測試根本無法支持海量的測試案例。軟件自動化測試的優(yōu)點是可以高效地完成一些重復(fù)性的測試;同時還能降低人為因素對測試過程的干擾;充分的測試還能有效降低隨機性和盲目性;最后還能降低多個測試人員合作時的重復(fù)測試工作,減少遺漏等。軟件自動化測試就是通過執(zhí)行某種程序設(shè)計語言編制的自動測試程序,控制被測軟件的執(zhí)行,模擬手動測試的步驟,完成全自動或者半自動測試【2】。其目的在于提高軟件系統(tǒng)測試效率,縮短測試周期,增強對被測試軟件的測試覆蓋率等,從而達(dá)到保證軟件得到充分測試,保證軟件質(zhì)量的目的。對比傳統(tǒng)的手IN試方法,自動化測試有以下的優(yōu)點【3】1最小化回歸測試的成本。2提高測試效率,并得到更好的測試效果。3能完成一些手工測試不可能或者難以完成的測試任務(wù)。4高度的一致性和可重復(fù)性的測試任務(wù)。5最大化地提高人力資源的利用率。因此,軟件測試自動化工具和技術(shù)得到越來越廣泛的運用。13自動化測試的歷史和現(xiàn)狀從上世紀(jì)90年代起,針對軟件自動化測試的研究就已經(jīng)開始,相應(yīng)的工具層出不窮。總體來說,按照產(chǎn)生的時間段及使用的技術(shù)特點,自動化測試可以分為以下幾個階段【4】第一代的自動化測試技術(shù)始于上世紀(jì)的90年代初,通過硬件的方式錄制鍵盤的輸入并播放,但是不具有檢查點CHECKPOINT的功能,而且測試腳本也很難以維護。第二代的自動化測試技術(shù)興起于上世紀(jì)的90年代末,這時已經(jīng)由硬件錄N播放轉(zhuǎn)變成使用軟件錄制播放CAPTUREPLAYBACK的方式生成測試腳本SCRIPT,并且增加了檢查點的功能,用來對軟件做驗證。測試的范圍較上一2浙江大學(xué)碩士學(xué)位論文第L章緒論階段增大了許多。但是存在最大的問題是靈活度不夠高。第三代的自動化測試技術(shù)誕生于2001年,我們稱之為測試框架TESTFRAMEWORK,測試框架的主要思想即是把測試腳本給抽象化,從而提高自動化測試的適用度和靈活性。具有代表性的工具有RATIONAL,ROBOT和MERCURYLOADRUNNER等。近年來隨著軟件開源模式的興起,自動化測試技術(shù)進入第四代。其最大的特點是使用者可以根據(jù)自己的實際情況隨意定制、選取、擴展所需的自動化測試模塊,并可以和其它開源框架結(jié)合形成一個完整的自動化測試平臺。14論文的課題背景和研究內(nèi)容本文針對大型網(wǎng)上金融交易系統(tǒng)的重構(gòu)項目中遇到的諸如此金融系統(tǒng)商業(yè)邏輯復(fù)雜,邏輯分支繁多;系統(tǒng)測試需要用大量的數(shù)據(jù)來覆蓋邊界條件;系統(tǒng)重構(gòu)項目代碼開發(fā)量大,工作周期緊張;還有系統(tǒng)的需求文檔缺失嚴(yán)重,開發(fā)人員又缺乏金融知識背景等種種困難,提出了用自動化的平行測試來盡可能充分地覆蓋系統(tǒng)邊界條件;從而在盡可能少的人力資源投入下,盡可能高效地發(fā)現(xiàn)BUG。另外用平行測試的原理實現(xiàn)了回歸測試的自動化執(zhí)行,進一步提高了開發(fā)人員在BUGFIX階段的工作效率。該自動化測試系統(tǒng)的實現(xiàn)方案的提出為一些業(yè)務(wù)邏輯復(fù)雜,需要測試工作量巨大、測試難度高、需求又不完整而且還極難使用通用自動化測試工具進行測試的系統(tǒng)重構(gòu)項目提供一種低投入、高產(chǎn)出的自動化測試解決方案。第二章將會對測試目標(biāo)系統(tǒng)的相關(guān)背景,系統(tǒng)架構(gòu)以及重構(gòu)項目中測試環(huán)節(jié)面臨的主要的挑戰(zhàn)進行簡要的介紹。第三章將會對重構(gòu)項目所需的測試以及面臨的主要難點做分析,然后提出有效的解決方案。第四章將會就該自動化測試系統(tǒng)主要功能點的實現(xiàn)方案和框架結(jié)構(gòu)設(shè)計做詳細(xì)闡述。第五章將會就該自動化測試系統(tǒng)具體實現(xiàn)環(huán)節(jié)所采用的技術(shù)和實現(xiàn)方案做浙江大學(xué)碩士學(xué)位論文第1章緒論詳細(xì)闡述。第六章將會就對該測試系統(tǒng)在項目的實際運用中產(chǎn)生的效果做客觀的分析和估算。第七章將重點介紹基于BP人工神經(jīng)網(wǎng)絡(luò)的算法實現(xiàn)的BUG定位模塊的原理和具體實現(xiàn)方案。第八章是本文的總結(jié)部分,指出自動化測試系統(tǒng)存在的缺陷,有待繼續(xù)研究的方向等。15本章小結(jié)本章簡單介紹了自動化測試的發(fā)展歷史和現(xiàn)狀,并結(jié)合作者在一個大型網(wǎng)上金融交易系統(tǒng)重構(gòu)項目中開發(fā)的自動化測試系統(tǒng)的實踐。引出了用自動化的平行測試來解決系統(tǒng)重構(gòu)項目中的測試問題。4浙江大學(xué)碩上學(xué)位論文第2章系統(tǒng)重構(gòu)項目概述第2章系統(tǒng)重構(gòu)項目概述21系統(tǒng)重構(gòu)的背景金融交易所包涵的內(nèi)容極其豐富,包括外匯交易、現(xiàn)金轉(zhuǎn)賬交易、黃金交易、股票,債券等票據(jù)的交易、期貨交易、期權(quán)交易還有利率衍生品交易等各種類型的交易。在本文中作待測試系統(tǒng)的FTMFINANCIALTRANSACTIONMANAGER系統(tǒng)主要的功能為對客戶或者交易經(jīng)紀(jì)人發(fā)出的外匯交易、現(xiàn)金轉(zhuǎn)賬交易、股票,債券等交易請求做匯率,金額等的計算和轉(zhuǎn)換;檢查交易請求的完整性;評估交易請求的正確性和可行性;計算交易所需要支付的費用等。FTM在整個系統(tǒng)在交易流程中的位置和作用如圖21所示交易請求驗證I叩M驗證完整性、正確性、可行性;打率轉(zhuǎn)換。費用計算廠L基廠鯽機構(gòu)一裂F,交易機構(gòu)圖21交易流程圖浙江大學(xué)碩士學(xué)位論文第2章系統(tǒng)重構(gòu)項目概述從系統(tǒng)的業(yè)務(wù)量上看,整個系統(tǒng)包含四大類業(yè)務(wù);交易范圍涵蓋了80多個國家、地區(qū),涉及50多種主要貨幣交易;日處理數(shù)據(jù)量平均在20萬25萬條。因此,不難看出FTM是一個涉及的業(yè)務(wù)眾多,包含的商業(yè)邏輯復(fù)雜,處理的數(shù)據(jù)量巨大的網(wǎng)上金融交易系統(tǒng)。22系統(tǒng)重構(gòu)后的架構(gòu)變化現(xiàn)有的FTM系統(tǒng)從架構(gòu)上分,自上而下一共有4層7個模塊1處理輸入信息的TRADECAPTURE模塊;2處理具體商業(yè)邏輯的四個模塊CASHPROCESS模塊,SECURITYPROCESS模塊,INDIRECTFXPROCESS模塊和FEEPROCESS模塊;3做業(yè)務(wù)金額結(jié)算的SIM模塊;4向下游模塊發(fā)送信息和接收反饋信息的OUTBOUND模塊。經(jīng)過重構(gòu)后的新FTM系統(tǒng)從架構(gòu)上分,自上而下一共有以下5個模塊1處理輸入信息的INBOUND模塊;2驗證輸入信息完整性的TRADEPRETREATMENT模塊;3處理具體商業(yè)邏輯的TRADEPROCESSING模塊;4做交易結(jié)算的SETTLEMENT模塊;5往下游系統(tǒng)發(fā)送信息的OUTBOUND模塊。重構(gòu)前后的FTM系統(tǒng)框架對比如圖22所示6浙江人學(xué)碩十學(xué)位論文第2章系統(tǒng)蘑構(gòu)項目概述商業(yè)流程處理部分輸入信息解析部分一鬣然_輸出下游信息部分一磷SEC蝴URI徽TY卜LS1MOUTBOUNDF1現(xiàn)金交易模塊結(jié)算模塊模塊TRADECAPTURE模塊I?!盚廠一則博FEE黻卜IN裂BOUNH鼉TRA磬DE十一F孵H觚淤LEMEH懈。罔22重構(gòu)前后系統(tǒng)框架比較圖23重構(gòu)項目中測試工作面臨的主要挑戰(zhàn)從上述不難看出,F(xiàn)TM系統(tǒng)重構(gòu)項目有以下3大特點1FTM是一個包含的商業(yè)邏輯復(fù)雜,交易流程分支眾多的專業(yè)金融交易系統(tǒng),商業(yè)需求復(fù)雜;2重構(gòu)前后的FTM系統(tǒng)在框架結(jié)構(gòu)上有較大的改變;3FTM系統(tǒng)處理的業(yè)務(wù)廣涉及80多個國家地區(qū),50多種貨幣,數(shù)據(jù)量大。以上的特點給重構(gòu)項目的測試工作帶來了以下的困難1商業(yè)流程和邏輯分支復(fù)雜,代碼量龐大,使測試整個系統(tǒng)所需要的測試工作量非常巨大,而且測試用例的設(shè)計很難實現(xiàn);2系統(tǒng)架構(gòu)的改變使功能模塊級別的功能測試無法充分進行,所以針對整個系統(tǒng)做的集成測試工作量會大大增加;3FTM系統(tǒng)處理的業(yè)務(wù)范圍廣泛,因此傳統(tǒng)的手工測試方法很難達(dá)到一個滿意的覆蓋率;7浙江大學(xué)碩上學(xué)位論文第2章系統(tǒng)重構(gòu)項目概述4現(xiàn)有的FTM系統(tǒng)因為歷史原因沒有完整的需求文檔,所以衡量重構(gòu)以后的系統(tǒng)正確與否的標(biāo)準(zhǔn)只有以重構(gòu)以后的系統(tǒng)運行結(jié)果是否于現(xiàn)有FTM系統(tǒng)運行結(jié)果一致為標(biāo)準(zhǔn)。24本章小結(jié)本章簡略介紹了該測試系統(tǒng)需要測試的FTM系統(tǒng)的特點和相關(guān)背景,以及重構(gòu)項目的情況和特點的概述。再指出該重構(gòu)項目的測試環(huán)節(jié)面臨的主要困難和挑戰(zhàn)。8浙江人學(xué)碩士學(xué)位論文第3章測試難點和解決方案第3章測試難點和解決方案31測試方法選取從測試的方法上來分,測試可以被分為白盒測試和黑盒測試兩大類。311白盒測試其中白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是按照程序內(nèi)部的結(jié)構(gòu)來測試程序,通過測試來檢測產(chǎn)品內(nèi)部動作是否按照設(shè)計規(guī)格說明書的規(guī)定正常進行,檢驗程序中的每條通路是否都能按預(yù)定要求正確工作。白盒測試要求全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進行測試,白盒測試是窮舉路徑測試。因此,在使用這一方案時,測試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測試數(shù)據(jù)【51。首先,對于重構(gòu)項目來說,系統(tǒng)的內(nèi)部邏輯結(jié)構(gòu)和商業(yè)流程的具體實現(xiàn)過程并不是開發(fā)人員所關(guān)心的重點,需要關(guān)心的重點是系統(tǒng)的功能點的正確與否,即重構(gòu)以后的系統(tǒng)對于同樣的輸入數(shù)據(jù)能否和原來的系統(tǒng)有相同的輸出。因此沒有選擇白盒測試的需要。其次對于FTM這樣一個龐大復(fù)雜的系統(tǒng)來說,整個系統(tǒng)包含的邏輯分支是數(shù)以千計的。因此,對整個系統(tǒng)進行集成測試的話,所需要的測試用例幾乎是一個天文數(shù)字,因此對這樣的系統(tǒng)使用白盒測試并不適合。所以黑盒測試是比較合適的測試方法。312黑盒測試黑盒測試也稱功能測試或者數(shù)據(jù)驅(qū)動測試,它是通過測試來檢測功點是否都能正常使用。在測試中,把程序看作一個無法打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,通過程序接口進行測試。它只檢查程序功能是否按照需求正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測試著眼于程序外部結(jié)構(gòu),即不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對軟件界面和軟件功能進行測試15J。9浙江人學(xué)碩十學(xué)位論文第3章測試難點和解決方案對黑盒測試來說必須有明確而且盡可能完整的需求才能較好地達(dá)到測試的目的和獲得滿意的測試覆率。而需求來源分為顯示需求和隱式需求兩大類。其中顯式需求指的是1原始需求介紹說明書;2產(chǎn)品規(guī)格書;3軟件需求文檔;4繼承性文檔;5經(jīng)驗庫;6通用協(xié)議規(guī)范標(biāo)準(zhǔn)。隱式需求指的是用戶的主觀感受、市場主流觀點、專業(yè)人士評價分析等等32獲取測試需求的難點321需求文檔缺失一般情況下,軟件測試的需求最主要來源于顯式需求中的軟件需求文檔、繼承性文檔、通用協(xié)議規(guī)范標(biāo)準(zhǔn)和原始需求介紹說明書等。但是,一個實用的商業(yè)系統(tǒng)在運行過程中會不斷地向系統(tǒng)中增加新的業(yè)務(wù)需求、刪除被淘汰的業(yè)務(wù)、合并類似的業(yè)務(wù)和修改某些不適當(dāng)?shù)臉I(yè)務(wù)流程來滿足不斷變化的商業(yè)流程。舉本文提及的FTM系統(tǒng)為例子。該系統(tǒng)從投入實際應(yīng)用至今已經(jīng)運行了十幾年,期間經(jīng)歷的大、小改動不計其數(shù),對于這樣的系統(tǒng),依靠軟件需求文檔來定義測試需求代價太大,而且很難保證需求的正確性。首先,收集、整理這么多的文檔需要花費大量的時間和人力資源;其次,上述需求文檔有的是系統(tǒng)級別的需求變更,有的是模塊級別的需求變更,有的是功能點的需求變更;因此要把這些層次各異的需求文檔統(tǒng)一轉(zhuǎn)化為系統(tǒng)級別的測試案例工作量太過巨大,而且非常容易造成需求的重復(fù)或者遺漏;最后,實際上很少有系統(tǒng)能保持有如此完整的原始需求文檔和變更需求文檔。以本文涉及的FTM系統(tǒng)為例,只有2005年以后的需求文檔是完整的,之前的文檔存在部分缺失或完全缺失的情況。10浙江大學(xué)碩士學(xué)位論文第3章測試難點和解決方案322逆向分析需求代價過大在需求文檔缺失的情況下,開發(fā)人員仍然可以通過分析現(xiàn)有代碼轉(zhuǎn)化為業(yè)務(wù)流程,然后再進一步還原為具體需求的逆向過程來分析、抽象、提取出具體需求。但是,這樣的逆向分析過程最大的困難是費時、費力、難度大而且還容易出錯。在FTM系統(tǒng)重構(gòu)項目中,最大的困難表現(xiàn)為以下三點1要從程序代碼中分析出商業(yè)流程和具體需求,要求分析者必須同時具備程序開發(fā)知識和金融交易相關(guān)的商業(yè)知識,而同時具備以上2種知識的人員非常稀缺;2為了保證從代碼中分析得出的需求的正確性,必須有相關(guān)的用戶對產(chǎn)生的需求文檔做出仔細(xì)檢查和審核,發(fā)現(xiàn)問題再和分析人員溝通。這樣的流程進一步加劇了時間和人力上的開銷;3系統(tǒng)運行期間多次打補丁,貼膏藥式的代碼修改增大了分析代碼的難度,同時也增大了代碼分析過程中出錯的幾率。綜上所述,從現(xiàn)有代碼逆向分析得到商業(yè)需求的過程需要花費大量的時間,需要耗費大量的人力,而且還容易出錯。所以這種方法并不適合時間和預(yù)算都不是很寬裕的項目中使用。323現(xiàn)有系統(tǒng)即是需求在上文分析的兩種方法都無法或者是很難獲得測試需求時,我們還可以采用隱式需求作為黑盒測試的需求。簡而言之就是拋開任何需求和實現(xiàn),對用戶而言,如果對于同樣的輸入信息,重構(gòu)以后的系統(tǒng)和重構(gòu)前的系統(tǒng)有相同的輸出值,那么這個功能點在重構(gòu)中的實現(xiàn)就是正確的。以本文中的FTM系統(tǒng)重構(gòu)為例子,則對重構(gòu)后的系統(tǒng)做測試時,可以用現(xiàn)有的FTM系統(tǒng)的運行結(jié)果作為對重構(gòu)以后的系統(tǒng)的集成測試的需求。這種需求獲得方法有以下兩大優(yōu)點1不再需要花費大量時間在需求獲取和需求分析上;2可靠性高,因為系統(tǒng)重構(gòu)的前提要求是重構(gòu)以后的系統(tǒng)要有和原有的系統(tǒng)有浙江大學(xué)碩士學(xué)位論文第3章測試難點和解決方案相同的運行結(jié)果。但是也有以2方面的缺點1由于沒有顯式的需求文檔,對測試人員來說難以生成有效的測試用例,很容易造成80的測試案例都在反復(fù)測試20代碼的情況;2很難保證測試的覆蓋率和邊界情況的覆蓋率。因此,我們引入平行測試的方法來彌補上述2個缺點。33平行測試平行測試PARALLELTESTING即通過輸入相同的數(shù)據(jù)到新、舊兩個系統(tǒng)中同時運行。然后通過比較兩個系統(tǒng)的運行結(jié)果或者執(zhí)行狀態(tài)的方法來實現(xiàn)對新系統(tǒng)的測試的一種測試方法。在本文涉及的重構(gòu)項目中,平行測試的工作原理如圖31所示12浙江大學(xué)碩上學(xué)位論文第3章測試難點和解決方案圖31平行測試原理圖在本文討論的系統(tǒng)重構(gòu)項目中,平行測試在開發(fā)的各個階段能起到不同的作用,按不同階段分有以下四種1在集成測試之前,開發(fā)人員能用平行測試有針對性地對一些功能點設(shè)計測試用例實現(xiàn)模塊級的功能點測試;2在集成測試中,能用平行測試來判斷功能點的實現(xiàn)是否正確;3在開發(fā)后期的SIT測試SYSTEMINTEGRATIONTESTING階段和UAT測試USERACCEPTANCETESTING階段用平行測試提高測試的覆蓋率;4在重構(gòu)系統(tǒng)投入實際運行前,能通過海量數(shù)據(jù)的平行測試來盡可能地覆蓋前面三個階段無法覆蓋到的邊界條件,從而盡可能保證系統(tǒng)的正確性。13浙江人學(xué)碩士學(xué)位論文第3章測試難點和解決方案34回歸測試除了上文闡述的在基準(zhǔn)系統(tǒng)和待測試系統(tǒng)之間運行的平行測試外,重構(gòu)項目中還需要一種特殊的平行測試回歸測試來加快系統(tǒng)開發(fā)的進度。所謂的回歸測試REGRESSIONTESTING,即就是在軟件生命周期中,只要軟件發(fā)生了改變,就可能給該軟件產(chǎn)生問題;所以,每當(dāng)軟件發(fā)生變化時,我們就必須重新測試現(xiàn)有的功能,以便確定修改是否達(dá)到了預(yù)期的目的,還要檢查修改是否破壞原有的正常功能【6】。因此,回歸測試實質(zhì)上就是待測試系統(tǒng)在代碼改動前和代碼改動后分別針對同一基準(zhǔn)系統(tǒng)之間進行的2次平行測試。剛完成重構(gòu)的系統(tǒng)中必然包含著大量的錯誤BUG和瑕疵DEFECT,因此伴隨而來的是大量的BUGFIX工作。而每次的BUGFIX都會或多或少帶來代碼的改變,這種情形下我們便需要大量的回歸測試來保證BUGFIX的正確性。在本文提及的系統(tǒng)重構(gòu)項目中,我們需要以下三種不同規(guī)模的回歸測試,它們的頻率分別如表31所示、表31同歸測試執(zhí)行表規(guī)模頻率作用2050相關(guān)測每次BUGFIX以確定某一BUGFIX的正確性,以及完整試用例后進行性。100500通用的每個工作同結(jié)束確認(rèn)該工作日BUGFIX的結(jié)果,以及確測試用例以后進行認(rèn)是否引進新的BUG。運行現(xiàn)有的所每周即每個更新BUG列表,制定下個周期的工作目有的回歸測試CODEVERSION標(biāo)。用例提交之后進行從上表可以發(fā)現(xiàn),回歸測試在整個重構(gòu)過程中占的比重非常大,但是在整個開發(fā)過程中又是必不可缺的環(huán)節(jié)。綜上所述,在整個系統(tǒng)重構(gòu)項目中占的工作量比重最大,同時也是主要測試方式的平行測試和回歸測試有以下共同點14浙江大學(xué)碩上學(xué)位論文第3章測試難點和解決方案1測試流程機械單一2測試重復(fù)性高;3測試所需數(shù)據(jù)量大。因此,這兩種測試適合用自動化測試來完成。因此非常有必要設(shè)計一種專門針對平行測試和回歸測試的自動化測試工具把開發(fā)人員從繁重而又重復(fù)的測試中解放出來,從而大大節(jié)省測試時間,進而大幅度縮短開發(fā)周期,加快開發(fā)速度,提高整個項目的資源利用率35本章小結(jié)本章分析了系統(tǒng)重構(gòu)項目中測試環(huán)節(jié)的需求和特點,提出了最適合系統(tǒng)重構(gòu)項目使用的兩種測試方法平行測試和回歸測試。然后分別分析了這兩種測試的特點和作用,最后指出開發(fā)一種實現(xiàn)這兩種測試方法的自動化測試工具的必要性。15浙江大學(xué)碩上學(xué)位論文第4章自動化測試系統(tǒng)的框架和架構(gòu)第4章自動化測試系統(tǒng)的框架和架構(gòu)41自動化測試系統(tǒng)的工作流程通過前文分析可知,該自動化測試系統(tǒng)主要解決的是系統(tǒng)重構(gòu)項目中的平行測試和回歸測試的自動化問題。411平行測試工作流程從圖31的平行測試的工作流程圖中,可以發(fā)現(xiàn)平行測試的步驟分為以下三JB歹1同步向2個系統(tǒng)作為測試標(biāo)準(zhǔn)的A系統(tǒng)和作為測試目標(biāo)的B系統(tǒng)中投入相同的測試數(shù)據(jù);2分別從A和B兩個系統(tǒng)中找出本次測試的運行記錄,并根據(jù)測試要求提取相應(yīng)的表示運行結(jié)果的字段;3對運行結(jié)果做比較和分析,分析該測試案例對應(yīng)的功能點的實現(xiàn)是正確還是錯誤。上述3個步驟是開發(fā)人員執(zhí)行平行測試時的流程。相應(yīng)的,如果用自動化測試系統(tǒng)去模擬開發(fā)人員在上述三個環(huán)節(jié)中的工作,需要實現(xiàn)的功能分別是1把一組測試數(shù)據(jù)按相同的順序,分別投入基準(zhǔn)系統(tǒng)A和待測試系統(tǒng)B中。同時為了便于識別出該次測試的記錄,在輸入數(shù)據(jù)中設(shè)置能標(biāo)識測試批次和測試順序的字段;2按照上一步輸入的標(biāo)識字段分別從A系統(tǒng)和B系統(tǒng)中選出前一步投入的測試用例的測試結(jié)果,并按照測試順序值將測試結(jié)果一一配對;3對每一對測試數(shù)據(jù)的結(jié)果字段進行分析,判斷測試結(jié)果是否匹配,若不匹配則把不同之處高亮。4匯總結(jié)果,輸出報表。具體工作流程圖如圖41所示16浙江大學(xué)碩上學(xué)位論文第4章自動化測試系統(tǒng)的框架和架構(gòu)測試數(shù)據(jù)預(yù)處理圖41平行測試工作流程圖412回歸測試工作流程一次回歸測試的完整流程包括以下5步【611識別軟件中被修改的部分2從原基線測試用例庫T中,排除所有不再適用的測試用例,確定那些對新的軟件版本依然有效的測試用例,來建立一個新的基線測試用例庫T0;3依據(jù)一定的策略從T0中選擇測試用例測試被修改的軟件。4如果必要,生成新的測試用例集T1,用于測試TO無法充分測試的那部分軟件代碼。17浙江人學(xué)碩學(xué)位論文第4章自動化測試系統(tǒng)的框架和架構(gòu)5用測試用例集T1測試修改后的軟件。其中第2步和第3步測試用來驗證本次修改修改是否破壞了現(xiàn)有的正常功能;第4步和第5步測試用來驗證本次修改是否修正了發(fā)現(xiàn)的錯誤。相應(yīng)的,如果用自動化測試系統(tǒng)去模擬開發(fā)人員在上述三個環(huán)節(jié)中的工作,需要實現(xiàn)的功能點別是1在改動代碼前設(shè)立一個基線,基線里包含了測試用例和測試結(jié)果2把改動代碼之前做的測試按測試結(jié)果分2類,和基線相比測試結(jié)果為“匹配的測試用例歸為第一組;和基線相比測試結(jié)果為“不匹配“的測試用例歸為第二組。3修改代碼并重新執(zhí)行基線里的測試用例,再把獲得的測試結(jié)果和基線的結(jié)果做比較。4如果原本第一組的測試用例在這新的測試中結(jié)果為“不匹配”,則這些測試用例是由于本次BUGFIX造成的錯誤;如果原來在第二組的測試用例在這新的測試中結(jié)果為“匹配“則表示BUGFIX成功修正了錯誤。具體工作流程圖如圖42所示18浙江大學(xué)碩上學(xué)位論文第4章自動化測試系統(tǒng)的框架和架構(gòu)圖42回歸測試工作流程圖42自動化測試系統(tǒng)的模塊劃分按照功能劃分,自動化測試系統(tǒng)可以分為以下4個模塊1測試數(shù)據(jù)管理模塊用于新建、修改、刪除測試數(shù)據(jù);2測試方案管理模塊用于選擇測試數(shù)據(jù)、測試類型、測試環(huán)境以組成新的測試方案,也可以選擇已有的測試方案再次執(zhí)行,或者修改已有的測試方案;3測試結(jié)果獲取模塊根據(jù)測試方案中定義的參數(shù)從相應(yīng)的環(huán)境中獲取測試結(jié)果字段消息,再按照測試案例將測試結(jié)果一一配對。4測試結(jié)果比較模塊把獲得的測試結(jié)果進行比較,若需要比較的只是簡單的字段則用STRING比較即可;若需要比較的是復(fù)雜格式的輸出消息,則先將待比較字段分割,再做STRING比較。比較后再把消息組合,還原。19浙江大學(xué)碩上學(xué)位論文第4章自動化測試系統(tǒng)的框架和架構(gòu)自動化測試系統(tǒng)的模塊結(jié)構(gòu)圖如圖43所示圖43自動化測試系統(tǒng)模塊圖20浙江大學(xué)碩上學(xué)位論文第4章自動化測試系統(tǒng)的框架和架構(gòu)43本章小結(jié)本章首先對手動執(zhí)行平行測試和回歸測試的流程做了分析,然后按照這上述測試流程設(shè)計了自動化測試系統(tǒng)執(zhí)行平行測試和回歸測試的步驟。最后再從功能上對自動化測試系統(tǒng)進行了模塊劃分,并且確定了每個模塊的功能。2L浙江大學(xué)碩士學(xué)位論文第5章自動化測試系統(tǒng)的實現(xiàn)第5章自動化測試系統(tǒng)的實現(xiàn)51測試數(shù)據(jù)管理模塊的實現(xiàn)測試數(shù)據(jù)管理模塊主要用于對測試數(shù)據(jù)的維護、管理和查詢,該模塊在整個系統(tǒng)中位于底層位置。該模塊提供的主要接口為測試數(shù)據(jù)的查找、新建、修改、刪除等操作。同時為了方便管理,此條測試數(shù)據(jù)在基準(zhǔn)環(huán)境下運行的結(jié)果也就是“基線“的值,也由該模塊統(tǒng)一管理。每一條測試數(shù)據(jù)構(gòu)成的記錄應(yīng)該包含以下內(nèi)容1測試數(shù)據(jù)的ID這一項為數(shù)據(jù)庫表的主鍵,是用來標(biāo)識測試數(shù)據(jù)的列;2測試數(shù)據(jù)的類型因為系統(tǒng)支持XML格式,TEXT格式和SWIFTSOCIETYFORWRORLD謝DEINTERBANKFINANCIALTELECORNRNUNICATION即全世界銀行間金融電信學(xué)會定義的消息格式格式的消息,所以該列用于標(biāo)識該測試數(shù)據(jù)的格式;3測試數(shù)據(jù)的業(yè)務(wù)本文介紹的系統(tǒng)支持外匯交易、現(xiàn)金轉(zhuǎn)賬交易、股票,債券等多種業(yè)務(wù),這一列用于標(biāo)識此條測試數(shù)據(jù)針對的業(yè)務(wù)種類;4描述用來簡短描述本條測試數(shù)據(jù)的特點;5消息體存儲測試數(shù)據(jù)的消息內(nèi)容;除了測試數(shù)據(jù)表外,為了方便回歸測試的進行系統(tǒng)還負(fù)責(zé)維護一張TESTDATA_BASELINE表,每一條測試數(shù)據(jù)基線表的記錄應(yīng)該包含以下內(nèi)容1測試數(shù)據(jù)ID用該列和測試數(shù)據(jù)表中的記錄相關(guān)聯(lián),外鍵;2基線基準(zhǔn)環(huán)境建立基線的基準(zhǔn)環(huán)境,該列和測試數(shù)據(jù)ID一起成為本表的主鍵3基線結(jié)果本條測試數(shù)據(jù)在基準(zhǔn)系統(tǒng)中運行得到的結(jié)果,基線結(jié)果包含了在所有測試模板中都可能被用來做比較的字段的結(jié)果。511存儲層實現(xiàn)TESTDATA數(shù)據(jù)庫表的表結(jié)構(gòu)定義具體如表51所示浙江大學(xué)碩上學(xué)位論文第5章自動化測試系統(tǒng)的實現(xiàn)表51TEST_DATA表表定義列名類型長度備注TEST_DATAIDVARCHAR230測試數(shù)據(jù)的ID,主鍵;MSGTYPEVARCHAR210測試數(shù)據(jù)的類型;TRAN_TYPEVARCHAR210測試數(shù)據(jù)的業(yè)務(wù);TEST_DATA_DESCVARCHAR250測試數(shù)據(jù)簡單描述;TESTDATA_MSGVARCHAR22000測試數(shù)據(jù)的消息內(nèi)容;ADDEDUSERVARCHAR215添加該測試數(shù)據(jù)的用戶;CREATEDATETIMESTAMP本條測試數(shù)據(jù)創(chuàng)建時間;UPDATE_DATETIMESTAMP本條測試數(shù)據(jù)更新時間。TEST_DATA_BASELINE數(shù)據(jù)庫表的表結(jié)構(gòu)定義具體如表52所示表52TEST_DATA_BASE_LINE表表定義列名類型長度備注TESTDATA_IDVARCHAR230測試數(shù)據(jù)的ID,外鍵;BASE_LINEENVVARCHAR210基線建立的基準(zhǔn)環(huán)境;TEST_DATA_RSLTVARCHAR22000測試數(shù)據(jù)在基準(zhǔn)系統(tǒng)中運行得到的結(jié)果;CREATEDATETIMESTAMP該基線的創(chuàng)建時間;UPDATE_DATETIMESTAMP該基線的更新時間。512邏輯層實現(xiàn)在代碼實現(xiàn)上,測試數(shù)據(jù)由對象TESTDATEBO來實現(xiàn);TESTDATEBO的對象用于實例化一條測試數(shù)據(jù),因此其包含的屬性為TEST_DATA表和TEST_DATA_BASE_LINE表的列的并集。浙江掌域士學(xué)位論立第5章自動化測試系統(tǒng)的宴現(xiàn)513UI實現(xiàn)測試數(shù)據(jù)管理模塊的界面比較簡單,無非是實現(xiàn)測試數(shù)據(jù)的查找和測試數(shù)據(jù)的管理這2大類的功能1測試數(shù)據(jù)的查找該界面的作用是,用戶通過輸入一定的查詢條件來查找需要的測試數(shù)據(jù)。測試數(shù)據(jù)查詢UI的實現(xiàn)如圖51所示豢粵再三三主_一IJ疃ML畦UM,R一R_ZFIJJ蛩面J蔓虬三J西JII口圖5I測試數(shù)據(jù)查詢界面2測試數(shù)據(jù)的管理該界面允許用戶新建、修改、刪除測試數(shù)據(jù)。測試數(shù)據(jù)管理UI的實現(xiàn)如圖52所示斯夫?qū)W碩I學(xué)位論文第5I自動化測試系統(tǒng)的實現(xiàn)圖52測試數(shù)據(jù)管理界面52測試方案管理模塊的實珊測試方案是系統(tǒng)中最基本的功能單位,它代表的意思是一份測試計劃。因此,一個測試方案必須包含以下信息1測試方案TD本次測試方案韻名稱,其值唯一,是該數(shù)據(jù)庫表的主鍵;2測試數(shù)據(jù)本次測試方案中被使用到的測試數(shù)據(jù)3測試類型是并行測試PARA1ELTEST還是REGRESSIONTEST;4測試環(huán)境選擇需要測試的環(huán)境通常開發(fā)環(huán)境有若干個,分別對應(yīng)不同代碼版本;5基準(zhǔn)環(huán)境作為測試結(jié)果比較的基準(zhǔn)環(huán)境;6比較模板比較模板中定義了運行結(jié)果里面哪些字段列將用來做比較;7狀態(tài)測試方案的運行狀態(tài)DDED,F(xiàn)AJL和SUCCESS。521存儲層實現(xiàn)在具體實現(xiàn)上,為了節(jié)省存儲空間用“查詢測試數(shù)據(jù)用的條件”代替測試數(shù)據(jù)存在TESTBARCH數(shù)據(jù)庫表中。TESTBATCH數(shù)據(jù)庫表的表結(jié)構(gòu)定義具體如衷53所示浙江人學(xué)碩士學(xué)位論文第5章自動化測試系統(tǒng)的實現(xiàn)表53TESTBATCH表表定義列名類型長度備注TESTBATCHIDVARCHAR230測試方案的名稱,主鍵TESTDATACREVARCHAR250選取測試數(shù)據(jù)的條件;TEST_TYPECHARL測試類型,P并行測試;R回歸測試;TARGETENVVARCHAR210測試的目標(biāo)環(huán)境;CRITERENVVARCHAR210測試的基準(zhǔn)環(huán)境;TEMPLATE_NUMVARCHAR2LO測試結(jié)果比較使用的模板號;TESTSTATUSVARCHAR25測試方案運行狀態(tài);UPDATE_DATETIMESTAMP本測試方案最后更新時間;UPDATE_USERVARCHAR210最后更新本測試方案的用戶;TEST_DATA_NUMINTEGER10測試數(shù)據(jù)數(shù)量;USER_GROUPVARCHAR210本測試方案的用戶組;BASELINE_TAGCHARL標(biāo)識本測試方案是否已經(jīng)建立基線BASELINE;BASELINEVALUEVARCHAR22000用來保存在本次測試方案的基線中。522邏輯層實現(xiàn)在代碼實現(xiàn)上,測試方案由對象TESTBATCHBO來實現(xiàn);TEST_BATCHBO的一個對象表示一次測試的測試方案。系統(tǒng)解析一個TESTBATCHBO對象的各個屬性值然后執(zhí)行此次測試。在測試方案的執(zhí)行環(huán)節(jié)上,回歸測試比平行測試多一個建立“基線“的過程,如果新建的是回歸測試,則必須先執(zhí)行一次平行測試建立起“基線“才能進一步執(zhí)行回歸測試。而“基線的建立也分兩個步驟,第一步是從基準(zhǔn)環(huán)境中取出運行的結(jié)果存入基線表TEST_DATA_BASELINE中;第二步是更新測試方案里面的浙扛人學(xué)頓士學(xué)位論文第5章自動化捌試系統(tǒng)的實現(xiàn)基線測試結(jié)果BASELINE_VALUE列,把測試案例按測試結(jié)果結(jié)果為“匹配”和“不匹配”分為兩組。523UI實現(xiàn)與測試數(shù)據(jù)管理模塊類似,測試方案管理模塊的界面也主要分為測試案例查詢界面和測試方案管理界面2類1測試方案的查詢界面,在該界面中用戶輸入查詢條件,系統(tǒng)將符合查詢條件的測試方案羅列在頁面下半部分的列表中。具體實現(xiàn)如圖53所示圈53測試方案矗詢界面2測試方案的管理界面,在該界面中,用戶能新建、修改或者刪除選中的測試方案。測試方案管理UI的實現(xiàn)如圖54所示;浙征大學(xué)碰學(xué)位論主第5章自動化測試系統(tǒng)的實現(xiàn)53測試結(jié)果提取模塊的實現(xiàn)測試結(jié)果的選取過程的代碼運行不會自動運行,而是需要用戶驅(qū)動,例如用戶在自動化測試工具的結(jié)果頁面選中某一個顯示為提交成功SUCCESS的測試方案,然后點擊“SHOWREPORT”按鈕或者是通過后臺的腳本定時觸發(fā)查看測試結(jié)果請求,生成測試結(jié)果報表。此時上述代碼段才會被調(diào)用運行。測試結(jié)果選取的過程可以分為以下三個步驟1第一步,解析披選中方案包含的測試數(shù)據(jù)、測試環(huán)境、基準(zhǔn)環(huán)境、測試類型和比較測試結(jié)果的模板;2第二步,把第一步解析獲得的數(shù)值作為參數(shù),動態(tài)生成查詢結(jié)果的SQL語句,分別從測試環(huán)境和基準(zhǔn)環(huán)境中獲取測試結(jié)果字段或者是輸出消息。若是回歸測試,則選取基線表中的相應(yīng)結(jié)果作為基準(zhǔn)環(huán)境的運行結(jié)果;3最后一步,按照預(yù)4試方案中測試案例的順序號把獲得的測試結(jié)果排序,再把測試環(huán)境中的測試結(jié)果和基準(zhǔn)環(huán)境中的測試結(jié)果基線測試結(jié)果一一配對,存入測試結(jié)果表中給測試結(jié)果比較模塊讀取。具體工作流程如圖55所示浙江人學(xué)碩士學(xué)位論文第5章自動化測試系統(tǒng)的實現(xiàn)圖55測試結(jié)果提取流程圖531存儲層實現(xiàn)測試結(jié)果是由測試系統(tǒng)分別從測試環(huán)境和基準(zhǔn)環(huán)境的數(shù)據(jù)厙中或者是基線表查詢得到。一般測試環(huán)境和基準(zhǔn)環(huán)境的數(shù)據(jù)庫數(shù)據(jù)量都比較大,容易導(dǎo)致查詢速度緩慢;如果測試方案包含很多測試案例,那么測試系統(tǒng)查詢測試結(jié)果的時間開銷將會長得無法接受。所以,如果每次查看結(jié)果都要從2個環(huán)境中選取測試結(jié)果將會大大降低系統(tǒng)的性能。所以測試結(jié)果應(yīng)該在本模塊有數(shù)據(jù)庫表有備份以提高系統(tǒng)性能。查詢結(jié)果時,系統(tǒng)先在本模塊的測試結(jié)果表中查找,只有找不到數(shù)據(jù)或者是用戶手動點擊“UPDATE”按鈕時,才重新去外部系統(tǒng)查找測試結(jié)果。29浙江大學(xué)碩士學(xué)位論文第5章自動化測試系統(tǒng)的實現(xiàn)測試結(jié)果TESTRESULT表應(yīng)該包含以下信息1測試方案ID標(biāo)識本條測試結(jié)果屬于哪個測試方案;2測試數(shù)據(jù)ID標(biāo)識本條測試結(jié)果屬于哪條測試數(shù)據(jù)的運行結(jié)果;3輸出消息結(jié)果測試結(jié)果最主要的是比較系統(tǒng)的OUTBOUND消息,因為FTM系統(tǒng)有多種消息格式的OUTBOUND消息所以每種格式的消息存為一列;4其他字段結(jié)果除了比較系統(tǒng)的OUTBOUND消息外,還有一些表示系統(tǒng)運行結(jié)果的狀態(tài)列也需要比較。TESTRESULT數(shù)據(jù)庫表的表結(jié)構(gòu)定義具體如表54所示表54TESTRESULT表表定義列名類型長度備注TESTBATCHIDVARCHAR230標(biāo)識本條測試結(jié)果屬于哪個測試方案;TESTDATAIDVARCHAR230標(biāo)識本條測試結(jié)果屬于哪條測試數(shù)據(jù)的運行結(jié)果;OUTBOUND_MSGL_DATALVARCHAR22000用來存放OUTBOUND消息,目OUTBOUNDMSGIDATA2標(biāo)系統(tǒng)的存L列,基準(zhǔn)系統(tǒng)存2列;OUTBOUNDMSG2DATALVARCHAR22000有些測試案例有多條OUTBOUND_MSG2_DATA2OUTBOUND消息,其他同上;OUTBOUND_MSG3DATALVARCHAR22000同上;OUTBOUND_MSG3_DATA2OUTBOUND_MSG4_DATALVARCHAR22000同上;OUTBOUND_MSG4DATA2OTHER_FIELDLVARCHAR22000其他需要比較的字段,用“字OTHERFIELD2段名I字段值字段名|字段值“格式組織。30浙江大學(xué)碩上學(xué)位論文第5章自動化測試系統(tǒng)的實現(xiàn)532邏輯層實現(xiàn)邏輯部分主要需要實現(xiàn)以下2大塊功能是測試模板解析和查詢測試結(jié)果的SQL語句生成。測試方案對象解析和查詢SOL語句生成的具體工作流程圖如圖56所示查詢測試結(jié)果上圖56測試結(jié)果查詢流程圖54測試結(jié)果比較模塊的實現(xiàn)測試結(jié)果的比較模塊的主要功能是把測試結(jié)果獲取模塊配對、整理好的數(shù)據(jù)進行比較得出測試結(jié)果。對于有輸出消息的測試案例,如果測試環(huán)境的輸出消息和基準(zhǔn)環(huán)境的輸出消息相比多了或者少了一部分,或者某個字段的數(shù)值不對。這種情況下,如果只是簡單地告訴用戶測試結(jié)果為“不匹配“,那顯然是不合理的。浙江大學(xué)碩士學(xué)位論文第5章自動化測試系統(tǒng)的實現(xiàn)系統(tǒng)在輸出測試結(jié)果時應(yīng)該把有差異的部分用顯目的顏色高亮以避免開發(fā)人員浪費時間在肉眼對比上。因此,在流程上本模塊主要分為以下4個步驟1從TESTRESULT表中選取需要比較的數(shù)據(jù),先做簡單比較判斷整個測試案例的測試結(jié)果是否為“匹配”;2若用戶點擊“VIEWDETAIL“按鈕查看詳細(xì)情況,則把這條測試數(shù)據(jù)不匹配的字段或者OUTBOUND消息分割成業(yè)務(wù)邏輯上的“最小字段“保存在VO對象中;3把分割過以后的對象、字段按照具體不同的類型做比較;4把比較以后得到的對象、字段按照比較結(jié)果格式化顯示,生成最終報表。具體的工作流程圖如圖57所示32浙江人學(xué)碩士學(xué)位論文第5章自動化測試系統(tǒng)的實現(xiàn)圖57測試結(jié)果比較流程圖541邏輯層實現(xiàn)本模塊包含的JAVA類主要分為2大類,第一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 我國行政處罰聽證法律制度的困境與突破:基于理論與實踐的雙重視角
- 2026年藥店培訓(xùn)追溯碼試題及答案
- 2026年高考數(shù)學(xué)線性規(guī)劃解題技巧試卷
- 小學(xué)一年級數(shù)學(xué)(人教版)《5以內(nèi)數(shù)的認(rèn)識和加減法》大單元設(shè)計
- 早教中心規(guī)范化管理制度
- 后廚上下班制度規(guī)范要求
- 放射診斷規(guī)范及審核制度
- 估價報告檔案管理制度
- 三級檔案管理制度體系
- 制氧站人員定級制度規(guī)范
- 科技招商合同協(xié)議書范本
- 國家電網(wǎng)有限公司輸變電工程通 用設(shè)計(330~750kV輸電線路絕緣子金具串通 用設(shè)計分冊)2024版
- 欠債抵房屋協(xié)議合同
- TSG R0004-2025固定式壓力容器安全技術(shù)監(jiān)察規(guī)程
- 大學(xué)勞動教育(第二版)課件 第二章 勞動價值觀與勞動素養(yǎng)
- DBJ50T-240-2016 蒸壓加氣混凝土精確砌塊自承重墻體工程應(yīng)用技術(shù)規(guī)程
- 重難點08滑塊-滑板模型專題高一物理題組法突破重難點(原卷版)
- 2024鐵路營業(yè)線作業(yè)人員北斗安全預(yù)警防護系統(tǒng)技術(shù)條件
- 《東北解放區(qū)工業(yè)戲劇研究(1945-1949年)》
- 新版中國食物成分表
- 外研版七年級英語上冊電子版課文-七上外研版英語電子書
評論
0/150
提交評論