將測試人員整合到敏捷團隊中,這是敏捷之道常常重復的一條箴言,可我們并沒有認真想過這到底意味著什么或者應該怎么做。

  團隊中測試人員的角色具體負責什么呢?他們要:

  協(xié)助團隊抽取并定義驗收條件(或需求)

  提供相關(guān)質(zhì)量信息,而不是通過自動化測試、探索性測試(exploratory test)[譯注]來尋找bug

  與客戶一起工作,識別風險

  在開發(fā)人員測試(單元測試與集成測試)的薄弱環(huán)節(jié)投入更多精力。比如,如果我們知道團隊已經(jīng)完成了對數(shù)據(jù)層的測試,但是GUI層難于進行單元測試,那測試人員應該花費更多努力在這一層的測試上。

  選編自(Cem Kaner, Johanna Rotheman(pdf),以及Jonathan Kohl)。

  與大多數(shù)人已經(jīng)熟知的傳統(tǒng)測試經(jīng)驗大不相同,敏捷團隊中的測試有其自身特點。Jonathan Kohl,是Kohl Concepts的聯(lián)合創(chuàng)始人。如他所說:“不同之處在于:在敏捷項目中,我們可以更快地找到重要的bug。我們更愿意將測試貫穿于開發(fā)過程始終,F(xiàn)在開發(fā)人員們使用可靠的自動化測試來讓他們的工作更加嚴謹,我所測試的產(chǎn)品也更加健壯了。”

  Antony Marcano是一位敏捷測試獨立咨詢顧問,他提及了自己學習到的一些經(jīng)驗:

  編寫驗收測試需要協(xié)作:尤其是在客戶、測試人員和程序員之間。

  測試人員與開發(fā)人員應該互相提升彼此的技能。

  測試任務應該作為sprint backlog的一部分,而不能是單獨的測試計劃。

  使用“探索性測試”來產(chǎn)生反饋。

  在修復bug之前,要先寫自動化測試以重現(xiàn)這些bug。

  Simon Baker是Energized Work的聯(lián)合創(chuàng)始人。在他的團隊中,開發(fā)人員編寫絕大部分的驗收測試。測試人員從而可以專注于進行“探索性測試”,并與Product Owner一起與客戶溝通,并幫助團隊理解用戶(而不僅僅是故事)。開發(fā)人員針對垂直的切片(故事的小部分)展開工作,以滿足特定的驗收條件。當切片完成后,開發(fā)人員與測試人員一起仔細檢查切片,并理解驗收測試。團隊將缺陷視為工作線性進展的停止點。開發(fā)人員可以在下次切片處理過程中修復缺陷,或者選擇創(chuàng)建一個缺陷修復任務,從而使其不再處于開發(fā)階段。缺陷修復任務成為團隊優(yōu)先級高的任務。測試人員發(fā)現(xiàn),即使他們與開發(fā)人員都使用同樣的技能,還是要花費很多時間彼此協(xié)作,而整理bug的時間反而少了。