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

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

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

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

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


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

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

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


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

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

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

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

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

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

 

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

 

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