軟件開發(fā)團(tuán)隊(duì)和測試團(tuán)隊(duì)之間的關(guān)系是復(fù)雜而有趣的,雙方有共同目標(biāo),又互相競爭。雙方的共同目標(biāo)在于減少軟件交付之后缺陷的嚴(yán)重程度和數(shù)量。雙方的利益競爭在于測試人員盡可能的發(fā)現(xiàn)軟件開發(fā)團(tuán)隊(duì)交付的軟件產(chǎn)品的缺陷。在這種情況下,減少無謂的內(nèi)耗,共同保證共同目標(biāo)的實(shí)現(xiàn),才可能實(shí)現(xiàn)雙方的共贏。但是在很多時(shí)候,軟件開發(fā)團(tuán)隊(duì)和測試人員之間總存在著一種緊張的關(guān)系,并因此無謂的添加了到達(dá)共同目標(biāo)的困難。

在我經(jīng)歷過的一些開發(fā)過程中,多次因?yàn)榕c測試人員之間的頗為愉快的合作,實(shí)現(xiàn)了雙贏和共贏?偨Y(jié)出來幾點(diǎn),拋磚引玉:

1. 保持良好的心態(tài),提高對開發(fā)人員與測試人員之間關(guān)系的認(rèn)識,從軟件開發(fā)人員的角度來說,需要認(rèn)識和做到以下這幾點(diǎn):

a) 測試人員為開發(fā)人員保證交付產(chǎn)品的質(zhì)量,共同或全部分擔(dān)了已交付產(chǎn)品的缺陷責(zé)任。通過測試人員的工作,能夠在交付給客戶之前發(fā)現(xiàn)軟件產(chǎn)品的缺陷。軟件產(chǎn)品不可能沒有缺陷的存在,但是被測試人員發(fā)現(xiàn)的后果遠(yuǎn)比被客戶發(fā)現(xiàn)的后果小。因此開發(fā)人員員需要具有這么一個(gè)概念:感謝測試人員在被客戶發(fā)現(xiàn)之前幫我們找到了這些缺陷。

b) 作為對交付出去的軟件產(chǎn)品的共同責(zé)任方,開發(fā)人員和測試人員之間合力于減少交付出去的軟件產(chǎn)品的缺陷,作為互相合作的雙方,開發(fā)人員需要幫助測試人員發(fā)現(xiàn)缺陷。


2. 對于客戶想法的理解,開發(fā)團(tuán)隊(duì)與測試團(tuán)隊(duì)需要達(dá)成一致并且保持同步。交付產(chǎn)品是由客戶進(jìn)行驗(yàn)收和操作的,測試人員模擬客戶對軟件產(chǎn)品的操作進(jìn)行缺陷測試。因此,開發(fā)團(tuán)隊(duì)和測試團(tuán)隊(duì)在客戶需求和軟件操作界面方面需要有共同的認(rèn)識和理解。并且隨著需求的變化和軟件的分階段發(fā)布,需要在這兩方面保持同步。這樣對于雙方來說能大幅度的減少無謂的工作量,并且提高雙方工作的質(zhì)量。具體來說有以下這些措施:

a) 開發(fā)團(tuán)隊(duì)和測試團(tuán)隊(duì)一起對初步需求和需求變化進(jìn)行討論,達(dá)成一致的理解,可以由項(xiàng)目領(lǐng)導(dǎo)/開發(fā)團(tuán)隊(duì)經(jīng)理/測試經(jīng)理/需求經(jīng)理/需求人員等召集會議,也可以由相關(guān)的開發(fā)人員,測試人員以及需求人員和客戶代表等小范圍互相討論。根據(jù)項(xiàng)目條件,組織架構(gòu),團(tuán)隊(duì)文化等的不同可以有多種方式多種手段,目的在于保證一致理解并盡可能的得到用戶認(rèn)可。如果未能達(dá)成一致的,盡可能直接或間接的與用戶溝通,根據(jù)反饋再次達(dá)成一致。即使實(shí)在無法(因溝通渠道,回報(bào)率,階段交付目標(biāo)等多種可能因素)達(dá)成一致,也能共同明確了這些不一致的地方。

b) 界面/操作設(shè)計(jì)初始和界面/操作變化階段,雙方也需要使用上面的這種方式達(dá)成一致。之所以把界面/操作(其實(shí)它們也是需求的一部分)單獨(dú)拿出來是因?yàn)榻缑?操作的設(shè)計(jì)在一些軟件組織中開發(fā)團(tuán)隊(duì)具有一定的決定權(quán),它們代表了所有開發(fā)團(tuán)隊(duì)先于測試團(tuán)隊(duì)得知其變化的需求中的組成部分。這時(shí)候需要開發(fā)團(tuán)隊(duì)主動傳遞給測試團(tuán)隊(duì),并幫助其理解,進(jìn)而雙方達(dá)成一致,或共同明確不一致的地方。


3. 互相幫助,共同提高。作為合作關(guān)系的一方,測試團(tuán)隊(duì)和開發(fā)團(tuán)隊(duì)都可以對對方提供支持和幫助,同時(shí)也能提高自己的工作效率和質(zhì)量。我總結(jié)出以下幾點(diǎn),并且在工作應(yīng)用中有很大的效果:

a) 開發(fā)團(tuán)隊(duì)在大/小版本發(fā)布之后,測試團(tuán)隊(duì)開始測試之前,為測試團(tuán)隊(duì)提供這些資料:可能存在缺陷的地方和可能存在的缺陷、已經(jīng)知道其存在的缺陷、開發(fā)團(tuán)隊(duì)未充分測試的地方、需要測試團(tuán)隊(duì)進(jìn)行詳細(xì)測試的地方。提供這些材料能幫助測試團(tuán)隊(duì)盡快的測試出有效的缺陷,并且?guī)椭_發(fā)團(tuán)隊(duì)盡快得到有價(jià)值的反饋。尤其在小版本發(fā)布的時(shí)候這個(gè)措施非常有價(jià)值。

b) 測試人員在發(fā)現(xiàn)缺陷的時(shí)候,及時(shí)與開發(fā)人員進(jìn)行溝通,經(jīng)詳細(xì)溝通之后再由測試人員記錄缺陷。這樣能減少無謂的缺陷記錄傳遞和描述修改和閱讀時(shí)間,并且能幫助測試人員增加有效缺陷記錄和幫助開發(fā)人員及早的和詳細(xì)的得知軟件缺陷。

c) 開發(fā)人員幫助測試人員進(jìn)行部署和準(zhǔn)備測試環(huán)境,并邀請測試人員對其剛初步測試過未發(fā)布的軟件進(jìn)行測試。這樣測試人員能發(fā)現(xiàn)更多的測試用例和可能缺陷存在點(diǎn),開發(fā)人員能減少自測時(shí)間并及時(shí)得到反饋。

d) 測試團(tuán)隊(duì)和開發(fā)團(tuán)隊(duì)共享測試數(shù)據(jù)和測試用例。測試團(tuán)隊(duì)和開發(fā)團(tuán)隊(duì)都需要對軟件進(jìn)行測試,都需要數(shù)據(jù)和用例,通過共享和交流,雙方都能減少工作量和提高質(zhì)量。并且通過這種交流,能保證軟件測試更全面,產(chǎn)品質(zhì)量更高。

e) 開發(fā)團(tuán)隊(duì)主動及時(shí)與測試團(tuán)隊(duì)進(jìn)行聯(lián)系,獲取軟件產(chǎn)品的缺陷分布和數(shù)量變化,這樣開發(fā)團(tuán)隊(duì)能更全面和及時(shí)的了解自己交付軟件的質(zhì)量。

 

我一直相信不管在哪種類型的團(tuán)體合作中,保持正確的心態(tài)和及時(shí)順暢的溝通都是團(tuán)隊(duì)合作關(guān)鍵的成敗因素。開發(fā)團(tuán)隊(duì)和測試團(tuán)隊(duì)之間,開發(fā)人員與測試人員之間也是如此,因?yàn)榇蠹叶紝儆谕粋(gè)團(tuán)隊(duì)??軟件交付團(tuán)隊(duì)。希望我們每個(gè)人,不管是開發(fā)還是測試,都能保持正確的心態(tài),積極主動并順暢的溝通合作,這樣,我們的會工作會更加的愉快。

 

后,感謝所有合作過的測試人員,在寫這個(gè)東西的時(shí)候回想和你們合作的時(shí)間,真是一件很快樂的事情。