摘要:該文針對軟件測試現(xiàn)狀,借鑒了前置測試思想,提出了基于過程的軟件測試管理系統(tǒng)的工作模型(P-TMS),并基于該工作模型,對軟件測試管理系統(tǒng)進(jìn)行了詳細(xì)的設(shè)計,同時對系統(tǒng)設(shè)計與實現(xiàn)中采用的關(guān)鍵技術(shù)也簡單加以介紹。應(yīng)用該工作模型實現(xiàn)的測試管理系統(tǒng)不但可以盡早發(fā)現(xiàn)缺陷,而且能夠節(jié)省時間,縮短整個項目的開發(fā)周期。
關(guān)鍵詞:前置測試;軟件測試管理;需求跟蹤;測試用例;缺陷
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)22-696-03
The Research on the System of Software Test Management Based on Process
WANG Li-Juan
(Dalian Jiao Tong University Information Engineering Institute, Dalian 116052, China)
Abstract: The paper presents the working model of software test management (abbreviate to P-TMS) based on process and expatiates the detailed design and solved way of P-TMS by studying the idea of proactive test and analyzing the present status of software test, and it expatiates the key technique adopt on the P-TMS simplely. Applying the system not only can discover the bug as soon as possible, but also can save the time, reduce the the development cycle of the entire project.
Key words: proactive test;software test management;requirement-trace matrix; test use;bug
軟件測試是為了盡可能多地發(fā)現(xiàn)軟件中的缺陷而反復(fù)執(zhí)行程序的過程,它是現(xiàn)階段確保軟件質(zhì)量的有效手段。隨著軟件開發(fā)規(guī)模的增大,軟件的業(yè)務(wù)邏輯和實現(xiàn)技術(shù)越來越復(fù)雜,導(dǎo)致軟件測試的工作異常復(fù)雜,工作量也異常龐大,軟件測試工作更加困難。為使大量而復(fù)雜的測試工作能夠順利進(jìn)行,需將軟件測試團(tuán)隊所有角色的工作內(nèi)容及他們使用的資源有效的管理起來。而一套先進(jìn)、有組織的測試過程和方法能夠規(guī)范軟件測試的各個環(huán)節(jié),提高工作效率,保證軟件質(zhì)量,使得在更短的時間內(nèi)把高質(zhì)量的軟件提供給客戶成為可能。本文所構(gòu)建的基于過程的軟件測試管理系統(tǒng)就是要通過一套統(tǒng)一的測試管理流程使得復(fù)雜的測試項目得到有效的管理,從而真正的提高測試的工作效率,保證產(chǎn)品的質(zhì)量。
1 軟件測試與軟件測試管理
1.1 軟件測試的現(xiàn)狀
通常,軟件測試是針對軟件編碼進(jìn)行的,沒有把軟件測試活動貫穿到軟件項目開發(fā)過程的各個階段。而實際上,在軟件開發(fā)的每個階段都有可能發(fā)生缺陷,如果前一階段的缺陷沒有及時地檢查出來并得到很好的解決,那么,這個缺陷很自然地會導(dǎo)致下一階段的工作出現(xiàn)偏差和錯誤。所以軟件測試不應(yīng)僅局限于代碼的測試,應(yīng)貫穿于軟件的整個生命周期過程之中。
1.2 前置測試
前置測試是一個將測試和開發(fā)緊密結(jié)合的模型[1]。它的基本思想包括:
1)對開發(fā)過程中每一個可交付的產(chǎn)品進(jìn)行測試;
可行性研究報告、需求說明書、設(shè)計說明書、源程序代碼等都是測試的對象。
2)驗收測試和技術(shù)測試相互獨立;
前置測試將技術(shù)測試和驗收測試分開進(jìn)行,從不同的角度分別驗證系統(tǒng)是否能夠按預(yù)期所設(shè)想的那樣正常工作,這樣可以更有效的保證產(chǎn)品的質(zhì)量。
3)測試和開發(fā)緊密結(jié)合;
前置測試將測試執(zhí)行和開發(fā)結(jié)合在一起,并以編碼—測試—編碼—測試的方式重復(fù)進(jìn)行。
4)在設(shè)計階段進(jìn)行測試計劃制定和測試方案的設(shè)計。
1.3 軟件測試管理
軟件測試管理是一種活動,可以對各階段的測試計劃、測試用例、測試流程進(jìn)行管理、跟蹤、記錄其結(jié)果,并將其結(jié)果反饋給系統(tǒng)的開發(fā)者和管理者,同時將測試人員發(fā)現(xiàn)的缺陷記錄下來,生成缺陷報告并對之進(jìn)行管理[2]。
2 基于過程的軟件測試管理系統(tǒng)(P-TMS)的研究
本文主要借鑒前置測試的思想,將軟件測試融入軟件開發(fā)的各個階段,提出了基于過程的軟件測試管理系統(tǒng)(P-TMS)的工作模型。并針對該工作模型對系統(tǒng)的功能結(jié)構(gòu)進(jìn)行了詳細(xì)的設(shè)計。在該模型基礎(chǔ)上構(gòu)建的軟件測試管理系統(tǒng)使得開發(fā)工作中每一環(huán)節(jié)都有測試工作做保障,并使得測試人員在開發(fā)初期就可盡早的投入到軟件測試工作中,盡可能少的將開發(fā)初期的的缺陷帶到后繼的開發(fā)工作中,對整個軟件的開發(fā)及后期維護(hù)工作起到至關(guān)重要的作用。
2.1 P-TMS的工作模型
P-TMS的工作流程模型如圖1所示。
■
圖1 P-TMS工作模型
圖1所示的工作流程描述如下:首先,系統(tǒng)分析員將某一需求項提交到需求庫,并指定需求審核員;審核員接到系統(tǒng)自動發(fā)出的通知后,對提交的需求進(jìn)行審核,審核通過后應(yīng)改變該需求的狀態(tài),同時發(fā)送通知給測試設(shè)計人員;測試設(shè)計人員參照需求項描述和驗收標(biāo)準(zhǔn),設(shè)計測試用例。當(dāng)所有的需求審核完畢后,即可形成需求規(guī)格說明書,同時測試設(shè)計人員也就完成了測試用例的設(shè)計。此時,軟件設(shè)計人員可根據(jù)需求規(guī)格說明書進(jìn)行系統(tǒng)功能的分解,確定功能項并最終形成設(shè)計說明書。測試設(shè)計人員再根據(jù)所分解的功能項并參照設(shè)計說明書進(jìn)行測試用例的設(shè)計。同時,程序員根據(jù)設(shè)計說明書或測試用例進(jìn)行代碼編寫。當(dāng)產(chǎn)品編碼完成后,由測試設(shè)計人員根據(jù)編寫好的測試用例對源程序代碼進(jìn)行測試。當(dāng)測試中發(fā)現(xiàn)缺陷時,則將缺陷提交給測試主管,測試主管對缺陷予以確認(rèn)并分類后,再分別轉(zhuǎn)交給對應(yīng)人員進(jìn)行修改,即完成了P-TMS的整個工作流程。
通過上述分析可以看出,與傳統(tǒng)的根據(jù)設(shè)計規(guī)格說明書進(jìn)行編寫測試用例的設(shè)計思想相比,P-TMS工作模型的優(yōu)點主要表現(xiàn)在如下幾個方面:
1)測試用例的設(shè)計工作被提前進(jìn)行,可以根據(jù)所識別的需求項動態(tài)地、逐步進(jìn)行測試用例的設(shè)計,這樣不但能較早地發(fā)現(xiàn)需求項中可能存在的缺陷,而且可以充分利用測試設(shè)計人員這一資源,為設(shè)計測試用例節(jié)省時間,從而提高項目開發(fā)的效率。
2)軟件設(shè)計人員所進(jìn)行的功能項分解活動和測試設(shè)計人員所進(jìn)行的依據(jù)功能項設(shè)計測試用例的活動是同步、交替進(jìn)行的。這一方面可以節(jié)省設(shè)計時間,另一方面也能夠盡早地發(fā)現(xiàn)軟件設(shè)計中的缺陷,從而降低軟件開發(fā)過程中所產(chǎn)生的缺陷對軟件項目開發(fā)的影響。
3)該工作模型支持了測試驅(qū)動開發(fā)的工作模式。開發(fā)過程中的每個功能都有相應(yīng)的測試做保障,這樣可以減少后期維護(hù)工作的工作量,降低了軟件開發(fā)與運行的成本。
2.2 P-TMS的功能
P-TMS主要包括項目規(guī)模跟蹤管理、測試計劃管理、需求跟蹤管理、測試用例管理、缺陷管理、報表做成及系統(tǒng)管理等功能。
3 P-TMS實現(xiàn)中應(yīng)用的關(guān)鍵技術(shù)
3.1 跟蹤矩陣
跟蹤矩陣提供了跟蹤能力鏈,使得被跟蹤的信息在使用全過程中得到充分地控制與應(yīng)用。P-TMS分別提供需求項和功能項與測試用例集(TCS)間的跟蹤管理,跟蹤管理通過跟蹤矩陣技術(shù)加以實現(xiàn)。
本系統(tǒng)在需求階段采用需求跟蹤矩陣,在設(shè)計階段采用功能跟蹤矩陣,分別對需求項(Requirement Item,RI)和功能項(Function Item,F(xiàn)I)進(jìn)行跟蹤管理。需求跟蹤矩陣和功能跟蹤矩陣如表1和2所示。
表1 需求跟蹤矩陣
■
表2 功能跟蹤矩陣
■
由于功能跟蹤的作用和需求跟蹤矩陣相似,所以對功能項的跟蹤矩陣,在此不再贅述。
這兩種跟蹤矩陣之間的關(guān)系:測試用例主要來源于需求和設(shè)計階段,需求項的變更及設(shè)計的修改常常都會引起測試用例的變更,所以對用例的跟蹤實際上就是對需求和設(shè)計的跟蹤。采用將需求項和功能項分別編號并建立相應(yīng)的跟蹤矩陣的方法,使跟蹤矩陣中需求項和功能項與相應(yīng)的測試用例集之間建立聯(lián)系。這樣,當(dāng)需求項發(fā)生變更時,可查看需求跟蹤矩陣,修改對應(yīng)的測試用例集。同時,由于需求的變更往往會引起功能的變更,因此還要對與需求項對應(yīng)的功能項(需求項與功能項的對應(yīng)關(guān)系通過功能項表中的需求項編號加以實現(xiàn))及其相關(guān)聯(lián)的測試用例集進(jìn)行修改。當(dāng)設(shè)計發(fā)生變化時,只要跟蹤功能項是否發(fā)生了變化,是否增加了新的功能項,根據(jù)功能項的變化,修改功能跟蹤矩陣中對應(yīng)的測試用例集,即可實現(xiàn)對功能項的跟蹤。
4 結(jié)束語
基于過程的軟件測試管理系統(tǒng)的設(shè)計工作已全部完成,目前正處于實現(xiàn)的后期階段,并準(zhǔn)備與本項目組開發(fā)的軟件項目管理的其它模塊,如需求管理、風(fēng)險管理、進(jìn)度管理、成本管理、質(zhì)量管理、配置管理集成在一起,搭建成一個實用型的項目管理平臺,使用戶可以方便的使用。
參考文獻(xiàn)
[1] 黃龍水,黃誠學(xué).軟件測試模型介紹[J].艦船電子工程,2004(3).
[2] 陳文海,秦曉.軟件測試管理工具的研究與實現(xiàn)[D].北京:中國科學(xué)院研究生院,2003.
[3] 吾守爾,斯拉木,榮濤,等.軟件錯誤生命周期的研究及其應(yīng)用[J].計算機(jī)與現(xiàn)代化,2003(2).
[4] 潘江波,馮蘭萍,印斌.基于軟件測試的缺陷管理系統(tǒng)的研究[J].圖書館自動化,2005(1).