两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

自動化測試構建方法

文檔序號:6437176閱讀:184來源:國知局
專利名稱:自動化測試構建方法
技術領域
本發(fā)明涉及計算機技術領域,特別涉及計算機環(huán)境中運行的軟件管理過程領域,具體是指一種自動化測試構建方法。
背景技術
測試構建是通過自動化的方式進行軟件的測試。如果這個構建過程是每日執(zhí)行一次就是日構建(Daily Build)或者叫做每日集成,如果是每日多次就叫做持續(xù)集成。
一般的軟件開發(fā)流程通常是,一個項目被分解后分配任務,由不同的人負責不同的軟件部件,在開發(fā)完成之后,再把各人的部件整合起來,形成完整的軟件,但是這種做法在實踐中卻有很多問題。
首先,這種方式適合開發(fā)人員之間工作彼此沒有交集的情況,以前這種現(xiàn)象很常見,但是現(xiàn)在,隨著軟件規(guī)模的擴大、分工合作的加深,開發(fā)人員間的相互依賴程度越來越高,這種清晰的職責劃分已經(jīng)變得越來越難了。
其次,在軟件集成時,往往會出現(xiàn)各種各樣的問題,可是卻很難發(fā)現(xiàn)到底問題在哪里。似乎每個人的代碼都沒有問題,但結合到一起就出現(xiàn)大量的問題。
所以日構建就將平時難得一見的集成工作轉換成頻繁進行的一件工作,從而使得復雜的集成變成了一件簡單的工作。通過以天集成,排除缺陷(Bug)就變成一件很容易的事情了。
測試構建的目的是為了發(fā)現(xiàn)缺陷,并可以在以后的測試構建中驗證修復的缺陷。在現(xiàn)有技術中,關于測試構建過程、缺陷管理等都有記載,但這幾個部分在現(xiàn)有技術中都相對獨立集成。測試構建技術是軟件質量保證的一個重要部分,是對產(chǎn)品的自動測試過程。在公知的技術中有關于測試構建的知識和有關于測試構建過程的流程,其中實現(xiàn)測試構建的一個基本前提是構建必需與版本控制系統(tǒng)結合;對于缺陷管理系統(tǒng),在公知的技術中一般是一個相對獨立的系統(tǒng);對于項目管理系統(tǒng),在公知的技術中一般也是一個相對獨立的系統(tǒng)。
現(xiàn)有測試構建的過程,因為和缺陷管理系統(tǒng)是獨立進行的過程,這樣每當在測試構建中的測試程序發(fā)現(xiàn)缺陷時,這個缺陷需要另外記錄和管理,同時為了保證每次的測試構建只發(fā)現(xiàn)新問題,在原有的測試構建過程中需要手動使得已發(fā)現(xiàn)缺陷并且尚未修復的測試程序停止運行。當缺陷被修復后,缺陷的管理者會通知測試構建人員,再手動將那個發(fā)現(xiàn)缺陷的測試程序加入到下一次的測試構建中,下一次測試構建過程會進行對這個缺陷修復情況的驗證,如果還有問題就又需要重復如上的操作。
如上的流程都是手動的,對操作者來說,將會是非常繁重的工作。
同時,在現(xiàn)有的缺陷管理系統(tǒng)中,由于其是一個自封閉的系統(tǒng),只能記錄、跟蹤和管理被用戶手動填寫到系統(tǒng)中的缺陷,當缺陷被修復后,只能通過用戶來將這個缺陷修復的狀況報告出來,因此不能實現(xiàn)與測試構建過程的互動,不能自動導入測試構建中發(fā)現(xiàn)的問題,不能將修復的缺陷自動加入到測試構建過程中去驗證。
因此,現(xiàn)有技術中缺陷管理系統(tǒng)、項目管理系統(tǒng)與測試構建過程相對獨立的問題,使得自動測試過程和缺陷管理系統(tǒng)之間的信息共享和傳遞無法實現(xiàn),不能自動的解決軟件過程中發(fā)現(xiàn)的缺陷和驗證修復的缺陷,而且也不能自動實現(xiàn)測試程序和被測試對象的對應的問題。

發(fā)明內容
本發(fā)明的目的是克服了上述現(xiàn)有技術中的缺點,提供一種基于缺陷管理的自動化測試構建方法,該方法實現(xiàn)了測試構建和缺陷管理系統(tǒng)的集成,可以將測試構建過程中發(fā)現(xiàn)的問題自動導入到缺陷管理系統(tǒng)中,在下一次測試構建中,又可以將缺陷系統(tǒng)中經(jīng)過處理的數(shù)據(jù)導出,來自動驗證在上一次測試構建過程后修復的缺陷,實現(xiàn)測試構建過程發(fā)現(xiàn)缺陷和驗證修復缺陷的自動化。
本發(fā)明的另一個目的在于提供一種基于版本控制工具、結合缺陷管理系統(tǒng)和項目管理系統(tǒng)的自動化測試構建方法,該方法實現(xiàn)了項目管理系統(tǒng)和缺陷管理系統(tǒng)的結合,使得在項目管理系統(tǒng)中通過代碼的名字就可以自動訪問代碼在版本控制工具上的源文件,同時實現(xiàn)了項目管理系統(tǒng)和缺陷管理系統(tǒng)的結合,將測試程序和測試對象結合起來。
為了實現(xiàn)上述的目的,本發(fā)明的自動化測試構建方法如下該自動化測試構建方法,其主要特點是,該方法包括以下步驟(1)得到最新的被測試對象;(2)得到針對該被測試對象的最新測試程序及其相應的標準輸入信息和標準輸出信息;(3)從缺陷管理系統(tǒng)中得到運行出錯測試程序列表,并根據(jù)該運行出錯測試程序列表,在步驟(2)得到的最新測試程序中剔除相應的測試程序,生成運行測試程序列表;(4)根據(jù)步驟(3)生成的運行測試程序列表運行相應的測試程序,得到對應測試程序的運行輸出結果;(5)將步驟(4)中的測試程序的運行輸出結果與相應的標準輸出信息進行比較,如果運行輸出結果和標準輸出信息不一致,則記錄測試程序的名稱,生成原始出錯測試程序列表;(6)將步驟(5)生成的原始出錯測試程序列表導入缺陷管理系統(tǒng);(7)缺陷管理系統(tǒng)處理步驟(6)導入的信息,并生成本次測試構建報告;(8)缺陷管理系統(tǒng)將本次測試構建結果輸出;(9)根據(jù)缺陷修復的信息,對缺陷管理系統(tǒng)中相應的缺陷狀態(tài)進行修改;(10)在下一次測試構建過程開始時,缺陷管理系統(tǒng)生成新的運行出錯測試程序列表。
重復以上步驟(1)至步驟(10)。
該自動化測試構建方法中的得到最新的被測試對象,包括以下步驟(1)如果被測試對象是源代碼,則先獲取最新的源代碼,然后編譯該源代碼,生成被測試對象;(2)如果被測試對象是可以執(zhí)行的文件,則直接獲取這些文件。
該自動化測試構建方法中的得到針對該被測試對象的最新測試程序,包括以下步驟(1)如果測試程序為源代碼,則先獲取最新的測試代碼,然后編譯該測試代碼,生成測試程序;(2)如果測試程序是可以直接執(zhí)行的文件,則直接獲取該測試程序。
該自動化測試構建方法中的標準輸入信息為標準輸入文件形式。
該自動化測試構建方法中的標準輸出信息為標準輸出文件形式。
該自動化測試構建方法中的測試程序的運行輸出結果為運行輸出結果文件形式。
該自動化測試構建方法中的缺陷管理系統(tǒng)處理導入的原始出錯測試程序列表信息,包括以下步驟(1)根據(jù)原始出錯測試程序列表信息,缺陷管理系統(tǒng)在進行相應處理后給出提示信息,并將待處理的缺陷信息自動提交給用戶;(2)用戶根據(jù)該提示信息對待處理的缺陷信息進行處理。
該自動化測試構建方法中的缺陷管理系統(tǒng)在進行相應處理后給出提示信息,包括以下步驟(1)根據(jù)原始出錯測試程序列表信息在缺陷管理系統(tǒng)中進行查詢,如果該測試程序在缺陷管理系統(tǒng)中沒有記錄,則根據(jù)具體情況產(chǎn)生“該缺陷為一個新缺陷”的提示信息,或者產(chǎn)生“該缺陷為一種意外錯誤”的提示信息;(2)經(jīng)過查詢,如果該測試程序在缺陷管理系統(tǒng)中有記錄,則查詢其對應缺陷修復時間,如果該缺陷修復的時間是在上次測試構建之后,則根據(jù)具體情況產(chǎn)生“在上次測試構建以后修復的該缺陷可能沒有真正修復,修復驗證失敗,該缺陷需要被再次設置為未修復狀態(tài)”的提示信息,或者產(chǎn)生“該缺陷為該測試程序發(fā)現(xiàn)的新缺陷”的提示信息;(3)查詢其對應缺陷修復時間,如果該缺陷修復的時間是在上次測試構建之前,則根據(jù)具體情況產(chǎn)生“該缺陷是一個已經(jīng)發(fā)現(xiàn)的缺陷再次復發(fā)”的提示信息,并將與這個測試程序相關的缺陷內容提供給用戶,或者產(chǎn)生“該缺陷為該測試程序發(fā)現(xiàn)的新缺陷”的提示信息。
(4)對于在上次測試構建之后修復的缺陷沒有再次出現(xiàn)在原始出錯測試程序列表中的測試程序,缺陷管理系統(tǒng)產(chǎn)生“該缺陷已經(jīng)被成功修復”的提示信息。
該自動化測試構建方法中的用戶根據(jù)該提示信息對待處理的缺陷信息進行處理,包括以下步驟(1)如果該提示信息表明該缺陷為一個新缺陷,則用戶根據(jù)情況提交新的缺陷,并且缺陷管理系統(tǒng)自動將此缺陷和發(fā)現(xiàn)缺陷的測試程序名綁定;(2)如果該提示信息表明該缺陷未修復成功,則用戶將該已經(jīng)修復的缺陷狀態(tài)設置為未修復狀態(tài);(3)如果該提示信息表明該缺陷為再次復發(fā)的缺陷,則用戶將該已經(jīng)修復的缺陷狀態(tài)設置為復發(fā)狀態(tài);(4)如果該提示信息表明該缺陷已經(jīng)被成功修復,則用戶將保持該已經(jīng)修復的缺陷狀態(tài)不變。
該自動化測試構建方法中的測試構建報告包括本次測試構建新發(fā)現(xiàn)缺陷數(shù)量、正常修復缺陷的數(shù)量和復發(fā)缺陷的數(shù)量報告,新發(fā)現(xiàn)的缺陷名稱報告,正常修復的缺陷名稱報告,復發(fā)缺陷的名稱報告,本次測試構建中測試程序發(fā)現(xiàn)缺陷的數(shù)量和測試程序累計發(fā)現(xiàn)缺陷的數(shù)量的統(tǒng)計報告。
該自動化測試構建方法中的缺陷管理系統(tǒng)將本次測試構建結果輸出方式包括通過Email將測試構建結果信息發(fā)送給開發(fā)人員、提供一個固定的URL鏈接由開發(fā)人員訪問并獲取該測試構建結果。
該自動化測試構建方法中的根據(jù)缺陷修復的信息,對缺陷管理系統(tǒng)中相應的缺陷狀態(tài)進行修改,包括以下步驟(1)版本控制工具記錄開發(fā)人員提交的進行缺陷修復的代碼的文件名稱信息;(2)項目管理系統(tǒng)同時也記錄相應的開發(fā)人員提交的進行缺陷修復的代碼的文件名稱信息,并根據(jù)該信息建立缺陷修復記錄;(3)項目管理系統(tǒng)將該缺陷修復記錄與缺陷管理系統(tǒng)中的相應缺陷之間建立關聯(lián)關系;(4)缺陷管理系統(tǒng)根據(jù)項目管理系統(tǒng)的缺陷修復記錄的關聯(lián)信息將相應缺陷的狀態(tài)設置為已修復狀態(tài)。
該自動化測試構建方法中的將本次測試構建過程生成的原始出錯測試程序列表導入缺陷管理系統(tǒng)的步驟后還包括以下步驟(1)缺陷管理系統(tǒng)根據(jù)該原始出錯測試程序列表中的測試程序對應缺陷和以往發(fā)現(xiàn)過的該缺陷的歷史信息,在項目管理系統(tǒng)中通過所關聯(lián)的缺陷修復記錄定位與該缺陷相關的代碼文件;(2)在項目管理系統(tǒng)中根據(jù)該缺陷相關的代碼文件查詢上次測試構建以后的代碼提交記錄,確定相應的開發(fā)人員和記錄;(3)如果該缺陷是首次出現(xiàn),則建立該缺陷與所關聯(lián)的代碼文件之間的耦合度因子;如果該缺陷是重復出現(xiàn)的,則增加該缺陷與所關聯(lián)的代碼文件之間的耦合度因子的值。
該自動化測試構建方法中的缺陷管理系統(tǒng)生成的新的運行出錯測試程序列表中的測試程序為所有被上次測試構建過程發(fā)現(xiàn)的但還沒有被修復的缺陷所對應的測試程序和新導入該缺陷管理系統(tǒng)的但還未被用戶處理的缺陷所對應的測試程序。
該自動化測試構建方法中的用戶為構建負責人和缺陷管理系統(tǒng)的其他用戶。
采用了該發(fā)明的自動化測試構建方法,由于基于缺陷管理的測試構建過程是將缺陷管理和構建過程有機結合起來,使得缺陷的發(fā)現(xiàn)和修復后的驗證都能自動完成,提高了開發(fā)和測試的效率,節(jié)省了人員的工作投入;由于缺陷管理系統(tǒng)和項目管理系統(tǒng)也都是以源代碼管理為基礎,項目管理系統(tǒng)中的代碼文件名和缺陷管理系統(tǒng)中的測試文件名都可以自動鏈接到版本控制工具上的對應文件,保證了一個開發(fā)團隊共享統(tǒng)一的代碼源;由于測試構建過程的結果會直接導入到缺陷管理系統(tǒng)中,對于測試結果的細節(jié)可以完整的記錄下來,并對于后續(xù)的測試構建起到了指導作用,使得集成測試的效率大大提高;由于整個測試構建過程全部是自動進行的,沒有人為干預,同時缺陷管理系統(tǒng)和項目管理系統(tǒng)的結合,可以自動定位測試程序和測試對象,因此充分保證了執(zhí)行過程的可靠性和缺陷定位的準確性;同時,由于通過測試構建系統(tǒng)與缺陷管理系統(tǒng)的結合,可以將每次測試構建中發(fā)現(xiàn)的問題進行分析和統(tǒng)計,并通過柱形圖,坐標圖等方式顯示,為產(chǎn)品的質量提供可供參考的依據(jù)。


圖1為標準的測試構建過程模型流程圖。
圖2為本發(fā)明的基于缺陷管理的測試構建過程模型流程圖。
圖3為本發(fā)明的缺陷管理系統(tǒng)處理導入的原始出錯測試程序列表信息的流程圖。
圖4為本發(fā)明的項目管理系統(tǒng)根據(jù)缺陷修復自動更改缺陷管理系統(tǒng)中的缺陷狀態(tài)的流程圖。
圖5為本發(fā)明的版本控制工具、項目管理系統(tǒng)和缺陷管理系統(tǒng)結合共同建立測試程序與被測試對象的關聯(lián)關系的流程圖。
具體實施例方式
為了能夠更清楚地理解本發(fā)明的技術內容,特舉以下實施例詳細說明。
整個自動化測試構建方法全過程包含以下四個模塊的結合●版本控制工具●缺陷管理系統(tǒng)●項目管理系統(tǒng)●測試構建過程1.版本控制工具源代碼是開發(fā)過程的主要組成部分,通過版本控制工具來管理源代碼可以統(tǒng)一整個開發(fā)團隊的代碼源。在公知的技術中有很多的版本控制工具,都可以用來進行源代碼管理。這里所指的版本控制工具的必須要具備如下特征●可以進行文件的版本控制(用戶可以進行文件的檢入和檢出操作)●有基于命令行的工具可以自動進行文件的檢入和檢出2.缺陷管理系統(tǒng)缺陷管理系統(tǒng)的作用是記錄、跟蹤和管理軟件開發(fā)過程中發(fā)現(xiàn)的缺陷(Bug)。在公知的技術中有很多缺陷管理系統(tǒng)。想要實現(xiàn)自動化測試構建方法中的上述結合,缺陷管理系統(tǒng)必須增加如下特征●可以記錄和操作缺陷●缺陷必需具備狀態(tài)(修復的缺陷還是沒有修復的缺陷)、時間信息(修復時間)和缺陷修復負責人等信息●缺陷可以與相應的一個測試程序關聯(lián),缺陷可以由測試程序發(fā)現(xiàn)(但大多情況下,缺陷并不是通過測試程序發(fā)現(xiàn)的)3.項目管理系統(tǒng)項目管理系統(tǒng)可以將整個開發(fā)過程中的工作分解,同時開發(fā)過程中,開發(fā)人員對版本控制工具上文件的更改,必須在項目管理系統(tǒng)中進行記錄,通過訪問這些記錄中的文件名就可以自動訪問在版本控制工具上的代碼內容。在公知的技術中有很多項目管理工具。在本發(fā)明中實現(xiàn)的結合,項目管理系統(tǒng)必須要具備如下特征●項目管理系統(tǒng)中有工作劃分●項目管理系統(tǒng)中工作的實施過程有代碼的提交和記錄,提交的代碼可以和與版本控制工具結合,所有提交到版本控制工具上的文件,在項目管理系統(tǒng)中有Checkin記錄,一個記錄包括本次更改的文件有哪些(也就是說可以有多個文件,這多個文件是一批的,完成某個特定功能),實現(xiàn)什么樣的功能●缺陷修復也是對代碼的操作,在項目管理系統(tǒng)中提交記錄時可以自動更改缺陷狀態(tài)4.測試構建過程測試構建過程,也就是自動化測試過程,它是通過自動完成以下幾個關鍵步驟而實現(xiàn)的(1)獲取(或者生成)最新的被測試對象(產(chǎn)品)(2)獲取(或者生成)針對被測試對象的最新測試程序(該測試程序需要事先編寫好)(3)運行所有的測試程序(4)比較測試程序運行輸出的結果,如果輸出結果和預先給的標準輸出不一致,記錄測試程序的名稱(5)將發(fā)現(xiàn)問題的測試程序名輸出一個參加測試構建的測試程序除了具有一般應用程序的特點之外,還必須具備以下三個特征●測試程序需要提前被編寫
●測試程序在執(zhí)行時不需要用戶干預。在執(zhí)行過程中,不應要求用戶輸入信息后再繼續(xù)運行,否則就做不到自動化??紤]到這個特殊性,我們將用戶的輸入信息用文件形式來替代,這個文件定義為標準的輸入文件●測試程序在執(zhí)行之前,需要預先給定一個標準的輸出文件。這個文件內容就是在被測試對象沒有缺陷的情況下測試程序正常運行后的輸出結果,就類似一個標準答案,有了標準答案才能比較,才能知道每次測試程序運行后的輸出結果是否正確。
●每個測試程序的運行結果都必需輸出到一個文件中。一般程序的運行結果是直接輸出到屏幕的,這導致不能實現(xiàn)測試的自動化,我們定義這個記錄輸出結果信息的文件為測試程序運行的輸出結果文件。
在本發(fā)明中,基于源代碼版本控制工具結合項目管理系統(tǒng)和缺陷管理系統(tǒng)的測試構建過程的特點如下(1)測試構建過程可以通過腳本來控制,系統(tǒng)定時執(zhí)行,整個測試構建過程不需要用戶干預。
(2)每個參與測試構建的測試程序文件和標準輸出文件需要提前被編寫,有時可能還包括標準的輸入文件。
(3)測試構建需要有一個對比過程,比較每個測試程序的實際輸出和標準輸出的區(qū)別。
(4)修復的缺陷可以在下一次測試構建過程中自動得到驗證。
(5)每次測試構建發(fā)現(xiàn)的錯誤可以被及時記錄到缺陷管理系統(tǒng)中,發(fā)現(xiàn)問題的測試程序不會繼續(xù)參與下一次測試構建,保證每次測試構建都只會發(fā)現(xiàn)新錯誤。
(6)測試構建過程能夠自動生成測試構建過程報告。
下面結合附圖進一步說明對各應用范例進行詳細說明
1.標準的測試構建過程模型請參閱圖1所示,測試構建的開始是通過一個可以定時執(zhí)行的腳本來啟動,也可以手動執(zhí)行。在一些公知的操作系統(tǒng)中大部分都有系統(tǒng)定時器或者計劃任務的功能,允許可以在某個特定時間激活一個可以執(zhí)行的程序。
(1)開始測試構建(2)獲取最新的被測試對象(產(chǎn)品)●情況一被測試對象是源代碼■先獲取最新的源代碼■編譯源代碼,生成被測試對象●情況二被測試對象是可以執(zhí)行的文件■直接獲取這些可執(zhí)行文件(3)獲取最新的測試程序及其相應的標準輸入文件和標準輸出文件●情況一測試程序為源代碼■獲取最新的測試代碼■編譯測試代碼,生成測試程序●情況二測試程序可以直接執(zhí)行■直接獲取這些可執(zhí)行的測試程序(4)運行測試程序,根據(jù)運行測試程序列表逐一運行測試程序,得到每個測試程序的輸出結果(5)對比每個測試程序的輸出和標準輸出,如果不同,標識出錯(6)測試構建過程完成,輸出測試構建報告,報告記錄了所有發(fā)現(xiàn)問題的原始出錯測試程序列表。
2.基于缺陷管理的測試構建過程模型再請參閱圖2所示,該測試構建過程包括以下步驟(1)在生成測試程序清單之前,結合缺陷管理的測試構建過程和標準的構建過程沒有區(qū)別,都要執(zhí)行清理獲取最新的被測試對象、獲取最新的測試程序的操作;(2)在獲取了測試程序列表以后,基于缺陷管理的測試構建模型中增加了從缺陷管理系統(tǒng)中獲取以前記錄的運行出錯測試程序列表(這個列表中的測試程序是每次測試構建過程自動累計加入到缺陷管理系統(tǒng)中的)的步驟。將前面的測試程序列表中剔除從缺陷管理系統(tǒng)中獲取的運行出錯測試程序列表中的測試程序,就生成了本次測試構建過程中必需的運行測試程序列表;(3)根據(jù)運行測試程序列表運行相應的測試程序,繼續(xù)測試構建過程;(4)驗證每個測試程序的輸出,并將記錄的輸出結果文件與預先給的標準輸出文件進行比較,將其中結果不一致的測試程序名稱記錄下來,生成原始出錯測試程序列表;(5)將上述的原始出錯測試程序列表導入到缺陷管理系統(tǒng)中;(6)在缺陷管理系統(tǒng)中,自動處理上述導入的信息,生成本次的測試構建報告。
進行了上述操作步驟,缺陷管理系統(tǒng)就記錄了每次測試構建過程中運行出錯的測試程序名稱,這些測試程序將不會繼續(xù)在下一次測試構建過程中參加運行,這樣提高了測試構建的效率,也有利于測試構建過程發(fā)現(xiàn)新的缺陷。
通過將缺陷管理系統(tǒng)與測試構建過程的上述結合過程,每次發(fā)現(xiàn)缺陷的測試程序被缺陷管理系統(tǒng)記錄下來,在下一次測試構建過程中,被記錄的測試程序不參加運行,但缺陷管理系統(tǒng)還沒有對缺陷進行有效管理。不過這個測試構建過程已經(jīng)可以生成包括如下的內容的測試構建報告●新發(fā)現(xiàn)問題的測試程序名稱●出錯測試程序數(shù)量●對比以前的數(shù)量,生成對比統(tǒng)計圖再請參閱圖3所示,基于缺陷管理的測試構建過程模型中,在測試構建完成后,將原始出錯測試程序列表導入到在缺陷管理系統(tǒng)中,而在缺陷管理系統(tǒng)中,對于新導入的上述列表,統(tǒng)一進行如下處理(1)將本次新發(fā)現(xiàn)的測試程序問題,缺陷管理系統(tǒng)在進行相應處理后給出提示信息,并將待處理的缺陷信息自動提交給構建負責人進行處理。這種提示信息包括如下幾種情況●如果這個測試程序在缺陷管理系統(tǒng)中沒有記錄,則提示信息為■可能是將其確認為一個新缺陷■可能是一種意外錯誤●如果這個測試程序在缺陷管理系統(tǒng)中有記錄■如果缺陷修復的時間是在上次測試構建之后,則提示信息為◆可能在上次測試構建以后修復的缺陷可能沒有被真正修復,修復驗證失敗,該缺陷需要被重新設置為未修復狀態(tài)◆可能此測試程序發(fā)現(xiàn)的缺陷為新的缺陷■如果缺陷修復的時間是在上一次測試構建之前,則提示信息為◆可能是一個已經(jīng)發(fā)現(xiàn)的缺陷再次復發(fā),并將與這個測試程序相關的缺陷內容提供給構建負責人◆可能此測試程序發(fā)現(xiàn)的缺陷為新的缺陷●對于在上一次測試構建之后修復的缺陷沒有再次出現(xiàn)問題的測試程序(即沒有再次出現(xiàn)在原始出錯測試程序列表中的測試程序),系統(tǒng)將這些缺陷的名字提示給構建負責人,并提示說明這些缺陷已被成功修復。
(2)構建負責人對如上的提示信息進行處理,可能會有以下幾種操作●提交新的缺陷(系統(tǒng)自動將此缺陷和發(fā)現(xiàn)缺陷的測試程序名稱綁定)●將一個已經(jīng)修復的缺陷狀態(tài)設置為未修復狀態(tài)。
●將一個已經(jīng)修復的缺陷狀態(tài)設置為復發(fā)狀態(tài)。
(3)生成以下測試構建報告●本次測試構建新發(fā)現(xiàn)缺陷數(shù)量、正常修復缺陷的數(shù)量和復發(fā)缺陷的數(shù)量報告●新發(fā)現(xiàn)的缺陷名稱報告●正常修復的缺陷名稱報告●復發(fā)缺陷的名稱報告●統(tǒng)計測試程序發(fā)現(xiàn)缺陷的數(shù)量,可以包括本次的和累計的報告(4)將測試構建結果輸出,測試構建完成,這個輸出可以同時采用如下兩種方式●發(fā)送的方式。它一般是通過Email將如上信息發(fā)送給開發(fā)人員,可以保證信息的及時傳遞●讓開發(fā)人員取的方式,就是將一個固定的URL鏈接提供給開發(fā)人員訪問,讓他們來獲取輸出的結果信息(一般來說,這種方式是必需的,這次記錄可以做為系統(tǒng)日志保留,也可以用于和以后的測試構建結果進行比較)(5)在下一次測試構建過程開始時,缺陷管理系統(tǒng)會產(chǎn)生新的運行出錯測試程序列表,并將其輸出至測試構建過程,該列表中的測試程序為●所有發(fā)現(xiàn)缺陷但缺陷還沒有被修復的測試程序●新導入的但還未得到用戶處理的測試程序該基于缺陷管理的測試構建過程模型中,其用戶可以為構建負責人,也可以為缺陷管理系統(tǒng)中的其他用戶。
3.缺陷管理系統(tǒng)與項目管理系統(tǒng)結合的缺陷修復的自動驗證構建過程模型版本控制工具負責代碼的管理,軟件項目的重要工作內容是編寫和更改產(chǎn)品的代碼,代碼之間的關系不是完全孤立的,一組(一個或者多個)源代碼是用來實現(xiàn)或者完成一個功能,所以代碼的添加或者更改往往是批量進行的,這樣的更改對我們工作的記錄是有意義的,所以我們在更改了版本控制工具上的代碼的同時,將這些代碼還記錄在項目管理系統(tǒng)中,并要求提交者給出這批代碼提交的用途、完成什么樣的功能等相關信息。如上的說明闡述了兩件事情,一個記錄可以是包括多個代碼文件,另外一個是代碼的更改需要另外的系統(tǒng)記錄。
在如上結合的基礎上,進一步實現(xiàn)項目管理系統(tǒng)和缺陷管理系統(tǒng)的結合。首先,開發(fā)的最初階段只是添加代碼,這些代碼是為了實現(xiàn)一個一個功能,但這些代碼實現(xiàn)的功能可能存在不足,或者說已經(jīng)添加的代碼與預期的功能不相符,這就是所說的發(fā)現(xiàn)了缺陷,我們將這個缺陷記錄到缺陷管理系統(tǒng)中,這時缺陷管理系統(tǒng)會針對該缺陷給定一個唯一的編號,并提示要實現(xiàn)這個功能的開發(fā)人員進行缺陷的修復。之后開發(fā)人員進行修復缺陷的過程其實還是對代碼的操作,通過更改和刪除原來代碼,也可能是增加新的代碼來完成。完成后的操作又是一組代碼的提交(添加、更改和刪除都是提交),這個提交又被記錄在項目管理系統(tǒng)中,同時又要求提交人員記錄這次更改,這次的記錄方式和開始階段階段的工作幾乎相同,唯一的區(qū)別這次更改的目的是為了修復一個已經(jīng)存在的缺陷,因為每個缺陷有唯一的編號,所以這次記錄的提交會在提交的同時做另外一件事情,就是更改缺陷管理系統(tǒng)中這個編號所對應缺陷的狀態(tài),從未修復狀態(tài),轉為修復狀態(tài)。
再請參閱圖4所示,根據(jù)缺陷修復的信息,對缺陷管理系統(tǒng)中相應的缺陷狀態(tài)進行修改,需要包括以下步驟(1)版本控制工具記錄開發(fā)人員提交的進行缺陷修復的代碼的文件名稱信息;(2)項目管理系統(tǒng)同時也記錄相應的開發(fā)人員提交的進行缺陷修復的代碼的文件名稱信息,并根據(jù)該信息建立缺陷修復記錄;(3)項目管理系統(tǒng)將該缺陷修復記錄與缺陷管理系統(tǒng)中的相應缺陷之間建立關聯(lián)關系;(4)缺陷管理系統(tǒng)根據(jù)項目管理系統(tǒng)的缺陷修復記錄的關聯(lián)信息將相應缺陷的狀態(tài)設置為已修復狀態(tài)。
按照上述步驟實現(xiàn)了項目管理系統(tǒng)和缺陷管理系統(tǒng)的結合后,記錄提交就可以自動更改缺陷的狀態(tài),但這次更改是否有效,還需要對這此更改進行驗證。而此時測試構建恰恰可以進行這個驗證,測試構建在開始時先將修復的缺陷所對應的測試程序加入到本次測試構建中,在測試構建過程中檢查這個測試程序的運行結果是否正確,如果正確,則提示信息為這次缺陷修復是正確的;如果不正確,提示信息為這此修復工作可能失敗。這里說的提示信息只將這種情況作為最大的可能性提交給用戶處理,而不是自動將上次修復的缺陷自動從修復狀態(tài)轉為未修復狀態(tài),因為我們要考慮到這個測試程序在這次測試構建中可能發(fā)現(xiàn)了新的錯誤,所以狀態(tài)的更改是需要在用戶確認后才能進行的。
4.缺陷關聯(lián)和項目管理系統(tǒng)結合的測試構建過程模型測試一般分為兩個部分,測試程序和被測試對象,對于來說測試程序一般是比較確定的,但測試對象大多數(shù)是不能確定的,通過如上某個缺陷的編號和某批提交的代碼關聯(lián),加之測試程序與缺陷的關聯(lián),就實現(xiàn)了測試程序和某批提交的代碼關聯(lián),也就實現(xiàn)了測試程序和被測試對象的關聯(lián)。
再請參閱圖5所示,在項目管理系統(tǒng)和缺陷管理系統(tǒng)之間建立測試程序與被測試對象的關聯(lián)包括以下步驟(1)缺陷管理系統(tǒng)根據(jù)該原始出錯測試程序列表中的測試程序對應缺陷和以往發(fā)現(xiàn)過的該缺陷的歷史信息,在項目管理系統(tǒng)中通過所關聯(lián)的缺陷修復記錄定位與該缺陷相關的代碼文件;(2)在項目管理系統(tǒng)中根據(jù)該缺陷相關的代碼文件查詢上次測試構建以后的代碼提交記錄,確定相應的開發(fā)人員和記錄;(3)如果該缺陷是首次出現(xiàn),則建立該缺陷與所關聯(lián)的代碼文件之間的耦合度因子;如果該缺陷是重復出現(xiàn)的,則增加該缺陷與所關聯(lián)的代碼文件之間的耦合度因子的值。
按照上述步驟建立的關聯(lián),可能這個關聯(lián)不是非常清晰的一對一關系,但可以做為一種依據(jù)。當一個測試程序在新的測試構建中再次發(fā)現(xiàn)問題,并被記錄到缺陷管理系統(tǒng)時,缺陷管理系統(tǒng)會根據(jù)這個缺陷以往發(fā)現(xiàn)過缺陷的歷史,定位與之相關的代碼文件,在項目管理系統(tǒng)中查詢上次測試構建以后的代碼提交記錄,就可以初步確定缺陷引入的人員和記錄,從而可以自動給出是誰在哪一次的代碼提交時引入這個缺陷的提示。另外每次的確認過程可以用來更改耦合度因子,在某個缺陷重復出現(xiàn)時增加相應的耦合度因子的值,使得重新出現(xiàn)的缺陷能自動的在項目管理系統(tǒng)中被標識和定位。
此過程模型將項目管理和缺陷管理結合起來,使得項目在開發(fā)中的代碼記錄在版本控制工具中,并同時在項目系統(tǒng)中記錄這些代碼的名字,在項目管理系統(tǒng)中通過代碼的名字就可以自動訪問代碼在版本控制工具上的源文件。項目管理和缺陷管理的結合,可以將項目中的缺陷記錄在缺陷管理系統(tǒng)中,在項目管理系統(tǒng)中對與某個缺陷修復提交的記錄就會自動轉化為修復缺陷系統(tǒng)的特定缺陷記錄,并且這個過程可以自動完成的。此外,由于這個缺陷是在測試構建過程中的某個測試程序發(fā)現(xiàn)的,所以這種結合就可以將測試程序和測試對象(修復缺陷的一組代碼)結合起來。
實現(xiàn)如上的測試構建過程的方法,除了項目管理系統(tǒng)和缺陷管理系統(tǒng)結合,還需要一些腳本文件的支持●從版本控制工具中獲取最新的代碼執(zhí)行腳本●自動編譯腳本●從缺陷系統(tǒng)中獲取不參加本次構建的測試程序清單執(zhí)行腳本●將構建后的測試程序清單和構建日志寫入到缺陷管理系統(tǒng)執(zhí)行腳本●自動處理缺陷系統(tǒng)中的信息并進行與前一次構建對比匯總腳本●自動Email發(fā)送腳本采用本發(fā)明的基于缺陷管理的自動化測試構建過程方法具有如下的優(yōu)點
1.統(tǒng)一代碼源保證整個開發(fā)團隊共享統(tǒng)一的代碼源,將所有人的代碼都歸總到一起,這是測試構建的基礎,缺陷管理和項目管理也都是以源代碼管理為基礎,項目管理系統(tǒng)中的代碼文件名和缺陷管理系統(tǒng)中的測試文件名都可以自動鏈接到版本控制工具的對應文件上。
2.有利于集成測試測試應該全部執(zhí)行完畢,而不是遇到測試運行的錯誤就放棄測試過程。測試結果中包括有成功的測試信息、失敗的測試信息和失敗的測試的細節(jié)信息。最后的結果將通過某種方式通知給相應的開發(fā)人員,要求他們修改設計或測試(如果是測試本身的問題的話)。
3.提高發(fā)現(xiàn)缺陷的效率和工作效率如果測試構建是每日執(zhí)行(日構建),可以在最快的時間發(fā)現(xiàn)當日提交的代碼更改產(chǎn)生的缺陷,早發(fā)現(xiàn)早清除,可以大大提高產(chǎn)品的效率。另外修復的缺陷可以在下一次測試構建過程中自動得到驗證,免去了驗證過程的工作量。
4.保證執(zhí)行過程的準確性整個測試構建過程全部是自動進行的,沒有人為干預,充分保證了執(zhí)行過程的可靠性和準確性。同時缺陷管理和項目管理結合,可以測試程序和測試對象進行自動定位。
5.對比每次構建結果,保證產(chǎn)品質量通過與缺陷管理系統(tǒng)的結合,可以自動記錄每次測試構建中發(fā)現(xiàn)的問題,而缺陷管理系統(tǒng)可以對此進行分析和統(tǒng)計,通過柱形圖,坐標圖等方式將結果顯示出來,為產(chǎn)品的質量提供可供參考的依據(jù)。
在此說明書中,本發(fā)明已參照其特定的實施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說明書和附圖應被認為是說明性的而非限制性的。
權利要求
1.一種自動化測試構建方法,其特征在于,所述的自動化測試構建方法包括以下步驟(1)得到最新的被測試對象;(2)得到針對該被測試對象的最新測試程序及其相應的標準輸入信息和標準輸出信息;(3)從缺陷管理系統(tǒng)中得到運行出錯測試程序列表,并根據(jù)該運行出錯測試程序列表,在步驟(2)得到的最新測試程序中剔除相應的測試程序,生成運行測試程序列表;(4)根據(jù)步驟(3)生成的運行測試程序列表運行相應的測試程序,得到對應測試程序的運行輸出結果;(5)將步驟(4)中的測試程序的運行輸出結果與相應的標準輸出信息進行比較,如果運行輸出結果和標準輸出信息不一致,則記錄測試程序的名稱,生成原始出錯測試程序列表;(6)將步驟(5)生成的原始出錯測試程序列表導入缺陷管理系統(tǒng);(7)缺陷管理系統(tǒng)處理步驟(6)導入的信息,并生成本次測試構建報告;(8)缺陷管理系統(tǒng)將本次測試構建結果輸出;(9)根據(jù)缺陷修復的信息,對缺陷管理系統(tǒng)中相應的缺陷狀態(tài)進行修改;(10)在下一次測試構建過程開始時,缺陷管理系統(tǒng)生成新的運行出錯測試程序列表。
2.根據(jù)權利要求1所述的自動化測試構建方法,其特征在于,所述的得到最新的被測試對象,包括以下步驟(1)如果被測試對象是源代碼,則先獲取最新的源代碼,然后編譯該源代碼,生成被測試對象;(2)如果被測試對象是可以執(zhí)行的文件,則直接獲取這些文件。
3.根據(jù)權利要求1所述的自動化測試構建方法,其特征在于,所述的得到針對該被測試對象的最新測試程序,包括以下步驟(1)如果測試程序為源代碼,則先獲取最新的測試代碼,然后編譯該測試代碼,生成測試程序;(2)如果測試程序是可以直接執(zhí)行的文件,則直接獲取該測試程序。
4.根據(jù)權利要求1所述的自動化測試構建方法,其特征在于,所述的標準輸入信息為標準輸入文件形式。
5.根據(jù)權利要求1所述的自動化測試構建方法,其特征在于,所述的標準輸出信息為標準輸出文件形式。
6.根據(jù)權利要求1所述的自動化測試構建方法,其特征在于,所述的測試程序的運行輸出結果為運行輸出結果文件形式。
7.根據(jù)權利要求1所述的自動化測試構建方法,其特征在于,所述的缺陷管理系統(tǒng)處理導入的原始出錯測試程序列表信息,包括以下步驟(1)根據(jù)原始出錯測試程序列表信息,缺陷管理系統(tǒng)在進行相應處理后給出提示信息,并將待處理的缺陷信息自動提交給用戶;(2)用戶根據(jù)該提示信息對待處理的缺陷信息進行處理。
8.根據(jù)權利要求7所述的自動化測試構建方法,其特征在于,所述的缺陷管理系統(tǒng)在進行相應處理后給出提示信息,包括以下步驟(1)根據(jù)原始出錯測試程序列表信息在缺陷管理系統(tǒng)中進行查詢,如果該測試程序在缺陷管理系統(tǒng)中沒有記錄,則根據(jù)具體情況產(chǎn)生“該缺陷為一個新缺陷”的提示信息,或者產(chǎn)生“該缺陷為一種意外錯誤”的提示信息;(2)經(jīng)過查詢,如果該測試程序在缺陷管理系統(tǒng)中有記錄,則查詢其對應缺陷修復時間,如果該缺陷修復的時間是在上次測試構建之后,則根據(jù)具體情況產(chǎn)生“在上次測試構建以后修復的該缺陷可能沒有真正修復,修復驗證失敗,該缺陷需要被再次設置為未修復狀態(tài)”的提示信息,或者產(chǎn)生“該缺陷為該測試程序發(fā)現(xiàn)的新缺陷”的提示信息;(3)查詢其對應缺陷修復時間,如果該缺陷修復的時間是在上次測試構建之前,則根據(jù)具體情況產(chǎn)生“該缺陷是一個已經(jīng)發(fā)現(xiàn)的缺陷再次復發(fā)”的提示信息,并將與這個測試程序相關的缺陷內容提供給用戶,或者產(chǎn)生“該缺陷為該測試程序發(fā)現(xiàn)的新缺陷”的提示信息。(4)對于在上次測試構建之后修復的缺陷沒有再次出現(xiàn)在原始出錯測試程序列表中的測試程序,缺陷管理系統(tǒng)產(chǎn)生“該缺陷已經(jīng)被成功修復”的提示信息。
9.根據(jù)權利要求8所述的自動化測試構建方法,其特征在于,所述的用戶根據(jù)該提示信息對待處理的缺陷信息進行處理,包括以下步驟(1)如果該提示信息表明該缺陷為一個新缺陷,則用戶根據(jù)情況提交新的缺陷,并且缺陷管理系統(tǒng)自動將此缺陷和發(fā)現(xiàn)缺陷的測試程序名綁定;(2)如果該提示信息表明該缺陷未修復成功,則用戶將該已經(jīng)修復的缺陷狀態(tài)設置為未修復狀態(tài);(3)如果該提示信息表明該缺陷為再次復發(fā)的缺陷,則用戶將該已經(jīng)修復的缺陷狀態(tài)設置為復發(fā)狀態(tài);(4)如果該提示信息表明該缺陷已經(jīng)被成功修復,則用戶將保持該已經(jīng)修復的缺陷狀態(tài)不變。
10.根據(jù)權利要求7、8或9所述的自動化測試構建方法,其特征在于,所述的用戶為構建負責人和缺陷管理系統(tǒng)的其他用戶。
11.根據(jù)權利要求1所述的自動化測試構建方法,其特征在于,所述的測試構建報告包括本次測試構建新發(fā)現(xiàn)缺陷數(shù)量、正常修復缺陷的數(shù)量和復發(fā)缺陷的數(shù)量報告,新發(fā)現(xiàn)的缺陷名稱報告,正常修復的缺陷名稱報告,復發(fā)缺陷的名稱報告,本次測試構建中測試程序發(fā)現(xiàn)缺陷的數(shù)量和測試程序累計發(fā)現(xiàn)缺陷的數(shù)量的統(tǒng)計報告。
12.根據(jù)權利要求1所述的自動化測試構建方法,其特征在于,所述的缺陷管理系統(tǒng)將本次測試構建結果輸出方式包括通過Email將測試構建結果信息發(fā)送給開發(fā)人員、提供一個固定的URL鏈接由開發(fā)人員訪問并獲取該測試構建結果。
13.根據(jù)權利要求1所述的自動化測試構建方法,其特征在于,所述的根據(jù)缺陷修復的信息,對缺陷管理系統(tǒng)中相應的缺陷狀態(tài)進行修改,包括以下步驟(1)版本控制工具記錄開發(fā)人員提交的進行缺陷修復的代碼的文件名稱信息;(2)項目管理系統(tǒng)同時也記錄相應的開發(fā)人員提交的進行缺陷修復的代碼的文件名稱信息,并根據(jù)該信息建立缺陷修復記錄;(3)項目管理系統(tǒng)將該缺陷修復記錄與缺陷管理系統(tǒng)中的相應缺陷之間建立關聯(lián)關系;(4)缺陷管理系統(tǒng)根據(jù)項目管理系統(tǒng)的缺陷修復記錄的關聯(lián)信息將相應缺陷的狀態(tài)設置為已修復狀態(tài)。
14.根據(jù)權利要求13所述的自動化測試構建方法,其特征在于,所述的將本次測試構建過程生成的原始出錯測試程序列表導入缺陷管理系統(tǒng)的步驟后還包括以下步驟(1)缺陷管理系統(tǒng)根據(jù)該原始出錯測試程序列表中的測試程序對應缺陷和以往發(fā)現(xiàn)過的該缺陷的歷史信息,在項目管理系統(tǒng)中通過所關聯(lián)的缺陷修復記錄定位與該缺陷相關的代碼文件;(2)在項目管理系統(tǒng)中根據(jù)該缺陷相關的代碼文件查詢上次測試構建以后的代碼提交記錄,確定相應的開發(fā)人員和記錄;(3)如果該缺陷是首次出現(xiàn),則建立該缺陷與所關聯(lián)的代碼文件之間的耦合度因子;如果該缺陷是重復出現(xiàn)的,則增加該缺陷與所關聯(lián)的代碼文件之間的耦合度因子的值。
15.根據(jù)權利要求1所述的自動化測試構建方法,其特征在于,所述的缺陷管理系統(tǒng)生成的新的運行出錯測試程序列表中的測試程序為所有被上次測試構建過程發(fā)現(xiàn)的但還沒有被修復的缺陷所對應的測試程序和新導入該缺陷管理系統(tǒng)的但還未被用戶處理的缺陷所對應的測試程序。
16.根據(jù)權利要求15所述的自動化測試構建方法,其特征在于,所述的用戶為構建負責人和缺陷管理系統(tǒng)的其他用戶。
全文摘要
本發(fā)明涉及一種自動化測試構建方法,其中,該方法包括得到最新的被測試對象、得到最新測試程序、生成運行測試程序列表、運行相應的測試程序得到運行輸出結果、生成原始出錯測試程序列表、將該出錯測試程序列表導入缺陷管理系統(tǒng)、生成測試構建報告并將測試結果輸出、對相應的缺陷狀態(tài)進行修改、在下一次測試構建過程開始時生成新的運行出錯測試程序列表的步驟。采用以上步驟的自動化測試構建方法,使得缺陷的發(fā)現(xiàn)和修復后的驗證都能自動完成,提高了開發(fā)和測試的效率,保證了一個開發(fā)團隊共享統(tǒng)一的代碼源,使得集成測試的效率大大提高,保證了執(zhí)行過程的可靠性和缺陷定位的準確性,同時為產(chǎn)品的質量提供可供參考的依據(jù)。
文檔編號G06F11/36GK1648872SQ20041008920
公開日2005年8月3日 申請日期2004年12月8日 優(yōu)先權日2004年12月8日
發(fā)明者吳季風, 張軍, 熊桂平, 陳榕 申請人:上??铺┦兰o科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
潮州市| 榆社县| 满洲里市| 洪湖市| 民勤县| 凤城市| 灵川县| 盘山县| 泸西县| 新乡市| 三都| 泗洪县| 莱阳市| 碌曲县| 安仁县| 右玉县| 奉化市| 营口市| 徐闻县| 广西| 攀枝花市| 阿拉善左旗| 五台县| 张北县| 和平县| 犍为县| 大方县| 扎兰屯市| 双辽市| 嘉定区| 丹棱县| 会昌县| 章丘市| 扎兰屯市| 会昌县| 方山县| 达尔| 浦城县| 渭南市| 同仁县| 广安市|