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

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

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

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

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


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

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

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


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

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

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

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

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

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

 

我一直相信不管在哪種類型的團體合作中,保持正確的心態(tài)和及時順暢的溝通都是團隊合作關鍵的成敗因素。開發(fā)團隊和測試團隊之間,開發(fā)人員與測試人員之間也是如此,因為大家都屬于同一個團隊??軟件交付團隊。希望我們每個人,不管是開發(fā)還是測試,都能保持正確的心態(tài),積極主動并順暢的溝通合作,這樣,我們的會工作會更加的愉快。

 

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