在很多時候,產(chǎn)品(或項目)總不能如期地發(fā)布(或結(jié)項),發(fā)布期總在不斷地推延,推延。大的產(chǎn)品有時會延遲一個月,幾個月,甚至半年以上。這是個普遍現(xiàn)象,因為每個軟件的測試過程都會受到諸多不定因素的影響。
近日,和業(yè)內(nèi)同行聊起過如何控制產(chǎn)品的測試進度問題。我認為,延遲問題是無法避免的,但這種風險卻可以盡量地降低。我不做測試已經(jīng)8年了,但還是有一些深刻感悟。
一、制定切實可行的測試計劃,制定和執(zhí)行計劃時,注意幾個原則:
1、務(wù)實原則
即,沒有把握的事情,不輕諾;已經(jīng)答應(yīng)的事情,不失信。
測試計劃應(yīng)依據(jù)功能設(shè)計書制定,明確測試范圍和發(fā)布條件,合理地分配和調(diào)度測試資源。并考慮版本的復雜度,和功能的成熟度,以及預(yù)期發(fā)布時間,實事求是地劃分測試階段,且對各種突發(fā)情況進行風險預(yù)估。
2、前緊后松原則
對于接手的任務(wù),要做到“前緊后松,趕早不趕晚”,盡力地按時、甚至提前完成。Bug的發(fā)現(xiàn)也盡量密集在集成測試階段和系統(tǒng)測試初期。
3、重者為先的原則
各種事務(wù)“按類別”、“分優(yōu)先級”處理。分清輕重緩急,重者為先。Bug的處理也以功能性錯誤、死機死鎖、致命等優(yōu)先級為高,邊緣死角問題為低的原則。
4、提前進入原則
國內(nèi)很多軟件企業(yè),由于受測試人手、測試人員的編碼水平、以及公司對測試的認知程度等因素影響,很難做到由測試人員來做單元測試和白盒測試,更甭說從設(shè)計階段開始了。但是,測試經(jīng)理應(yīng)該盡可能地參與到設(shè)計階段,及早地了解需求動向,為測試前期做準備。測試團隊則應(yīng)提前進入到集成測試階段,而不是從系統(tǒng)測試才開始。
因為,做過單元測試后,集成測試再由研發(fā)人員來做的話,則很容易產(chǎn)生懶散心理。集成測試階段,測試人員的進入,則能和研發(fā)有效地互動起來,把許多明顯的bug攔截在提交系統(tǒng)測試之前。早在1998年,我就提出這一想法并親身實踐。結(jié)論是,測試進入得越早,對后期的進度把控就越有效。
二、輔助自動化手段
自動化測試框架,雖然優(yōu)點很多,但由于時間、人力、物力成本投入太大,以及企業(yè)對測試的重視程度、不同軟件的不同特性等諸多因素,還有相當長的一段路要走。最起碼從目前來看,完全采用自動化還不太現(xiàn)實。
所以,可以把自動化測試作為一種輔助手段。對于有規(guī)律的、重復性強的、大數(shù)據(jù)量的,可批處理的,以及壓力測試等,采取自動化測試。
三、處理好團隊之間(研發(fā)和測試)的關(guān)系,做好團隊的內(nèi)部管理
1、走出誤區(qū)
必須要走出測試的誤區(qū)——即解除測試和研發(fā)的對立觀念。
明確測試的目的、測試經(jīng)理的職責、以及測試和研發(fā)兩大團隊的關(guān)系。測試的目的包括,驗證產(chǎn)品符合需求的程度;發(fā)現(xiàn)存在的問題進行風險預(yù)警;衡量所測版本所處的狀態(tài)。測試經(jīng)理的職責包括,掌控產(chǎn)品(或項目)的測試過程;團隊內(nèi)外的協(xié)調(diào)溝通;測試資源(人員、工具)的安排調(diào)度等。
測試過程是兩個團隊的協(xié)作,而不是兩大陣營的對壘。測試經(jīng)理和開發(fā)經(jīng)理,是兩個團隊之間溝通的橋梁和紐帶,而不是障礙。所以,作為測試經(jīng)理必須要先走出誤區(qū),并對成員加以引導。
2、強調(diào)溝通
很多單位都賦予測試方面很大的權(quán)力,集測試、品質(zhì)保證一身,這也是研發(fā)和測試存在矛盾的誘因之一。在黑盒、手動測試中,測試人員的業(yè)績與個人素質(zhì),以及情緒有很大關(guān)系;而在測試人員和開發(fā)人員交流時,研發(fā)人員的情緒也非常重要。
所以,要強調(diào)溝通。
動之以情,曉之以理,使研發(fā)和測試雙方都消除對立的觀念,要統(tǒng)一戰(zhàn)線。各種不同意見,應(yīng)盡力地通過溝通、討論的方式去說服,而不是通過行政命令的手段去壓服。
3、取長補短,經(jīng)驗共享,做同事的良師益友
想辦法調(diào)動成員的積極性。如適當放