軟件測(cè)試項(xiàng)目的啟動(dòng)、規(guī)劃與需求分析
軟件測(cè)試項(xiàng)目的啟動(dòng)、規(guī)劃以及測(cè)試項(xiàng)目需求分析往往是很多軟件服務(wù)型企業(yè)的薄弱環(huán)節(jié)所在。本文圍繞該難點(diǎn)問題,重點(diǎn)討論了這兩個(gè)階段所應(yīng)進(jìn)行的項(xiàng)目活動(dòng)以及相關(guān)工作流程。
一、軟件測(cè)試項(xiàng)目啟動(dòng)與規(guī)劃
一般地,項(xiàng)目啟動(dòng)過程組包括兩個(gè)過程[參見PMBOK2004版]:即制定項(xiàng)目章程和制定項(xiàng)目初步范圍說明書;而項(xiàng)目規(guī)劃過程組則會(huì)綜合項(xiàng)目的成本、范圍、時(shí)間、質(zhì)量、風(fēng)險(xiǎn)、人力、溝通、采購(gòu)等因素制定項(xiàng)目計(jì)劃,該項(xiàng)目計(jì)劃將用于指導(dǎo)項(xiàng)目的實(shí)際執(zhí)行。
對(duì)任一項(xiàng)目而言,有三個(gè)文件是非常重要的。即:項(xiàng)目章程、項(xiàng)目范圍說明書,項(xiàng)目管理計(jì)劃。這三個(gè)文件均產(chǎn)生于項(xiàng)目啟動(dòng)階段和項(xiàng)目規(guī)劃階段。其中項(xiàng)目章程被認(rèn)為是三大文件之首(項(xiàng)目章程、項(xiàng)目范圍說明書,項(xiàng)目管理計(jì)劃)。一個(gè)項(xiàng)目,不論大小,都應(yīng)該有項(xiàng)目章程。一個(gè)典型的項(xiàng)目章程包括如下內(nèi)容:
1)項(xiàng)目名稱及背景描述;
2)項(xiàng)目經(jīng)理任命及職責(zé)范圍界定;
3)項(xiàng)目業(yè)務(wù)需求描述;
4)項(xiàng)目發(fā)起的原因;
5)主要項(xiàng)目干系人及其初步需求;
6)產(chǎn)品及預(yù)期交付成果描述;
7)項(xiàng)目假設(shè)和約束條件。項(xiàng)目章程由項(xiàng)目發(fā)起人(Sponsor)簽發(fā),自簽發(fā)之日起,項(xiàng)目經(jīng)理即獲得法定權(quán)力。
項(xiàng)目經(jīng)理在獲得法定權(quán)力之后的第一動(dòng)作是制定項(xiàng)目初步范圍說明書。為了制定這份文檔,他/她將廣泛地收集來自項(xiàng)目發(fā)起人的需求,以便在項(xiàng)目計(jì)劃正式編制之前,與項(xiàng)目發(fā)起人在項(xiàng)目范圍的理解上達(dá)成一致。項(xiàng)目初步范圍說明書還將在后續(xù)項(xiàng)目范圍規(guī)劃過程中進(jìn)一步細(xì)化,并融入項(xiàng)目客戶、執(zhí)行組織、項(xiàng)目干系人等各方面需求,進(jìn)而形成完整的項(xiàng)目范圍說明書。項(xiàng)目初步范圍說明書編制完成以后,項(xiàng)目經(jīng)理將進(jìn)入項(xiàng)目計(jì)劃編制階段。
這個(gè)階段將會(huì)涉及項(xiàng)目管理方方面面的規(guī)劃、計(jì)劃。比較典型的有項(xiàng)目范圍基線、項(xiàng)目成本基線、項(xiàng)目進(jìn)度計(jì)劃、項(xiàng)目質(zhì)量計(jì)劃、項(xiàng)目風(fēng)險(xiǎn)分析及應(yīng)對(duì)計(jì)劃、人力資源計(jì)劃、項(xiàng)目溝通計(jì)劃以及項(xiàng)目采購(gòu)計(jì)劃。這些計(jì)劃、規(guī)劃經(jīng)過權(quán)衡、調(diào)整,最終將集成為一個(gè)完整的項(xiàng)目管理計(jì)劃。項(xiàng)目管理計(jì)劃經(jīng)由項(xiàng)目發(fā)起人、高級(jí)管理層審批以后,即可生效。此后,項(xiàng)目經(jīng)理將召開項(xiàng)目開工會(huì)議(Kickoff meeting),宣布項(xiàng)目正式開始進(jìn)入執(zhí)行階段。
項(xiàng)目啟動(dòng)階段的項(xiàng)目章程和項(xiàng)目初步范圍說明書(或SOW),也可以體現(xiàn)在分包或采購(gòu)合同中。這在軟件外包服務(wù)型企業(yè)中最為常見。通常,伴隨合同到達(dá)項(xiàng)目經(jīng)理手中的還有項(xiàng)目建議書(Project Proposal),項(xiàng)目建議書由項(xiàng)目發(fā)起人制定,內(nèi)容和項(xiàng)目章程中有關(guān)產(chǎn)品、可交付成果的描述大致類似,此外,還應(yīng)包括對(duì)項(xiàng)目經(jīng)理成功完成此項(xiàng)目的一些指導(dǎo)性建議。項(xiàng)目經(jīng)理根據(jù)合同、SOW以及Project Proposal進(jìn)行綜合考慮,與相關(guān)干系人磋商,在項(xiàng)目團(tuán)隊(duì)相關(guān)專家的幫助下,制定出合適的項(xiàng)目管理計(jì)劃。
上面討論的是一般項(xiàng)目啟動(dòng)過程組與規(guī)劃過程組。具體到測(cè)試項(xiàng)目的啟動(dòng)與規(guī)劃,工作內(nèi)容也是類似的。讀者朋友請(qǐng)根據(jù)所在測(cè)試項(xiàng)目的特點(diǎn)做適當(dāng)調(diào)整。需要交待清楚的是測(cè)試項(xiàng)目啟動(dòng)與規(guī)劃過程組有可能與其他六個(gè)過程組有重疊。比如,規(guī)劃過程組有可能在整個(gè)項(xiàng)目生命期內(nèi)都有更新和完善(典型的有滾動(dòng)波浪式規(guī)劃)。
對(duì)于整周期軟件開發(fā)項(xiàng)目的測(cè)試而言,上述過程組的內(nèi)容會(huì)有較大的差異。
比如:項(xiàng)目章程將重點(diǎn)關(guān)注開發(fā),而不會(huì)過多討論測(cè)試相關(guān)的工作。對(duì)于這一類型的軟件測(cè)試,筆者建議在任命開發(fā)項(xiàng)目經(jīng)理的同時(shí),由項(xiàng)目經(jīng)理[適用于項(xiàng)目型或強(qiáng)矩陣組織]或高層經(jīng)理[適用于弱矩陣或職能型組織]指定項(xiàng)目測(cè)試經(jīng)理。測(cè)試經(jīng)理應(yīng)根據(jù)項(xiàng)目章程、項(xiàng)目初步范圍說明書和項(xiàng)目建議書盡早開始軟件測(cè)試相關(guān)規(guī)劃和設(shè)計(jì)(即會(huì)先粗略地進(jìn)行軟件測(cè)試需求分析和軟件測(cè)試設(shè)計(jì),以后再進(jìn)一步細(xì)化),并和項(xiàng)目經(jīng)理溝通、協(xié)調(diào),以將一些重要的信息及時(shí)反映給項(xiàng)目經(jīng)理,從而使項(xiàng)目計(jì)劃能較好地支持測(cè)試工作的開展。
二、軟件測(cè)試項(xiàng)目需求分析
理論上,軟件測(cè)試需求是源于軟件需求的,而軟件需求又是源于用戶需求的。然而,有些時(shí)候在分析軟件測(cè)試需求時(shí)并不存在已經(jīng)文檔化的軟件需求規(guī)格說明。
在這種情況下,要分析軟件測(cè)試需求分析可能仍然需要追溯到用戶需求(當(dāng)發(fā)生這種情況時(shí),普通測(cè)試工程師會(huì)很吃驚地發(fā)現(xiàn)自己原來還肩負(fù)著需求開發(fā)工程師的部分職責(zé)。是的,事實(shí)上,資深的軟件測(cè)試工程師會(huì)發(fā)現(xiàn)軟件測(cè)試這個(gè)職位幾乎涉及所有的開發(fā)技能和部分管理技能。)由于后者涉及需求工程的專門知識(shí),本文略過不做細(xì)述;這里重點(diǎn)討論前者。在一個(gè)規(guī)范化的軟件需求規(guī)格說明中,用戶需求是由更高層次的業(yè)務(wù)需求(體現(xiàn)在項(xiàng)目章程、SOW、項(xiàng)目建議書等文檔中)細(xì)化而成,它通常描述了用戶使用該軟件系統(tǒng)會(huì)涉及到的不同的執(zhí)行路徑、工作邏輯以及所預(yù)期的處理結(jié)果。
在UML表示方法中,用戶需求通常通過Use Case來進(jìn)行刻畫。接下來,用戶需求將進(jìn)一步轉(zhuǎn)化為三類需求項(xiàng),即功能需求項(xiàng)、性能需求項(xiàng)以及約束性需求項(xiàng)。這三類需求項(xiàng)就是通常意義上的軟件需求項(xiàng)。管理這三類需求項(xiàng)的矩陣被稱為需求矩陣。
理論上,在測(cè)試資源許可并且確有必要的前提下,測(cè)試的使命將是驗(yàn)證和確認(rèn)待開發(fā)的軟件及其中間產(chǎn)品滿足需求矩陣各個(gè)需求項(xiàng)。(注意:為了簡(jiǎn)化討論,這里筆者沒有把需求的驗(yàn)證與確認(rèn)納入進(jìn)來,實(shí)際上這部分工作也是軟件測(cè)試工作的重要組成部分。詳細(xì)論述請(qǐng)參閱拙文《試論軟件測(cè)試學(xué)科架構(gòu)建設(shè)》)然而,幾乎沒有幾個(gè)公司或開發(fā)團(tuán)隊(duì)能夠提供這類測(cè)試所需的諸多的資源,此時(shí),一種可行的策略是將待測(cè)試的軟件需求項(xiàng)按照優(yōu)先關(guān)系進(jìn)行排序,以幫助測(cè)試經(jīng)理決策在既定資源的情況下,應(yīng)該如何統(tǒng)籌安排測(cè)試工作。
軟件需求項(xiàng)是測(cè)試需求分析的起點(diǎn),這一點(diǎn)在工程實(shí)踐中并不絕對(duì)。
對(duì)于不同階段的測(cè)試(這里主要指單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試和驗(yàn)收測(cè)試,暫不考慮驗(yàn)證技術(shù)和需求設(shè)計(jì)確認(rèn)),測(cè)試需求開發(fā)所涉及的工作內(nèi)容和方法都會(huì)略有差異。例如,如果是一個(gè)驗(yàn)收測(cè)試,那么,除了個(gè)別的需求需要做進(jìn)一步明確外,幾乎可以將測(cè)試需求等同于用戶需求和業(yè)務(wù)需求(由于該類測(cè)試是以客戶為主體,因此并不需要向下追溯到軟件需求);
又如,如果是系統(tǒng)測(cè)試,除了需要對(duì)不具備可測(cè)試性的軟件需求項(xiàng)進(jìn)一步開發(fā)外,幾乎可以對(duì)軟件需求和測(cè)試需求不做區(qū)分。再如,如果是集成測(cè)試,測(cè)試需求應(yīng)該從概要設(shè)計(jì)規(guī)格說明中導(dǎo)出。如果尚不存在概要設(shè)計(jì)規(guī)格說明,就需要從軟件需求規(guī)格說明出發(fā),與軟件設(shè)計(jì)人員協(xié)同工作,具體定出構(gòu)成系統(tǒng)的各個(gè)模塊、子系統(tǒng)、分系統(tǒng)的功能、性能、約束性條件以及相互接口關(guān)系。根據(jù)協(xié)同工作的結(jié)果,開發(fā)出對(duì)應(yīng)的測(cè)試需求。最后,如果是單元測(cè)試,測(cè)試需求應(yīng)該從詳細(xì)設(shè)計(jì)規(guī)格說明中導(dǎo)出。如果項(xiàng)目不存在概要設(shè)計(jì)規(guī)格說明,就需要從概要設(shè)計(jì)規(guī)格說明出發(fā),與軟件設(shè)計(jì)人員明確每個(gè)模塊內(nèi)部的對(duì)象屬性與方法以及對(duì)象與對(duì)象間的通信關(guān)系。根據(jù)此結(jié)果,進(jìn)一步開發(fā)相應(yīng)的測(cè)試需求。相應(yīng)地,上一節(jié)所說的對(duì)軟件需求項(xiàng)進(jìn)行優(yōu)先關(guān)系排序在實(shí)踐中要變通地理解為對(duì)測(cè)試需求項(xiàng)進(jìn)行優(yōu)先關(guān)系排序。
讀者朋友可能會(huì)問,對(duì)于整周期的開發(fā)項(xiàng)目,以上論述是否意味著測(cè)試需求開發(fā)的依據(jù)文檔是否要根據(jù)測(cè)試所處的階段而不斷調(diào)整呢?是的,筆者認(rèn)為這也是完全必要的。我們不能指望軟件需求項(xiàng)能夠描述清楚集成或單元測(cè)試階段的測(cè)試需求。測(cè)試需求的開發(fā)總是有賴于相應(yīng)層次的軟件規(guī)格說明書(只有在開發(fā)團(tuán)隊(duì)不能提供的情況下才確有必要循著“詳細(xì)設(shè)計(jì)規(guī)格說明->概要設(shè)計(jì)規(guī)格說明->軟件需求規(guī)格說明->用戶需求規(guī)格說明->項(xiàng)目章程、合同、項(xiàng)目建議書、工作說明書等”的順序往前追溯)。通常相關(guān)依據(jù)文檔的可測(cè)試性越好,測(cè)試需求開發(fā)所需要的工作量越少。
除了對(duì)軟件需求分析、測(cè)試需求項(xiàng)做優(yōu)先關(guān)系排序、對(duì)不具備可測(cè)試性或不確定的需求進(jìn)一步細(xì)化、明確化之外,測(cè)試需求開發(fā)階段的工作還包括分析各測(cè)試需求項(xiàng)之間可能的時(shí)間關(guān)系排序。哪些測(cè)試需求項(xiàng)應(yīng)該先測(cè),哪些可以延后,那些是可以并行等等,都需要在測(cè)試需求開發(fā)階段一并分析清楚。
【編輯推薦】