專利名稱:自動(dòng)化測(cè)試構(gòu)建方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及計(jì)算機(jī)環(huán)境中運(yùn)行的軟件管理過程領(lǐng)域,具體是指一種自動(dòng)化測(cè)試構(gòu)建方法。
背景技術(shù):
測(cè)試構(gòu)建是通過自動(dòng)化的方式進(jìn)行軟件的測(cè)試。如果這個(gè)構(gòu)建過程是每日?qǐng)?zhí)行一次就是日構(gòu)建(Daily Build)或者叫做每日集成,如果是每日多次就叫做持續(xù)集成。
一般的軟件開發(fā)流程通常是,一個(gè)項(xiàng)目被分解后分配任務(wù),由不同的人負(fù)責(zé)不同的軟件部件,在開發(fā)完成之后,再把各人的部件整合起來,形成完整的軟件,但是這種做法在實(shí)踐中卻有很多問題。
首先,這種方式適合開發(fā)人員之間工作彼此沒有交集的情況,以前這種現(xiàn)象很常見,但是現(xiàn)在,隨著軟件規(guī)模的擴(kuò)大、分工合作的加深,開發(fā)人員間的相互依賴程度越來越高,這種清晰的職責(zé)劃分已經(jīng)變得越來越難了。
其次,在軟件集成時(shí),往往會(huì)出現(xiàn)各種各樣的問題,可是卻很難發(fā)現(xiàn)到底問題在哪里。似乎每個(gè)人的代碼都沒有問題,但結(jié)合到一起就出現(xiàn)大量的問題。
所以日構(gòu)建就將平時(shí)難得一見的集成工作轉(zhuǎn)換成頻繁進(jìn)行的一件工作,從而使得復(fù)雜的集成變成了一件簡單的工作。通過以天集成,排除缺陷(Bug)就變成一件很容易的事情了。
測(cè)試構(gòu)建的目的是為了發(fā)現(xiàn)缺陷,并可以在以后的測(cè)試構(gòu)建中驗(yàn)證修復(fù)的缺陷。在現(xiàn)有技術(shù)中,關(guān)于測(cè)試構(gòu)建過程、缺陷管理等都有記載,但這幾個(gè)部分在現(xiàn)有技術(shù)中都相對(duì)獨(dú)立集成。測(cè)試構(gòu)建技術(shù)是軟件質(zhì)量保證的一個(gè)重要部分,是對(duì)產(chǎn)品的自動(dòng)測(cè)試過程。在公知的技術(shù)中有關(guān)于測(cè)試構(gòu)建的知識(shí)和有關(guān)于測(cè)試構(gòu)建過程的流程,其中實(shí)現(xiàn)測(cè)試構(gòu)建的一個(gè)基本前提是構(gòu)建必需與版本控制系統(tǒng)結(jié)合;對(duì)于缺陷管理系統(tǒng),在公知的技術(shù)中一般是一個(gè)相對(duì)獨(dú)立的系統(tǒng);對(duì)于項(xiàng)目管理系統(tǒng),在公知的技術(shù)中一般也是一個(gè)相對(duì)獨(dú)立的系統(tǒng)。
現(xiàn)有測(cè)試構(gòu)建的過程,因?yàn)楹腿毕莨芾硐到y(tǒng)是獨(dú)立進(jìn)行的過程,這樣每當(dāng)在測(cè)試構(gòu)建中的測(cè)試程序發(fā)現(xiàn)缺陷時(shí),這個(gè)缺陷需要另外記錄和管理,同時(shí)為了保證每次的測(cè)試構(gòu)建只發(fā)現(xiàn)新問題,在原有的測(cè)試構(gòu)建過程中需要手動(dòng)使得已發(fā)現(xiàn)缺陷并且尚未修復(fù)的測(cè)試程序停止運(yùn)行。當(dāng)缺陷被修復(fù)后,缺陷的管理者會(huì)通知測(cè)試構(gòu)建人員,再手動(dòng)將那個(gè)發(fā)現(xiàn)缺陷的測(cè)試程序加入到下一次的測(cè)試構(gòu)建中,下一次測(cè)試構(gòu)建過程會(huì)進(jìn)行對(duì)這個(gè)缺陷修復(fù)情況的驗(yàn)證,如果還有問題就又需要重復(fù)如上的操作。
如上的流程都是手動(dòng)的,對(duì)操作者來說,將會(huì)是非常繁重的工作。
同時(shí),在現(xiàn)有的缺陷管理系統(tǒng)中,由于其是一個(gè)自封閉的系統(tǒng),只能記錄、跟蹤和管理被用戶手動(dòng)填寫到系統(tǒng)中的缺陷,當(dāng)缺陷被修復(fù)后,只能通過用戶來將這個(gè)缺陷修復(fù)的狀況報(bào)告出來,因此不能實(shí)現(xiàn)與測(cè)試構(gòu)建過程的互動(dòng),不能自動(dòng)導(dǎo)入測(cè)試構(gòu)建中發(fā)現(xiàn)的問題,不能將修復(fù)的缺陷自動(dòng)加入到測(cè)試構(gòu)建過程中去驗(yàn)證。
因此,現(xiàn)有技術(shù)中缺陷管理系統(tǒng)、項(xiàng)目管理系統(tǒng)與測(cè)試構(gòu)建過程相對(duì)獨(dú)立的問題,使得自動(dòng)測(cè)試過程和缺陷管理系統(tǒng)之間的信息共享和傳遞無法實(shí)現(xiàn),不能自動(dòng)的解決軟件過程中發(fā)現(xiàn)的缺陷和驗(yàn)證修復(fù)的缺陷,而且也不能自動(dòng)實(shí)現(xiàn)測(cè)試程序和被測(cè)試對(duì)象的對(duì)應(yīng)的問題。
發(fā)明內(nèi)容
本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)中的缺點(diǎn),提供一種基于缺陷管理的自動(dòng)化測(cè)試構(gòu)建方法,該方法實(shí)現(xiàn)了測(cè)試構(gòu)建和缺陷管理系統(tǒng)的集成,可以將測(cè)試構(gòu)建過程中發(fā)現(xiàn)的問題自動(dòng)導(dǎo)入到缺陷管理系統(tǒng)中,在下一次測(cè)試構(gòu)建中,又可以將缺陷系統(tǒng)中經(jīng)過處理的數(shù)據(jù)導(dǎo)出,來自動(dòng)驗(yàn)證在上一次測(cè)試構(gòu)建過程后修復(fù)的缺陷,實(shí)現(xiàn)測(cè)試構(gòu)建過程發(fā)現(xiàn)缺陷和驗(yàn)證修復(fù)缺陷的自動(dòng)化。
本發(fā)明的另一個(gè)目的在于提供一種基于版本控制工具、結(jié)合缺陷管理系統(tǒng)和項(xiàng)目管理系統(tǒng)的自動(dòng)化測(cè)試構(gòu)建方法,該方法實(shí)現(xiàn)了項(xiàng)目管理系統(tǒng)和缺陷管理系統(tǒng)的結(jié)合,使得在項(xiàng)目管理系統(tǒng)中通過代碼的名字就可以自動(dòng)訪問代碼在版本控制工具上的源文件,同時(shí)實(shí)現(xiàn)了項(xiàng)目管理系統(tǒng)和缺陷管理系統(tǒng)的結(jié)合,將測(cè)試程序和測(cè)試對(duì)象結(jié)合起來。
為了實(shí)現(xiàn)上述的目的,本發(fā)明的自動(dòng)化測(cè)試構(gòu)建方法如下該自動(dòng)化測(cè)試構(gòu)建方法,其主要特點(diǎn)是,該方法包括以下步驟(1)得到最新的被測(cè)試對(duì)象;(2)得到針對(duì)該被測(cè)試對(duì)象的最新測(cè)試程序及其相應(yīng)的標(biāo)準(zhǔn)輸入信息和標(biāo)準(zhǔn)輸出信息;(3)從缺陷管理系統(tǒng)中得到運(yùn)行出錯(cuò)測(cè)試程序列表,并根據(jù)該運(yùn)行出錯(cuò)測(cè)試程序列表,在步驟(2)得到的最新測(cè)試程序中剔除相應(yīng)的測(cè)試程序,生成運(yùn)行測(cè)試程序列表;(4)根據(jù)步驟(3)生成的運(yùn)行測(cè)試程序列表運(yùn)行相應(yīng)的測(cè)試程序,得到對(duì)應(yīng)測(cè)試程序的運(yùn)行輸出結(jié)果;(5)將步驟(4)中的測(cè)試程序的運(yùn)行輸出結(jié)果與相應(yīng)的標(biāo)準(zhǔn)輸出信息進(jìn)行比較,如果運(yùn)行輸出結(jié)果和標(biāo)準(zhǔn)輸出信息不一致,則記錄測(cè)試程序的名稱,生成原始出錯(cuò)測(cè)試程序列表;(6)將步驟(5)生成的原始出錯(cuò)測(cè)試程序列表導(dǎo)入缺陷管理系統(tǒng);(7)缺陷管理系統(tǒng)處理步驟(6)導(dǎo)入的信息,并生成本次測(cè)試構(gòu)建報(bào)告;(8)缺陷管理系統(tǒng)將本次測(cè)試構(gòu)建結(jié)果輸出;(9)根據(jù)缺陷修復(fù)的信息,對(duì)缺陷管理系統(tǒng)中相應(yīng)的缺陷狀態(tài)進(jìn)行修改;(10)在下一次測(cè)試構(gòu)建過程開始時(shí),缺陷管理系統(tǒng)生成新的運(yùn)行出錯(cuò)測(cè)試程序列表。
重復(fù)以上步驟(1)至步驟(10)。
該自動(dòng)化測(cè)試構(gòu)建方法中的得到最新的被測(cè)試對(duì)象,包括以下步驟(1)如果被測(cè)試對(duì)象是源代碼,則先獲取最新的源代碼,然后編譯該源代碼,生成被測(cè)試對(duì)象;(2)如果被測(cè)試對(duì)象是可以執(zhí)行的文件,則直接獲取這些文件。
該自動(dòng)化測(cè)試構(gòu)建方法中的得到針對(duì)該被測(cè)試對(duì)象的最新測(cè)試程序,包括以下步驟(1)如果測(cè)試程序?yàn)樵创a,則先獲取最新的測(cè)試代碼,然后編譯該測(cè)試代碼,生成測(cè)試程序;(2)如果測(cè)試程序是可以直接執(zhí)行的文件,則直接獲取該測(cè)試程序。
該自動(dòng)化測(cè)試構(gòu)建方法中的標(biāo)準(zhǔn)輸入信息為標(biāo)準(zhǔn)輸入文件形式。
該自動(dòng)化測(cè)試構(gòu)建方法中的標(biāo)準(zhǔn)輸出信息為標(biāo)準(zhǔn)輸出文件形式。
該自動(dòng)化測(cè)試構(gòu)建方法中的測(cè)試程序的運(yùn)行輸出結(jié)果為運(yùn)行輸出結(jié)果文件形式。
該自動(dòng)化測(cè)試構(gòu)建方法中的缺陷管理系統(tǒng)處理導(dǎo)入的原始出錯(cuò)測(cè)試程序列表信息,包括以下步驟(1)根據(jù)原始出錯(cuò)測(cè)試程序列表信息,缺陷管理系統(tǒng)在進(jìn)行相應(yīng)處理后給出提示信息,并將待處理的缺陷信息自動(dòng)提交給用戶;(2)用戶根據(jù)該提示信息對(duì)待處理的缺陷信息進(jìn)行處理。
該自動(dòng)化測(cè)試構(gòu)建方法中的缺陷管理系統(tǒng)在進(jìn)行相應(yīng)處理后給出提示信息,包括以下步驟(1)根據(jù)原始出錯(cuò)測(cè)試程序列表信息在缺陷管理系統(tǒng)中進(jìn)行查詢,如果該測(cè)試程序在缺陷管理系統(tǒng)中沒有記錄,則根據(jù)具體情況產(chǎn)生“該缺陷為一個(gè)新缺陷”的提示信息,或者產(chǎn)生“該缺陷為一種意外錯(cuò)誤”的提示信息;(2)經(jīng)過查詢,如果該測(cè)試程序在缺陷管理系統(tǒng)中有記錄,則查詢其對(duì)應(yīng)缺陷修復(fù)時(shí)間,如果該缺陷修復(fù)的時(shí)間是在上次測(cè)試構(gòu)建之后,則根據(jù)具體情況產(chǎn)生“在上次測(cè)試構(gòu)建以后修復(fù)的該缺陷可能沒有真正修復(fù),修復(fù)驗(yàn)證失敗,該缺陷需要被再次設(shè)置為未修復(fù)狀態(tài)”的提示信息,或者產(chǎn)生“該缺陷為該測(cè)試程序發(fā)現(xiàn)的新缺陷”的提示信息;(3)查詢其對(duì)應(yīng)缺陷修復(fù)時(shí)間,如果該缺陷修復(fù)的時(shí)間是在上次測(cè)試構(gòu)建之前,則根據(jù)具體情況產(chǎn)生“該缺陷是一個(gè)已經(jīng)發(fā)現(xiàn)的缺陷再次復(fù)發(fā)”的提示信息,并將與這個(gè)測(cè)試程序相關(guān)的缺陷內(nèi)容提供給用戶,或者產(chǎn)生“該缺陷為該測(cè)試程序發(fā)現(xiàn)的新缺陷”的提示信息。
(4)對(duì)于在上次測(cè)試構(gòu)建之后修復(fù)的缺陷沒有再次出現(xiàn)在原始出錯(cuò)測(cè)試程序列表中的測(cè)試程序,缺陷管理系統(tǒng)產(chǎn)生“該缺陷已經(jīng)被成功修復(fù)”的提示信息。
該自動(dòng)化測(cè)試構(gòu)建方法中的用戶根據(jù)該提示信息對(duì)待處理的缺陷信息進(jìn)行處理,包括以下步驟(1)如果該提示信息表明該缺陷為一個(gè)新缺陷,則用戶根據(jù)情況提交新的缺陷,并且缺陷管理系統(tǒng)自動(dòng)將此缺陷和發(fā)現(xiàn)缺陷的測(cè)試程序名綁定;(2)如果該提示信息表明該缺陷未修復(fù)成功,則用戶將該已經(jīng)修復(fù)的缺陷狀態(tài)設(shè)置為未修復(fù)狀態(tài);(3)如果該提示信息表明該缺陷為再次復(fù)發(fā)的缺陷,則用戶將該已經(jīng)修復(fù)的缺陷狀態(tài)設(shè)置為復(fù)發(fā)狀態(tài);(4)如果該提示信息表明該缺陷已經(jīng)被成功修復(fù),則用戶將保持該已經(jīng)修復(fù)的缺陷狀態(tài)不變。
該自動(dòng)化測(cè)試構(gòu)建方法中的測(cè)試構(gòu)建報(bào)告包括本次測(cè)試構(gòu)建新發(fā)現(xiàn)缺陷數(shù)量、正常修復(fù)缺陷的數(shù)量和復(fù)發(fā)缺陷的數(shù)量報(bào)告,新發(fā)現(xiàn)的缺陷名稱報(bào)告,正常修復(fù)的缺陷名稱報(bào)告,復(fù)發(fā)缺陷的名稱報(bào)告,本次測(cè)試構(gòu)建中測(cè)試程序發(fā)現(xiàn)缺陷的數(shù)量和測(cè)試程序累計(jì)發(fā)現(xiàn)缺陷的數(shù)量的統(tǒng)計(jì)報(bào)告。
該自動(dòng)化測(cè)試構(gòu)建方法中的缺陷管理系統(tǒng)將本次測(cè)試構(gòu)建結(jié)果輸出方式包括通過Email將測(cè)試構(gòu)建結(jié)果信息發(fā)送給開發(fā)人員、提供一個(gè)固定的URL鏈接由開發(fā)人員訪問并獲取該測(cè)試構(gòu)建結(jié)果。
該自動(dòng)化測(cè)試構(gòu)建方法中的根據(jù)缺陷修復(fù)的信息,對(duì)缺陷管理系統(tǒng)中相應(yīng)的缺陷狀態(tài)進(jìn)行修改,包括以下步驟(1)版本控制工具記錄開發(fā)人員提交的進(jìn)行缺陷修復(fù)的代碼的文件名稱信息;(2)項(xiàng)目管理系統(tǒng)同時(shí)也記錄相應(yīng)的開發(fā)人員提交的進(jìn)行缺陷修復(fù)的代碼的文件名稱信息,并根據(jù)該信息建立缺陷修復(fù)記錄;(3)項(xiàng)目管理系統(tǒng)將該缺陷修復(fù)記錄與缺陷管理系統(tǒng)中的相應(yīng)缺陷之間建立關(guān)聯(lián)關(guān)系;(4)缺陷管理系統(tǒng)根據(jù)項(xiàng)目管理系統(tǒng)的缺陷修復(fù)記錄的關(guān)聯(lián)信息將相應(yīng)缺陷的狀態(tài)設(shè)置為已修復(fù)狀態(tài)。
該自動(dòng)化測(cè)試構(gòu)建方法中的將本次測(cè)試構(gòu)建過程生成的原始出錯(cuò)測(cè)試程序列表導(dǎo)入缺陷管理系統(tǒng)的步驟后還包括以下步驟(1)缺陷管理系統(tǒng)根據(jù)該原始出錯(cuò)測(cè)試程序列表中的測(cè)試程序?qū)?yīng)缺陷和以往發(fā)現(xiàn)過的該缺陷的歷史信息,在項(xiàng)目管理系統(tǒng)中通過所關(guān)聯(lián)的缺陷修復(fù)記錄定位與該缺陷相關(guān)的代碼文件;(2)在項(xiàng)目管理系統(tǒng)中根據(jù)該缺陷相關(guān)的代碼文件查詢上次測(cè)試構(gòu)建以后的代碼提交記錄,確定相應(yīng)的開發(fā)人員和記錄;(3)如果該缺陷是首次出現(xiàn),則建立該缺陷與所關(guān)聯(lián)的代碼文件之間的耦合度因子;如果該缺陷是重復(fù)出現(xiàn)的,則增加該缺陷與所關(guān)聯(lián)的代碼文件之間的耦合度因子的值。
該自動(dòng)化測(cè)試構(gòu)建方法中的缺陷管理系統(tǒng)生成的新的運(yùn)行出錯(cuò)測(cè)試程序列表中的測(cè)試程序?yàn)樗斜簧洗螠y(cè)試構(gòu)建過程發(fā)現(xiàn)的但還沒有被修復(fù)的缺陷所對(duì)應(yīng)的測(cè)試程序和新導(dǎo)入該缺陷管理系統(tǒng)的但還未被用戶處理的缺陷所對(duì)應(yīng)的測(cè)試程序。
該自動(dòng)化測(cè)試構(gòu)建方法中的用戶為構(gòu)建負(fù)責(zé)人和缺陷管理系統(tǒng)的其他用戶。
采用了該發(fā)明的自動(dòng)化測(cè)試構(gòu)建方法,由于基于缺陷管理的測(cè)試構(gòu)建過程是將缺陷管理和構(gòu)建過程有機(jī)結(jié)合起來,使得缺陷的發(fā)現(xiàn)和修復(fù)后的驗(yàn)證都能自動(dòng)完成,提高了開發(fā)和測(cè)試的效率,節(jié)省了人員的工作投入;由于缺陷管理系統(tǒng)和項(xiàng)目管理系統(tǒng)也都是以源代碼管理為基礎(chǔ),項(xiàng)目管理系統(tǒng)中的代碼文件名和缺陷管理系統(tǒng)中的測(cè)試文件名都可以自動(dòng)鏈接到版本控制工具上的對(duì)應(yīng)文件,保證了一個(gè)開發(fā)團(tuán)隊(duì)共享統(tǒng)一的代碼源;由于測(cè)試構(gòu)建過程的結(jié)果會(huì)直接導(dǎo)入到缺陷管理系統(tǒng)中,對(duì)于測(cè)試結(jié)果的細(xì)節(jié)可以完整的記錄下來,并對(duì)于后續(xù)的測(cè)試構(gòu)建起到了指導(dǎo)作用,使得集成測(cè)試的效率大大提高;由于整個(gè)測(cè)試構(gòu)建過程全部是自動(dòng)進(jìn)行的,沒有人為干預(yù),同時(shí)缺陷管理系統(tǒng)和項(xiàng)目管理系統(tǒng)的結(jié)合,可以自動(dòng)定位測(cè)試程序和測(cè)試對(duì)象,因此充分保證了執(zhí)行過程的可靠性和缺陷定位的準(zhǔn)確性;同時(shí),由于通過測(cè)試構(gòu)建系統(tǒng)與缺陷管理系統(tǒng)的結(jié)合,可以將每次測(cè)試構(gòu)建中發(fā)現(xiàn)的問題進(jìn)行分析和統(tǒng)計(jì),并通過柱形圖,坐標(biāo)圖等方式顯示,為產(chǎn)品的質(zhì)量提供可供參考的依據(jù)。
圖1為標(biāo)準(zhǔn)的測(cè)試構(gòu)建過程模型流程圖。
圖2為本發(fā)明的基于缺陷管理的測(cè)試構(gòu)建過程模型流程圖。
圖3為本發(fā)明的缺陷管理系統(tǒng)處理導(dǎo)入的原始出錯(cuò)測(cè)試程序列表信息的流程圖。
圖4為本發(fā)明的項(xiàng)目管理系統(tǒng)根據(jù)缺陷修復(fù)自動(dòng)更改缺陷管理系統(tǒng)中的缺陷狀態(tài)的流程圖。
圖5為本發(fā)明的版本控制工具、項(xiàng)目管理系統(tǒng)和缺陷管理系統(tǒng)結(jié)合共同建立測(cè)試程序與被測(cè)試對(duì)象的關(guān)聯(lián)關(guān)系的流程圖。
具體實(shí)施例方式
為了能夠更清楚地理解本發(fā)明的技術(shù)內(nèi)容,特舉以下實(shí)施例詳細(xì)說明。
整個(gè)自動(dòng)化測(cè)試構(gòu)建方法全過程包含以下四個(gè)模塊的結(jié)合●版本控制工具●缺陷管理系統(tǒng)●項(xiàng)目管理系統(tǒng)●測(cè)試構(gòu)建過程1.版本控制工具源代碼是開發(fā)過程的主要組成部分,通過版本控制工具來管理源代碼可以統(tǒng)一整個(gè)開發(fā)團(tuán)隊(duì)的代碼源。在公知的技術(shù)中有很多的版本控制工具,都可以用來進(jìn)行源代碼管理。這里所指的版本控制工具的必須要具備如下特征●可以進(jìn)行文件的版本控制(用戶可以進(jìn)行文件的檢入和檢出操作)●有基于命令行的工具可以自動(dòng)進(jìn)行文件的檢入和檢出2.缺陷管理系統(tǒng)缺陷管理系統(tǒng)的作用是記錄、跟蹤和管理軟件開發(fā)過程中發(fā)現(xiàn)的缺陷(Bug)。在公知的技術(shù)中有很多缺陷管理系統(tǒng)。想要實(shí)現(xiàn)自動(dòng)化測(cè)試構(gòu)建方法中的上述結(jié)合,缺陷管理系統(tǒng)必須增加如下特征●可以記錄和操作缺陷●缺陷必需具備狀態(tài)(修復(fù)的缺陷還是沒有修復(fù)的缺陷)、時(shí)間信息(修復(fù)時(shí)間)和缺陷修復(fù)負(fù)責(zé)人等信息●缺陷可以與相應(yīng)的一個(gè)測(cè)試程序關(guān)聯(lián),缺陷可以由測(cè)試程序發(fā)現(xiàn)(但大多情況下,缺陷并不是通過測(cè)試程序發(fā)現(xiàn)的)3.項(xiàng)目管理系統(tǒng)項(xiàng)目管理系統(tǒng)可以將整個(gè)開發(fā)過程中的工作分解,同時(shí)開發(fā)過程中,開發(fā)人員對(duì)版本控制工具上文件的更改,必須在項(xiàng)目管理系統(tǒng)中進(jìn)行記錄,通過訪問這些記錄中的文件名就可以自動(dòng)訪問在版本控制工具上的代碼內(nèi)容。在公知的技術(shù)中有很多項(xiàng)目管理工具。在本發(fā)明中實(shí)現(xiàn)的結(jié)合,項(xiàng)目管理系統(tǒng)必須要具備如下特征●項(xiàng)目管理系統(tǒng)中有工作劃分●項(xiàng)目管理系統(tǒng)中工作的實(shí)施過程有代碼的提交和記錄,提交的代碼可以和與版本控制工具結(jié)合,所有提交到版本控制工具上的文件,在項(xiàng)目管理系統(tǒng)中有Checkin記錄,一個(gè)記錄包括本次更改的文件有哪些(也就是說可以有多個(gè)文件,這多個(gè)文件是一批的,完成某個(gè)特定功能),實(shí)現(xiàn)什么樣的功能●缺陷修復(fù)也是對(duì)代碼的操作,在項(xiàng)目管理系統(tǒng)中提交記錄時(shí)可以自動(dòng)更改缺陷狀態(tài)4.測(cè)試構(gòu)建過程測(cè)試構(gòu)建過程,也就是自動(dòng)化測(cè)試過程,它是通過自動(dòng)完成以下幾個(gè)關(guān)鍵步驟而實(shí)現(xiàn)的(1)獲取(或者生成)最新的被測(cè)試對(duì)象(產(chǎn)品)(2)獲取(或者生成)針對(duì)被測(cè)試對(duì)象的最新測(cè)試程序(該測(cè)試程序需要事先編寫好)(3)運(yùn)行所有的測(cè)試程序(4)比較測(cè)試程序運(yùn)行輸出的結(jié)果,如果輸出結(jié)果和預(yù)先給的標(biāo)準(zhǔn)輸出不一致,記錄測(cè)試程序的名稱(5)將發(fā)現(xiàn)問題的測(cè)試程序名輸出一個(gè)參加測(cè)試構(gòu)建的測(cè)試程序除了具有一般應(yīng)用程序的特點(diǎn)之外,還必須具備以下三個(gè)特征●測(cè)試程序需要提前被編寫
●測(cè)試程序在執(zhí)行時(shí)不需要用戶干預(yù)。在執(zhí)行過程中,不應(yīng)要求用戶輸入信息后再繼續(xù)運(yùn)行,否則就做不到自動(dòng)化??紤]到這個(gè)特殊性,我們將用戶的輸入信息用文件形式來替代,這個(gè)文件定義為標(biāo)準(zhǔn)的輸入文件●測(cè)試程序在執(zhí)行之前,需要預(yù)先給定一個(gè)標(biāo)準(zhǔn)的輸出文件。這個(gè)文件內(nèi)容就是在被測(cè)試對(duì)象沒有缺陷的情況下測(cè)試程序正常運(yùn)行后的輸出結(jié)果,就類似一個(gè)標(biāo)準(zhǔn)答案,有了標(biāo)準(zhǔn)答案才能比較,才能知道每次測(cè)試程序運(yùn)行后的輸出結(jié)果是否正確。
●每個(gè)測(cè)試程序的運(yùn)行結(jié)果都必需輸出到一個(gè)文件中。一般程序的運(yùn)行結(jié)果是直接輸出到屏幕的,這導(dǎo)致不能實(shí)現(xiàn)測(cè)試的自動(dòng)化,我們定義這個(gè)記錄輸出結(jié)果信息的文件為測(cè)試程序運(yùn)行的輸出結(jié)果文件。
在本發(fā)明中,基于源代碼版本控制工具結(jié)合項(xiàng)目管理系統(tǒng)和缺陷管理系統(tǒng)的測(cè)試構(gòu)建過程的特點(diǎn)如下(1)測(cè)試構(gòu)建過程可以通過腳本來控制,系統(tǒng)定時(shí)執(zhí)行,整個(gè)測(cè)試構(gòu)建過程不需要用戶干預(yù)。
(2)每個(gè)參與測(cè)試構(gòu)建的測(cè)試程序文件和標(biāo)準(zhǔn)輸出文件需要提前被編寫,有時(shí)可能還包括標(biāo)準(zhǔn)的輸入文件。
(3)測(cè)試構(gòu)建需要有一個(gè)對(duì)比過程,比較每個(gè)測(cè)試程序的實(shí)際輸出和標(biāo)準(zhǔn)輸出的區(qū)別。
(4)修復(fù)的缺陷可以在下一次測(cè)試構(gòu)建過程中自動(dòng)得到驗(yàn)證。
(5)每次測(cè)試構(gòu)建發(fā)現(xiàn)的錯(cuò)誤可以被及時(shí)記錄到缺陷管理系統(tǒng)中,發(fā)現(xiàn)問題的測(cè)試程序不會(huì)繼續(xù)參與下一次測(cè)試構(gòu)建,保證每次測(cè)試構(gòu)建都只會(huì)發(fā)現(xiàn)新錯(cuò)誤。
(6)測(cè)試構(gòu)建過程能夠自動(dòng)生成測(cè)試構(gòu)建過程報(bào)告。
下面結(jié)合附圖進(jìn)一步說明對(duì)各應(yīng)用范例進(jìn)行詳細(xì)說明
1.標(biāo)準(zhǔn)的測(cè)試構(gòu)建過程模型請(qǐng)參閱圖1所示,測(cè)試構(gòu)建的開始是通過一個(gè)可以定時(shí)執(zhí)行的腳本來啟動(dòng),也可以手動(dòng)執(zhí)行。在一些公知的操作系統(tǒng)中大部分都有系統(tǒng)定時(shí)器或者計(jì)劃任務(wù)的功能,允許可以在某個(gè)特定時(shí)間激活一個(gè)可以執(zhí)行的程序。
(1)開始測(cè)試構(gòu)建(2)獲取最新的被測(cè)試對(duì)象(產(chǎn)品)●情況一被測(cè)試對(duì)象是源代碼■先獲取最新的源代碼■編譯源代碼,生成被測(cè)試對(duì)象●情況二被測(cè)試對(duì)象是可以執(zhí)行的文件■直接獲取這些可執(zhí)行文件(3)獲取最新的測(cè)試程序及其相應(yīng)的標(biāo)準(zhǔn)輸入文件和標(biāo)準(zhǔn)輸出文件●情況一測(cè)試程序?yàn)樵创a■獲取最新的測(cè)試代碼■編譯測(cè)試代碼,生成測(cè)試程序●情況二測(cè)試程序可以直接執(zhí)行■直接獲取這些可執(zhí)行的測(cè)試程序(4)運(yùn)行測(cè)試程序,根據(jù)運(yùn)行測(cè)試程序列表逐一運(yùn)行測(cè)試程序,得到每個(gè)測(cè)試程序的輸出結(jié)果(5)對(duì)比每個(gè)測(cè)試程序的輸出和標(biāo)準(zhǔn)輸出,如果不同,標(biāo)識(shí)出錯(cuò)(6)測(cè)試構(gòu)建過程完成,輸出測(cè)試構(gòu)建報(bào)告,報(bào)告記錄了所有發(fā)現(xiàn)問題的原始出錯(cuò)測(cè)試程序列表。
2.基于缺陷管理的測(cè)試構(gòu)建過程模型再請(qǐng)參閱圖2所示,該測(cè)試構(gòu)建過程包括以下步驟(1)在生成測(cè)試程序清單之前,結(jié)合缺陷管理的測(cè)試構(gòu)建過程和標(biāo)準(zhǔn)的構(gòu)建過程沒有區(qū)別,都要執(zhí)行清理獲取最新的被測(cè)試對(duì)象、獲取最新的測(cè)試程序的操作;(2)在獲取了測(cè)試程序列表以后,基于缺陷管理的測(cè)試構(gòu)建模型中增加了從缺陷管理系統(tǒng)中獲取以前記錄的運(yùn)行出錯(cuò)測(cè)試程序列表(這個(gè)列表中的測(cè)試程序是每次測(cè)試構(gòu)建過程自動(dòng)累計(jì)加入到缺陷管理系統(tǒng)中的)的步驟。將前面的測(cè)試程序列表中剔除從缺陷管理系統(tǒng)中獲取的運(yùn)行出錯(cuò)測(cè)試程序列表中的測(cè)試程序,就生成了本次測(cè)試構(gòu)建過程中必需的運(yùn)行測(cè)試程序列表;(3)根據(jù)運(yùn)行測(cè)試程序列表運(yùn)行相應(yīng)的測(cè)試程序,繼續(xù)測(cè)試構(gòu)建過程;(4)驗(yàn)證每個(gè)測(cè)試程序的輸出,并將記錄的輸出結(jié)果文件與預(yù)先給的標(biāo)準(zhǔn)輸出文件進(jìn)行比較,將其中結(jié)果不一致的測(cè)試程序名稱記錄下來,生成原始出錯(cuò)測(cè)試程序列表;(5)將上述的原始出錯(cuò)測(cè)試程序列表導(dǎo)入到缺陷管理系統(tǒng)中;(6)在缺陷管理系統(tǒng)中,自動(dòng)處理上述導(dǎo)入的信息,生成本次的測(cè)試構(gòu)建報(bào)告。
進(jìn)行了上述操作步驟,缺陷管理系統(tǒng)就記錄了每次測(cè)試構(gòu)建過程中運(yùn)行出錯(cuò)的測(cè)試程序名稱,這些測(cè)試程序?qū)⒉粫?huì)繼續(xù)在下一次測(cè)試構(gòu)建過程中參加運(yùn)行,這樣提高了測(cè)試構(gòu)建的效率,也有利于測(cè)試構(gòu)建過程發(fā)現(xiàn)新的缺陷。
通過將缺陷管理系統(tǒng)與測(cè)試構(gòu)建過程的上述結(jié)合過程,每次發(fā)現(xiàn)缺陷的測(cè)試程序被缺陷管理系統(tǒng)記錄下來,在下一次測(cè)試構(gòu)建過程中,被記錄的測(cè)試程序不參加運(yùn)行,但缺陷管理系統(tǒng)還沒有對(duì)缺陷進(jìn)行有效管理。不過這個(gè)測(cè)試構(gòu)建過程已經(jīng)可以生成包括如下的內(nèi)容的測(cè)試構(gòu)建報(bào)告●新發(fā)現(xiàn)問題的測(cè)試程序名稱●出錯(cuò)測(cè)試程序數(shù)量●對(duì)比以前的數(shù)量,生成對(duì)比統(tǒng)計(jì)圖再請(qǐng)參閱圖3所示,基于缺陷管理的測(cè)試構(gòu)建過程模型中,在測(cè)試構(gòu)建完成后,將原始出錯(cuò)測(cè)試程序列表導(dǎo)入到在缺陷管理系統(tǒng)中,而在缺陷管理系統(tǒng)中,對(duì)于新導(dǎo)入的上述列表,統(tǒng)一進(jìn)行如下處理(1)將本次新發(fā)現(xiàn)的測(cè)試程序問題,缺陷管理系統(tǒng)在進(jìn)行相應(yīng)處理后給出提示信息,并將待處理的缺陷信息自動(dòng)提交給構(gòu)建負(fù)責(zé)人進(jìn)行處理。這種提示信息包括如下幾種情況●如果這個(gè)測(cè)試程序在缺陷管理系統(tǒng)中沒有記錄,則提示信息為■可能是將其確認(rèn)為一個(gè)新缺陷■可能是一種意外錯(cuò)誤●如果這個(gè)測(cè)試程序在缺陷管理系統(tǒng)中有記錄■如果缺陷修復(fù)的時(shí)間是在上次測(cè)試構(gòu)建之后,則提示信息為◆可能在上次測(cè)試構(gòu)建以后修復(fù)的缺陷可能沒有被真正修復(fù),修復(fù)驗(yàn)證失敗,該缺陷需要被重新設(shè)置為未修復(fù)狀態(tài)◆可能此測(cè)試程序發(fā)現(xiàn)的缺陷為新的缺陷■如果缺陷修復(fù)的時(shí)間是在上一次測(cè)試構(gòu)建之前,則提示信息為◆可能是一個(gè)已經(jīng)發(fā)現(xiàn)的缺陷再次復(fù)發(fā),并將與這個(gè)測(cè)試程序相關(guān)的缺陷內(nèi)容提供給構(gòu)建負(fù)責(zé)人◆可能此測(cè)試程序發(fā)現(xiàn)的缺陷為新的缺陷●對(duì)于在上一次測(cè)試構(gòu)建之后修復(fù)的缺陷沒有再次出現(xiàn)問題的測(cè)試程序(即沒有再次出現(xiàn)在原始出錯(cuò)測(cè)試程序列表中的測(cè)試程序),系統(tǒng)將這些缺陷的名字提示給構(gòu)建負(fù)責(zé)人,并提示說明這些缺陷已被成功修復(fù)。
(2)構(gòu)建負(fù)責(zé)人對(duì)如上的提示信息進(jìn)行處理,可能會(huì)有以下幾種操作●提交新的缺陷(系統(tǒng)自動(dòng)將此缺陷和發(fā)現(xiàn)缺陷的測(cè)試程序名稱綁定)●將一個(gè)已經(jīng)修復(fù)的缺陷狀態(tài)設(shè)置為未修復(fù)狀態(tài)。
●將一個(gè)已經(jīng)修復(fù)的缺陷狀態(tài)設(shè)置為復(fù)發(fā)狀態(tài)。
(3)生成以下測(cè)試構(gòu)建報(bào)告●本次測(cè)試構(gòu)建新發(fā)現(xiàn)缺陷數(shù)量、正常修復(fù)缺陷的數(shù)量和復(fù)發(fā)缺陷的數(shù)量報(bào)告●新發(fā)現(xiàn)的缺陷名稱報(bào)告●正常修復(fù)的缺陷名稱報(bào)告●復(fù)發(fā)缺陷的名稱報(bào)告●統(tǒng)計(jì)測(cè)試程序發(fā)現(xiàn)缺陷的數(shù)量,可以包括本次的和累計(jì)的報(bào)告(4)將測(cè)試構(gòu)建結(jié)果輸出,測(cè)試構(gòu)建完成,這個(gè)輸出可以同時(shí)采用如下兩種方式●發(fā)送的方式。它一般是通過Email將如上信息發(fā)送給開發(fā)人員,可以保證信息的及時(shí)傳遞●讓開發(fā)人員取的方式,就是將一個(gè)固定的URL鏈接提供給開發(fā)人員訪問,讓他們來獲取輸出的結(jié)果信息(一般來說,這種方式是必需的,這次記錄可以做為系統(tǒng)日志保留,也可以用于和以后的測(cè)試構(gòu)建結(jié)果進(jìn)行比較)(5)在下一次測(cè)試構(gòu)建過程開始時(shí),缺陷管理系統(tǒng)會(huì)產(chǎn)生新的運(yùn)行出錯(cuò)測(cè)試程序列表,并將其輸出至測(cè)試構(gòu)建過程,該列表中的測(cè)試程序?yàn)椤袼邪l(fā)現(xiàn)缺陷但缺陷還沒有被修復(fù)的測(cè)試程序●新導(dǎo)入的但還未得到用戶處理的測(cè)試程序該基于缺陷管理的測(cè)試構(gòu)建過程模型中,其用戶可以為構(gòu)建負(fù)責(zé)人,也可以為缺陷管理系統(tǒng)中的其他用戶。
3.缺陷管理系統(tǒng)與項(xiàng)目管理系統(tǒng)結(jié)合的缺陷修復(fù)的自動(dòng)驗(yàn)證構(gòu)建過程模型版本控制工具負(fù)責(zé)代碼的管理,軟件項(xiàng)目的重要工作內(nèi)容是編寫和更改產(chǎn)品的代碼,代碼之間的關(guān)系不是完全孤立的,一組(一個(gè)或者多個(gè))源代碼是用來實(shí)現(xiàn)或者完成一個(gè)功能,所以代碼的添加或者更改往往是批量進(jìn)行的,這樣的更改對(duì)我們工作的記錄是有意義的,所以我們?cè)诟牧税姹究刂乒ぞ呱系拇a的同時(shí),將這些代碼還記錄在項(xiàng)目管理系統(tǒng)中,并要求提交者給出這批代碼提交的用途、完成什么樣的功能等相關(guān)信息。如上的說明闡述了兩件事情,一個(gè)記錄可以是包括多個(gè)代碼文件,另外一個(gè)是代碼的更改需要另外的系統(tǒng)記錄。
在如上結(jié)合的基礎(chǔ)上,進(jìn)一步實(shí)現(xiàn)項(xiàng)目管理系統(tǒng)和缺陷管理系統(tǒng)的結(jié)合。首先,開發(fā)的最初階段只是添加代碼,這些代碼是為了實(shí)現(xiàn)一個(gè)一個(gè)功能,但這些代碼實(shí)現(xiàn)的功能可能存在不足,或者說已經(jīng)添加的代碼與預(yù)期的功能不相符,這就是所說的發(fā)現(xiàn)了缺陷,我們將這個(gè)缺陷記錄到缺陷管理系統(tǒng)中,這時(shí)缺陷管理系統(tǒng)會(huì)針對(duì)該缺陷給定一個(gè)唯一的編號(hào),并提示要實(shí)現(xiàn)這個(gè)功能的開發(fā)人員進(jìn)行缺陷的修復(fù)。之后開發(fā)人員進(jìn)行修復(fù)缺陷的過程其實(shí)還是對(duì)代碼的操作,通過更改和刪除原來代碼,也可能是增加新的代碼來完成。完成后的操作又是一組代碼的提交(添加、更改和刪除都是提交),這個(gè)提交又被記錄在項(xiàng)目管理系統(tǒng)中,同時(shí)又要求提交人員記錄這次更改,這次的記錄方式和開始階段階段的工作幾乎相同,唯一的區(qū)別這次更改的目的是為了修復(fù)一個(gè)已經(jīng)存在的缺陷,因?yàn)槊總€(gè)缺陷有唯一的編號(hào),所以這次記錄的提交會(huì)在提交的同時(shí)做另外一件事情,就是更改缺陷管理系統(tǒng)中這個(gè)編號(hào)所對(duì)應(yīng)缺陷的狀態(tài),從未修復(fù)狀態(tài),轉(zhuǎn)為修復(fù)狀態(tài)。
再請(qǐng)參閱圖4所示,根據(jù)缺陷修復(fù)的信息,對(duì)缺陷管理系統(tǒng)中相應(yīng)的缺陷狀態(tài)進(jìn)行修改,需要包括以下步驟(1)版本控制工具記錄開發(fā)人員提交的進(jìn)行缺陷修復(fù)的代碼的文件名稱信息;(2)項(xiàng)目管理系統(tǒng)同時(shí)也記錄相應(yīng)的開發(fā)人員提交的進(jìn)行缺陷修復(fù)的代碼的文件名稱信息,并根據(jù)該信息建立缺陷修復(fù)記錄;(3)項(xiàng)目管理系統(tǒng)將該缺陷修復(fù)記錄與缺陷管理系統(tǒng)中的相應(yīng)缺陷之間建立關(guān)聯(lián)關(guān)系;(4)缺陷管理系統(tǒng)根據(jù)項(xiàng)目管理系統(tǒng)的缺陷修復(fù)記錄的關(guān)聯(lián)信息將相應(yīng)缺陷的狀態(tài)設(shè)置為已修復(fù)狀態(tài)。
按照上述步驟實(shí)現(xiàn)了項(xiàng)目管理系統(tǒng)和缺陷管理系統(tǒng)的結(jié)合后,記錄提交就可以自動(dòng)更改缺陷的狀態(tài),但這次更改是否有效,還需要對(duì)這此更改進(jìn)行驗(yàn)證。而此時(shí)測(cè)試構(gòu)建恰恰可以進(jìn)行這個(gè)驗(yàn)證,測(cè)試構(gòu)建在開始時(shí)先將修復(fù)的缺陷所對(duì)應(yīng)的測(cè)試程序加入到本次測(cè)試構(gòu)建中,在測(cè)試構(gòu)建過程中檢查這個(gè)測(cè)試程序的運(yùn)行結(jié)果是否正確,如果正確,則提示信息為這次缺陷修復(fù)是正確的;如果不正確,提示信息為這此修復(fù)工作可能失敗。這里說的提示信息只將這種情況作為最大的可能性提交給用戶處理,而不是自動(dòng)將上次修復(fù)的缺陷自動(dòng)從修復(fù)狀態(tài)轉(zhuǎn)為未修復(fù)狀態(tài),因?yàn)槲覀円紤]到這個(gè)測(cè)試程序在這次測(cè)試構(gòu)建中可能發(fā)現(xiàn)了新的錯(cuò)誤,所以狀態(tài)的更改是需要在用戶確認(rèn)后才能進(jìn)行的。
4.缺陷關(guān)聯(lián)和項(xiàng)目管理系統(tǒng)結(jié)合的測(cè)試構(gòu)建過程模型測(cè)試一般分為兩個(gè)部分,測(cè)試程序和被測(cè)試對(duì)象,對(duì)于來說測(cè)試程序一般是比較確定的,但測(cè)試對(duì)象大多數(shù)是不能確定的,通過如上某個(gè)缺陷的編號(hào)和某批提交的代碼關(guān)聯(lián),加之測(cè)試程序與缺陷的關(guān)聯(lián),就實(shí)現(xiàn)了測(cè)試程序和某批提交的代碼關(guān)聯(lián),也就實(shí)現(xiàn)了測(cè)試程序和被測(cè)試對(duì)象的關(guān)聯(lián)。
再請(qǐng)參閱圖5所示,在項(xiàng)目管理系統(tǒng)和缺陷管理系統(tǒng)之間建立測(cè)試程序與被測(cè)試對(duì)象的關(guān)聯(lián)包括以下步驟(1)缺陷管理系統(tǒng)根據(jù)該原始出錯(cuò)測(cè)試程序列表中的測(cè)試程序?qū)?yīng)缺陷和以往發(fā)現(xiàn)過的該缺陷的歷史信息,在項(xiàng)目管理系統(tǒng)中通過所關(guān)聯(lián)的缺陷修復(fù)記錄定位與該缺陷相關(guān)的代碼文件;(2)在項(xiàng)目管理系統(tǒng)中根據(jù)該缺陷相關(guān)的代碼文件查詢上次測(cè)試構(gòu)建以后的代碼提交記錄,確定相應(yīng)的開發(fā)人員和記錄;(3)如果該缺陷是首次出現(xiàn),則建立該缺陷與所關(guān)聯(lián)的代碼文件之間的耦合度因子;如果該缺陷是重復(fù)出現(xiàn)的,則增加該缺陷與所關(guān)聯(lián)的代碼文件之間的耦合度因子的值。
按照上述步驟建立的關(guān)聯(lián),可能這個(gè)關(guān)聯(lián)不是非常清晰的一對(duì)一關(guān)系,但可以做為一種依據(jù)。當(dāng)一個(gè)測(cè)試程序在新的測(cè)試構(gòu)建中再次發(fā)現(xiàn)問題,并被記錄到缺陷管理系統(tǒng)時(shí),缺陷管理系統(tǒng)會(huì)根據(jù)這個(gè)缺陷以往發(fā)現(xiàn)過缺陷的歷史,定位與之相關(guān)的代碼文件,在項(xiàng)目管理系統(tǒng)中查詢上次測(cè)試構(gòu)建以后的代碼提交記錄,就可以初步確定缺陷引入的人員和記錄,從而可以自動(dòng)給出是誰在哪一次的代碼提交時(shí)引入這個(gè)缺陷的提示。另外每次的確認(rèn)過程可以用來更改耦合度因子,在某個(gè)缺陷重復(fù)出現(xiàn)時(shí)增加相應(yīng)的耦合度因子的值,使得重新出現(xiàn)的缺陷能自動(dòng)的在項(xiàng)目管理系統(tǒng)中被標(biāo)識(shí)和定位。
此過程模型將項(xiàng)目管理和缺陷管理結(jié)合起來,使得項(xiàng)目在開發(fā)中的代碼記錄在版本控制工具中,并同時(shí)在項(xiàng)目系統(tǒng)中記錄這些代碼的名字,在項(xiàng)目管理系統(tǒng)中通過代碼的名字就可以自動(dòng)訪問代碼在版本控制工具上的源文件。項(xiàng)目管理和缺陷管理的結(jié)合,可以將項(xiàng)目中的缺陷記錄在缺陷管理系統(tǒng)中,在項(xiàng)目管理系統(tǒng)中對(duì)與某個(gè)缺陷修復(fù)提交的記錄就會(huì)自動(dòng)轉(zhuǎn)化為修復(fù)缺陷系統(tǒng)的特定缺陷記錄,并且這個(gè)過程可以自動(dòng)完成的。此外,由于這個(gè)缺陷是在測(cè)試構(gòu)建過程中的某個(gè)測(cè)試程序發(fā)現(xiàn)的,所以這種結(jié)合就可以將測(cè)試程序和測(cè)試對(duì)象(修復(fù)缺陷的一組代碼)結(jié)合起來。
實(shí)現(xiàn)如上的測(cè)試構(gòu)建過程的方法,除了項(xiàng)目管理系統(tǒng)和缺陷管理系統(tǒng)結(jié)合,還需要一些腳本文件的支持●從版本控制工具中獲取最新的代碼執(zhí)行腳本●自動(dòng)編譯腳本●從缺陷系統(tǒng)中獲取不參加本次構(gòu)建的測(cè)試程序清單執(zhí)行腳本●將構(gòu)建后的測(cè)試程序清單和構(gòu)建日志寫入到缺陷管理系統(tǒng)執(zhí)行腳本●自動(dòng)處理缺陷系統(tǒng)中的信息并進(jìn)行與前一次構(gòu)建對(duì)比匯總腳本●自動(dòng)Email發(fā)送腳本采用本發(fā)明的基于缺陷管理的自動(dòng)化測(cè)試構(gòu)建過程方法具有如下的優(yōu)點(diǎn)
1.統(tǒng)一代碼源保證整個(gè)開發(fā)團(tuán)隊(duì)共享統(tǒng)一的代碼源,將所有人的代碼都?xì)w總到一起,這是測(cè)試構(gòu)建的基礎(chǔ),缺陷管理和項(xiàng)目管理也都是以源代碼管理為基礎(chǔ),項(xiàng)目管理系統(tǒng)中的代碼文件名和缺陷管理系統(tǒng)中的測(cè)試文件名都可以自動(dòng)鏈接到版本控制工具的對(duì)應(yīng)文件上。
2.有利于集成測(cè)試測(cè)試應(yīng)該全部執(zhí)行完畢,而不是遇到測(cè)試運(yùn)行的錯(cuò)誤就放棄測(cè)試過程。測(cè)試結(jié)果中包括有成功的測(cè)試信息、失敗的測(cè)試信息和失敗的測(cè)試的細(xì)節(jié)信息。最后的結(jié)果將通過某種方式通知給相應(yīng)的開發(fā)人員,要求他們修改設(shè)計(jì)或測(cè)試(如果是測(cè)試本身的問題的話)。
3.提高發(fā)現(xiàn)缺陷的效率和工作效率如果測(cè)試構(gòu)建是每日?qǐng)?zhí)行(日構(gòu)建),可以在最快的時(shí)間發(fā)現(xiàn)當(dāng)日提交的代碼更改產(chǎn)生的缺陷,早發(fā)現(xiàn)早清除,可以大大提高產(chǎn)品的效率。另外修復(fù)的缺陷可以在下一次測(cè)試構(gòu)建過程中自動(dòng)得到驗(yàn)證,免去了驗(yàn)證過程的工作量。
4.保證執(zhí)行過程的準(zhǔn)確性整個(gè)測(cè)試構(gòu)建過程全部是自動(dòng)進(jìn)行的,沒有人為干預(yù),充分保證了執(zhí)行過程的可靠性和準(zhǔn)確性。同時(shí)缺陷管理和項(xiàng)目管理結(jié)合,可以測(cè)試程序和測(cè)試對(duì)象進(jìn)行自動(dòng)定位。
5.對(duì)比每次構(gòu)建結(jié)果,保證產(chǎn)品質(zhì)量通過與缺陷管理系統(tǒng)的結(jié)合,可以自動(dòng)記錄每次測(cè)試構(gòu)建中發(fā)現(xiàn)的問題,而缺陷管理系統(tǒng)可以對(duì)此進(jìn)行分析和統(tǒng)計(jì),通過柱形圖,坐標(biāo)圖等方式將結(jié)果顯示出來,為產(chǎn)品的質(zhì)量提供可供參考的依據(jù)。
在此說明書中,本發(fā)明已參照其特定的實(shí)施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說明書和附圖應(yīng)被認(rèn)為是說明性的而非限制性的。
權(quán)利要求
1.一種自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的自動(dòng)化測(cè)試構(gòu)建方法包括以下步驟(1)得到最新的被測(cè)試對(duì)象;(2)得到針對(duì)該被測(cè)試對(duì)象的最新測(cè)試程序及其相應(yīng)的標(biāo)準(zhǔn)輸入信息和標(biāo)準(zhǔn)輸出信息;(3)從缺陷管理系統(tǒng)中得到運(yùn)行出錯(cuò)測(cè)試程序列表,并根據(jù)該運(yùn)行出錯(cuò)測(cè)試程序列表,在步驟(2)得到的最新測(cè)試程序中剔除相應(yīng)的測(cè)試程序,生成運(yùn)行測(cè)試程序列表;(4)根據(jù)步驟(3)生成的運(yùn)行測(cè)試程序列表運(yùn)行相應(yīng)的測(cè)試程序,得到對(duì)應(yīng)測(cè)試程序的運(yùn)行輸出結(jié)果;(5)將步驟(4)中的測(cè)試程序的運(yùn)行輸出結(jié)果與相應(yīng)的標(biāo)準(zhǔn)輸出信息進(jìn)行比較,如果運(yùn)行輸出結(jié)果和標(biāo)準(zhǔn)輸出信息不一致,則記錄測(cè)試程序的名稱,生成原始出錯(cuò)測(cè)試程序列表;(6)將步驟(5)生成的原始出錯(cuò)測(cè)試程序列表導(dǎo)入缺陷管理系統(tǒng);(7)缺陷管理系統(tǒng)處理步驟(6)導(dǎo)入的信息,并生成本次測(cè)試構(gòu)建報(bào)告;(8)缺陷管理系統(tǒng)將本次測(cè)試構(gòu)建結(jié)果輸出;(9)根據(jù)缺陷修復(fù)的信息,對(duì)缺陷管理系統(tǒng)中相應(yīng)的缺陷狀態(tài)進(jìn)行修改;(10)在下一次測(cè)試構(gòu)建過程開始時(shí),缺陷管理系統(tǒng)生成新的運(yùn)行出錯(cuò)測(cè)試程序列表。
2.根據(jù)權(quán)利要求1所述的自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的得到最新的被測(cè)試對(duì)象,包括以下步驟(1)如果被測(cè)試對(duì)象是源代碼,則先獲取最新的源代碼,然后編譯該源代碼,生成被測(cè)試對(duì)象;(2)如果被測(cè)試對(duì)象是可以執(zhí)行的文件,則直接獲取這些文件。
3.根據(jù)權(quán)利要求1所述的自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的得到針對(duì)該被測(cè)試對(duì)象的最新測(cè)試程序,包括以下步驟(1)如果測(cè)試程序?yàn)樵创a,則先獲取最新的測(cè)試代碼,然后編譯該測(cè)試代碼,生成測(cè)試程序;(2)如果測(cè)試程序是可以直接執(zhí)行的文件,則直接獲取該測(cè)試程序。
4.根據(jù)權(quán)利要求1所述的自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的標(biāo)準(zhǔn)輸入信息為標(biāo)準(zhǔn)輸入文件形式。
5.根據(jù)權(quán)利要求1所述的自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的標(biāo)準(zhǔn)輸出信息為標(biāo)準(zhǔn)輸出文件形式。
6.根據(jù)權(quán)利要求1所述的自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的測(cè)試程序的運(yùn)行輸出結(jié)果為運(yùn)行輸出結(jié)果文件形式。
7.根據(jù)權(quán)利要求1所述的自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的缺陷管理系統(tǒng)處理導(dǎo)入的原始出錯(cuò)測(cè)試程序列表信息,包括以下步驟(1)根據(jù)原始出錯(cuò)測(cè)試程序列表信息,缺陷管理系統(tǒng)在進(jìn)行相應(yīng)處理后給出提示信息,并將待處理的缺陷信息自動(dòng)提交給用戶;(2)用戶根據(jù)該提示信息對(duì)待處理的缺陷信息進(jìn)行處理。
8.根據(jù)權(quán)利要求7所述的自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的缺陷管理系統(tǒng)在進(jìn)行相應(yīng)處理后給出提示信息,包括以下步驟(1)根據(jù)原始出錯(cuò)測(cè)試程序列表信息在缺陷管理系統(tǒng)中進(jìn)行查詢,如果該測(cè)試程序在缺陷管理系統(tǒng)中沒有記錄,則根據(jù)具體情況產(chǎn)生“該缺陷為一個(gè)新缺陷”的提示信息,或者產(chǎn)生“該缺陷為一種意外錯(cuò)誤”的提示信息;(2)經(jīng)過查詢,如果該測(cè)試程序在缺陷管理系統(tǒng)中有記錄,則查詢其對(duì)應(yīng)缺陷修復(fù)時(shí)間,如果該缺陷修復(fù)的時(shí)間是在上次測(cè)試構(gòu)建之后,則根據(jù)具體情況產(chǎn)生“在上次測(cè)試構(gòu)建以后修復(fù)的該缺陷可能沒有真正修復(fù),修復(fù)驗(yàn)證失敗,該缺陷需要被再次設(shè)置為未修復(fù)狀態(tài)”的提示信息,或者產(chǎn)生“該缺陷為該測(cè)試程序發(fā)現(xiàn)的新缺陷”的提示信息;(3)查詢其對(duì)應(yīng)缺陷修復(fù)時(shí)間,如果該缺陷修復(fù)的時(shí)間是在上次測(cè)試構(gòu)建之前,則根據(jù)具體情況產(chǎn)生“該缺陷是一個(gè)已經(jīng)發(fā)現(xiàn)的缺陷再次復(fù)發(fā)”的提示信息,并將與這個(gè)測(cè)試程序相關(guān)的缺陷內(nèi)容提供給用戶,或者產(chǎn)生“該缺陷為該測(cè)試程序發(fā)現(xiàn)的新缺陷”的提示信息。(4)對(duì)于在上次測(cè)試構(gòu)建之后修復(fù)的缺陷沒有再次出現(xiàn)在原始出錯(cuò)測(cè)試程序列表中的測(cè)試程序,缺陷管理系統(tǒng)產(chǎn)生“該缺陷已經(jīng)被成功修復(fù)”的提示信息。
9.根據(jù)權(quán)利要求8所述的自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的用戶根據(jù)該提示信息對(duì)待處理的缺陷信息進(jìn)行處理,包括以下步驟(1)如果該提示信息表明該缺陷為一個(gè)新缺陷,則用戶根據(jù)情況提交新的缺陷,并且缺陷管理系統(tǒng)自動(dòng)將此缺陷和發(fā)現(xiàn)缺陷的測(cè)試程序名綁定;(2)如果該提示信息表明該缺陷未修復(fù)成功,則用戶將該已經(jīng)修復(fù)的缺陷狀態(tài)設(shè)置為未修復(fù)狀態(tài);(3)如果該提示信息表明該缺陷為再次復(fù)發(fā)的缺陷,則用戶將該已經(jīng)修復(fù)的缺陷狀態(tài)設(shè)置為復(fù)發(fā)狀態(tài);(4)如果該提示信息表明該缺陷已經(jīng)被成功修復(fù),則用戶將保持該已經(jīng)修復(fù)的缺陷狀態(tài)不變。
10.根據(jù)權(quán)利要求7、8或9所述的自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的用戶為構(gòu)建負(fù)責(zé)人和缺陷管理系統(tǒng)的其他用戶。
11.根據(jù)權(quán)利要求1所述的自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的測(cè)試構(gòu)建報(bào)告包括本次測(cè)試構(gòu)建新發(fā)現(xiàn)缺陷數(shù)量、正常修復(fù)缺陷的數(shù)量和復(fù)發(fā)缺陷的數(shù)量報(bào)告,新發(fā)現(xiàn)的缺陷名稱報(bào)告,正常修復(fù)的缺陷名稱報(bào)告,復(fù)發(fā)缺陷的名稱報(bào)告,本次測(cè)試構(gòu)建中測(cè)試程序發(fā)現(xiàn)缺陷的數(shù)量和測(cè)試程序累計(jì)發(fā)現(xiàn)缺陷的數(shù)量的統(tǒng)計(jì)報(bào)告。
12.根據(jù)權(quán)利要求1所述的自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的缺陷管理系統(tǒng)將本次測(cè)試構(gòu)建結(jié)果輸出方式包括通過Email將測(cè)試構(gòu)建結(jié)果信息發(fā)送給開發(fā)人員、提供一個(gè)固定的URL鏈接由開發(fā)人員訪問并獲取該測(cè)試構(gòu)建結(jié)果。
13.根據(jù)權(quán)利要求1所述的自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的根據(jù)缺陷修復(fù)的信息,對(duì)缺陷管理系統(tǒng)中相應(yīng)的缺陷狀態(tài)進(jìn)行修改,包括以下步驟(1)版本控制工具記錄開發(fā)人員提交的進(jìn)行缺陷修復(fù)的代碼的文件名稱信息;(2)項(xiàng)目管理系統(tǒng)同時(shí)也記錄相應(yīng)的開發(fā)人員提交的進(jìn)行缺陷修復(fù)的代碼的文件名稱信息,并根據(jù)該信息建立缺陷修復(fù)記錄;(3)項(xiàng)目管理系統(tǒng)將該缺陷修復(fù)記錄與缺陷管理系統(tǒng)中的相應(yīng)缺陷之間建立關(guān)聯(lián)關(guān)系;(4)缺陷管理系統(tǒng)根據(jù)項(xiàng)目管理系統(tǒng)的缺陷修復(fù)記錄的關(guān)聯(lián)信息將相應(yīng)缺陷的狀態(tài)設(shè)置為已修復(fù)狀態(tài)。
14.根據(jù)權(quán)利要求13所述的自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的將本次測(cè)試構(gòu)建過程生成的原始出錯(cuò)測(cè)試程序列表導(dǎo)入缺陷管理系統(tǒng)的步驟后還包括以下步驟(1)缺陷管理系統(tǒng)根據(jù)該原始出錯(cuò)測(cè)試程序列表中的測(cè)試程序?qū)?yīng)缺陷和以往發(fā)現(xiàn)過的該缺陷的歷史信息,在項(xiàng)目管理系統(tǒng)中通過所關(guān)聯(lián)的缺陷修復(fù)記錄定位與該缺陷相關(guān)的代碼文件;(2)在項(xiàng)目管理系統(tǒng)中根據(jù)該缺陷相關(guān)的代碼文件查詢上次測(cè)試構(gòu)建以后的代碼提交記錄,確定相應(yīng)的開發(fā)人員和記錄;(3)如果該缺陷是首次出現(xiàn),則建立該缺陷與所關(guān)聯(lián)的代碼文件之間的耦合度因子;如果該缺陷是重復(fù)出現(xiàn)的,則增加該缺陷與所關(guān)聯(lián)的代碼文件之間的耦合度因子的值。
15.根據(jù)權(quán)利要求1所述的自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的缺陷管理系統(tǒng)生成的新的運(yùn)行出錯(cuò)測(cè)試程序列表中的測(cè)試程序?yàn)樗斜簧洗螠y(cè)試構(gòu)建過程發(fā)現(xiàn)的但還沒有被修復(fù)的缺陷所對(duì)應(yīng)的測(cè)試程序和新導(dǎo)入該缺陷管理系統(tǒng)的但還未被用戶處理的缺陷所對(duì)應(yīng)的測(cè)試程序。
16.根據(jù)權(quán)利要求15所述的自動(dòng)化測(cè)試構(gòu)建方法,其特征在于,所述的用戶為構(gòu)建負(fù)責(zé)人和缺陷管理系統(tǒng)的其他用戶。
全文摘要
本發(fā)明涉及一種自動(dòng)化測(cè)試構(gòu)建方法,其中,該方法包括得到最新的被測(cè)試對(duì)象、得到最新測(cè)試程序、生成運(yùn)行測(cè)試程序列表、運(yùn)行相應(yīng)的測(cè)試程序得到運(yùn)行輸出結(jié)果、生成原始出錯(cuò)測(cè)試程序列表、將該出錯(cuò)測(cè)試程序列表導(dǎo)入缺陷管理系統(tǒng)、生成測(cè)試構(gòu)建報(bào)告并將測(cè)試結(jié)果輸出、對(duì)相應(yīng)的缺陷狀態(tài)進(jìn)行修改、在下一次測(cè)試構(gòu)建過程開始時(shí)生成新的運(yùn)行出錯(cuò)測(cè)試程序列表的步驟。采用以上步驟的自動(dòng)化測(cè)試構(gòu)建方法,使得缺陷的發(fā)現(xiàn)和修復(fù)后的驗(yàn)證都能自動(dòng)完成,提高了開發(fā)和測(cè)試的效率,保證了一個(gè)開發(fā)團(tuán)隊(duì)共享統(tǒng)一的代碼源,使得集成測(cè)試的效率大大提高,保證了執(zhí)行過程的可靠性和缺陷定位的準(zhǔn)確性,同時(shí)為產(chǎn)品的質(zhì)量提供可供參考的依據(jù)。
文檔編號(hào)G06F11/36GK1648872SQ20041008920
公開日2005年8月3日 申請(qǐng)日期2004年12月8日 優(yōu)先權(quán)日2004年12月8日
發(fā)明者吳季風(fēng), 張軍, 熊桂平, 陳榕 申請(qǐng)人:上??铺┦兰o(jì)科技有限公司