測(cè)試項(xiàng)目的啟動(dòng)、規(guī)劃以及測(cè)試項(xiàng)目需求分析往往是很多軟件服務(wù)型企業(yè)的薄弱環(huán)節(jié)所在。本文圍繞該難點(diǎn)問(wèn)題,重點(diǎn)討論了這兩個(gè)階段所應(yīng)進(jìn)行的項(xiàng)目活動(dòng)以及相關(guān)工作流程。

  一、測(cè)試項(xiàng)目啟動(dòng)與規(guī)劃

  一般地,項(xiàng)目啟動(dòng)過(guò)程組包括兩個(gè)過(guò)程[參見(jiàn)PMBOK2004版]:即制定項(xiàng)目章程和制定項(xiàng)目初步范圍說(shuō)明書;而項(xiàng)目規(guī)劃過(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)目范圍說(shuō)明書,項(xiàng)目管理計(jì)劃。這三個(gè)文件均產(chǎn)生于項(xiàng)目啟動(dòng)階段和項(xiàng)目規(guī)劃階段。其中項(xiàng)目章程被認(rèn)為是三大文件之首(項(xiàng)目章程、項(xiàng)目范圍說(shuō)明書,項(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)目初步范圍說(shuō)明書。為了制定這份文檔,他/她將廣泛地收集來(lái)自項(xiàng)目發(fā)起人的需求,以便在項(xiàng)目計(jì)劃正式編制之前,與項(xiàng)目發(fā)起人在項(xiàng)目范圍的理解上達(dá)成一致。項(xiàng)目初步范圍說(shuō)明書還將在后續(xù)項(xiàng)目范圍規(guī)劃過(guò)程中進(jìn)一步細(xì)化,并融入項(xiàng)目客戶、執(zhí)行組織、項(xiàng)目干系人等各方面需求,進(jìn)而形成完整的項(xiàng)目范圍說(shuō)明書。項(xiàng)目初步范圍說(shuō)明書編制完成以后,項(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)過(guò)權(quán)衡、調(diào)整,終將集成為一個(gè)完整的項(xiàng)目管理計(jì)劃。項(xiàng)目管理計(jì)劃經(jīng)由項(xiàng)目發(fā)起人、高級(jí)管理層審批以后,即可生效。此后,項(xiàng)目經(jīng)理將召開(kāi)項(xiàng)目開(kāi)工會(huì)議(Kickoff meeting),宣布項(xiàng)目正式開(kāi)始進(jìn)入執(zhí)行階段。

  項(xiàng)目啟動(dòng)階段的項(xiàng)目章程和項(xiàng)目初步范圍說(shuō)明書(或SOW),也可以體現(xiàn)在分包或采購(gòu)合同中。這在軟件外包服務(wù)型企業(yè)中為常見(jiàn)。通常,伴隨合同到達(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ò)程組與規(guī)劃過(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ī)劃過(guò)程組有可能與其他六個(gè)過(guò)程組有重疊。比如,規(guī)劃過(guò)程組有可能在整個(gè)項(xiàng)目生命期內(nèi)都有更新和完善(典型的有滾動(dòng)波浪式規(guī)劃)。

  對(duì)于整周期軟件開(kāi)發(fā)項(xiàng)目的測(cè)試而言,上述過(guò)程組的內(nèi)容會(huì)有較大的差異。比如:項(xiàng)目章程將重點(diǎn)關(guān)注開(kāi)發(fā),而不會(huì)過(guò)多討論測(cè)試相關(guān)的工作。對(duì)于這一類型的軟件測(cè)試,筆者建議在任命開(kāi)發(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)目初步范圍說(shuō)明書和項(xiàng)目建議書盡早開(kāi)始軟件測(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è)試工作的開(kāi)展。

  二、軟件測(cè)試需求分析

  理論上,軟件測(cè)試需求是源于軟件需求的,而軟件需求又是源于用戶需求的。然而,有些時(shí)候在分析軟件測(cè)試需求時(shí)并不存在已經(jīng)文檔化的軟件需求規(guī)格說(shuō)明。在這種情況下,要分析軟件測(cè)試需求可能仍然需要追溯到用戶需求(當(dāng)發(fā)生這種情況時(shí),普通測(cè)試工程師會(huì)很吃驚地發(fā)現(xiàn)自己原來(lái)還肩負(fù)著需求開(kāi)發(fā)工程師的部分職責(zé)。是的,事實(shí)上,的軟件測(cè)試工程師會(huì)發(fā)現(xiàn)軟件測(cè)試這個(gè)職位幾乎涉及所有的開(kāi)發(fā)技能和部分管理技能。)由于后者涉及需求工程的專門知識(shí),本文略過(guò)不做細(xì)述;這里重點(diǎn)討論前者。在一個(gè)規(guī)范化的軟件需求規(guī)格說(shuō)明中,用戶需求是由更高層次的業(yè)務(wù)需求(體現(xiàn)在項(xiàng)目章程、SOW、項(xiàng)目建議書等文檔中)細(xì)化而成,它通常描述了用戶使用該軟件系統(tǒng)會(huì)涉及到的不同的執(zhí)行路徑、工作邏輯以及所預(yù)期的處理結(jié)果。在UML表示方法中,用戶需求通常通過(guò)Use Case來(lái)進(jìn)行刻畫。接下來(lái),用戶需求將進(jìn)一步轉(zhuǎn)化為三類需求項(xiàng),即功能需求項(xiàng)、性能需求項(xiàng)以及約束性需求項(xiàng)。這三類需求項(xiàng)是通常意義上的軟件需求項(xiàng)。管理這三類需求項(xiàng)的矩陣被稱為需求矩陣。