原創翻譯:James Whittaker系列——Google是如何測試的(2)

 原創翻譯,請勿轉載!!!!


     爲了讓“you build it,you break it”的格言成真,在傳統的軟件開發崗位之外,需要再設置幾個必要的角色。特別地,能做開發同時又能有效且高效地做測試的這類工程師角色,是必要的。在Google,我們增加了這類角色的崗位,來幫助其他工程師提高工作效率。這類工程師通常把自己看成是測試人員,但是他們真正的使命是提高生產率。他們的存在是爲了讓研發人員的工作更加有效,特別是對產品質量的提升方面。這裏是對這一角色的一些總結:

      軟件開發工程師(SWE)是一個傳統上的開發角色。他們的工作是實現產品功能的代碼。他們創建設計文檔、選擇最優的數據結構和整體框架,並且花費大量的時間在代碼的實現和代碼的審覈上。SWE需要編寫包括測試驅動設計、單元測試、參與各種大中小規模的測試等等。SWE對自己涉及部分的產品質量負責,不論這部分代碼是不是他寫的、是不是他修復的的或者修改的。


    軟件測試開發工程師(SET)也是一個開發角色,只是其工作的重心是在產品的可測試性和通用測試基礎框架上。他們參與設計評審、密切關注產品質量和風險。爲了增加代碼的可測試性,他們甚至會重構代碼,並編寫單元測試框架和自動化框架。SET與SWE在代碼構建上是合作伙伴,相比於SWE主要負責增加新功能和提升產品代碼性能,SET更加關注提高產品質量和測試覆蓋率上。


    測試工程師(TE)是一個和SET工作方式相反的角色,它把測試放在首位,開發放在其後。Google大部分TE的工作重點是編寫模擬用戶使用場景的自動化腳本、甚至有時他們就把自己當成用戶。他們也組織SWE和SET的測試工作、角色測試結果、驅動測試執行、特別是在項目的後期階段,推動產品發佈。TE是產品專家、質量顧問和風險分析師。

   

      從產品質量的角度來看,SWE獨立負責產品功能和其質量。他們負責錯誤的代碼設計、錯誤的代碼修復、TDD、單元測試,並和SET一起編寫測試代碼。

    SET也是開發人員,負責提供測試支持。Google有一種測試框架,通過使用樁、mock和管理代碼Check in的提交隊列,可以把新開發的代碼隔離來。換句話說,SET編寫的代碼可以幫助SWE來測試他們寫的功能代碼。多數的實際測試由SWE來執行,SET的工作,就是確保這些功能模塊的可測試性,確保SWE也參與到測試代碼的編寫中去。
      很明顯,SET的主要關注對象是開發人員。SET的首要職責是各個模塊的質量保證並保證開發人員可以很容易地測試自己寫的代碼。這種開發模式的缺陷,我想讀者已經注意到了:那用戶方面的測試呢?

        

    用戶需求的測試是TE的職責。考慮到SWE和SET已經做了足夠多的模塊和功能級別的測試,下一步要考慮的就是驗證這些可執行的代碼和數據集成起來運行是否能滿足用戶的需求。TE扮演的是雙角色,首先,它要確認開發人員測試方面的工作是否做到位,任何明顯的BUG都會暴露出開發人員早期測試工作不到位甚至馬虎,當這類明顯的BUG變少時,TE就會把注意力轉移到用戶場景的驗證上去,確保產品的性能、安全性、國際性等。TE在執行大量測試的同時,也負責和其他團隊的TE、外包測試人員、產品原型測試的衆多測試者、內部嚐鮮者、Beta用戶及早期用戶進行合作交流,與各方討論產品基礎設計帶來的風險、功能邏輯的複雜度,及產品缺陷的規避方法。一旦TE參與到項目中,他們的工作基本就停不下來。

OK,現在各種角色已經有基本瞭解了,我會對各角色的工作內容做更詳細的說明。留到下次吧。。。感謝你的關注。

【譯者注,“you build it, you break it”這句格言,後面還有一句是you fix it。“You build it, you break it,you fix it”,這句話的意思是,誰開發的代碼,誰就更適合做測試,中文俗語就是“誰的屁股誰自己擦”】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章