谷歌如何測試軟件 —— 第二部分

來源: 外刊IT評論  發布時間: 2011-04-02 10:22  閱讀: 2474 次  推薦: 0   原文鏈接   [收藏]  
摘要:本文是從 How Google Tests Software - Part Two 這篇文章翻譯而來。 本文作者 James Whittaker, 前微軟架構師,是“How to Break Software”系列圖書中好幾部書的作者,現任Google測試工程主管,最近他寫了一系列的關于谷歌如何測試軟件的文章,本文為其系列的第二部分。

  為了做到“you build it, you break it”這句名言所說的那樣,有必要在傳統的開發人員之上再增加幾個工作角色。因為懂技術,開發人員做測試工作就更合適、更有效。在Google,我們新增的工作角色是來讓技術人員負責去提高其他人的效率。這些技術人員通常把自己看作是測試人員,但他們真正的使命是提高生產率。他們的存在可以使開發人員更高效,產品更有質量,這些都是生產率最重要的部分。下面是對這些角色的一些概述:

  軟件工程師是傳統的開發角色。軟工編寫需要提交給客戶使用的程序功能代碼。他們編寫設計文檔,設計數據結構,以及整個架構,他們主要的時間是花在開發和檢查程序代碼。軟工會寫出大量的測試程序,包括測試驅動設計,單元測試,以及我在下一部分里將會提到的整個開發工程中的小規模,中等,大規模的測試程序。軟工對他動過的任何程序的質量負責 —— 不論是自己開發的、還是改過bug的,或完善過的程序。

  測試軟件工程師同樣也是開發人員,只不過他們更側重于測試相關的東西。他們審查設計,發現里面的代碼質量問題和風險。他們重構代碼,讓程序更容易測試。測試軟工編寫單元測試/自動化測試框架。他們是軟工開發的程序的共同創造者,但更關注于提高質量和測試覆蓋率,而不是增加新功能和提高程序性能。

  測試工程師正好和測試軟件工程師反過來。這個角色是以測試第一,開發放在第二。很多Google的測試工程師的大部分時間都是在寫自動化測試腳本之類的代碼,用來驅動測試用例或模擬一個用戶。他們同時也負責組織軟工和測試軟工的測試工作,解釋測試結果和驅動測試執行,特別是在項目開發的晚期推動產品正式發布的重要角色。測試工程師是產品專家,質量顧問,風險分析師。

  從質量的角度看,軟件工程師對產品功能和產品質量負有完全獨立的職責。他們負責產品對錯誤的忍耐度的設計,錯誤恢復,測試驅動設計,單元測試,以及幫助測試軟件工程師開發那些用來測試這些程序的測試代碼。

  測試軟件工程師是編寫測試功能的開發人員。他們提供一種框架,通過虛擬物來模擬程序所依賴的各種環境,使開發出的新代碼能隔離起來運行。他們負責管理代碼的提交(check-in)。換句話說,測試軟件工程師編寫那些用來測試軟件工程師開發出的功能的測試程序。大部分的實際的測試活動都是軟件工程師執行的,測試軟件工程師只是來確保程序的各項功能都可測試,軟工以十分活躍的角色參與到這些測試用例的編寫過程中。

  很顯然,測試軟件工程師主要是為開發人員服務的。確保每個功能的質量是他們的目標,他們使開發人員能夠容易的測試自己開發出的程序。我相信有人肯定已經看出,在這個開發過程中,存在一個巨大的漏洞:怎么沒有用戶?

  用戶測試是 Google的測試工程部的工作。假設軟工和測試軟工的測試通過的話,下一步的工作就是看看這一堆的可執行代碼和數據集成起來是否滿足用戶的需求測試工程部在開發人員的工作基礎上做雙重檢查。任何明顯的bug的存在都會說明前期開發測試工作的不合格、很差勁。當這種問題很少時,測試工程部會將主要精力放在軟件在用戶場景中運行時的性能效率、安全性、國際化等問題上。

  測試工程部要做大量的測試,并且要在測試工程部和簽約測試人員,目標集體測試者,dog fooder,beta用戶,前期用戶之間配合測試。他們會同遇到到基礎設計上、功能復雜度和錯誤恢復方法上的問題的用戶進行交流。測試工程部一旦插手,事情就永遠沒個完了。

  好了,你現在對各種角色都有了較明白的理解了,我還會進一步的對如何安排他們的工作事項上進行介紹。下一次見 … 感謝你的關注。

0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()