目經(jīng)理溝通、協(xié)調(diào),以將一些重要的信息及時(shí)反映給項(xiàng)目經(jīng)理,從而使項(xiàng)目計(jì)劃能較好地支持測(cè)試工作的開展。
二、軟件測(cè)試需求分析
理論上,軟件測(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ì)軟件需求項(xiàng)、測(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ā)階段一并分析清楚。