谷歌如何做軟件測試???第二部分
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/3/21 13:43:33 ] 推薦標(biāo)簽:
本文是從 How Google Tests Software - Part Two 這篇文章翻譯而來。本文作者 James Whittaker, 前微軟架構(gòu)師,是“How to Break Software”系列圖書中好幾部書的作者,現(xiàn)任Google測試工程主管,近他寫了一系列的關(guān)于谷歌如何測試軟件的文章,本文為其系列的第二部分。
為了實(shí)現(xiàn)”誰的屁股誰自己擦”這句名言所說的那樣,在傳統(tǒng)的軟件開發(fā)人員的之上,有必要增加了幾個(gè)角色,特別是需要工程技術(shù)方面的特殊角色,這種角色可以讓開發(fā)更高效低做測試。在谷歌,這樣角色的職責(zé)是讓其他人工作的更有效率,這樣的工程師通常會(huì)把自己當(dāng)做測試人員,但他們真正的使命是提高生產(chǎn)力/生產(chǎn)率。他們的存在是為了讓開發(fā)人員效率提升,特別是在質(zhì)量方面的提升,因?yàn)楫a(chǎn)品質(zhì)量是生產(chǎn)率中重要的一部分。這里是這些角色的總結(jié):
軟件開發(fā)工程師, 是傳統(tǒng)的開發(fā)人員。軟件工程師實(shí)現(xiàn)一些功能代碼并把終產(chǎn)品提供給用戶使用,他們創(chuàng)建設(shè)計(jì)文檔、設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和總體的架構(gòu)搭建,他們大多數(shù)時(shí)間都在寫代碼和評審代碼。同時(shí),他們也會(huì)寫很多的測試代碼,包括測試驅(qū)動(dòng)設(shè)計(jì),單元測試,并參與后面的文章會(huì)講到的小、中、大型測試的創(chuàng)建工作。軟件工程師需要對他們自己寫的代碼、修復(fù)缺陷的代碼、改進(jìn)的代碼,只要是他們接觸過的代碼的質(zhì)量負(fù)責(zé)。
軟件測試開發(fā)工程師,和軟件開發(fā)工程師一樣是開發(fā)工程師,主要負(fù)責(zé)軟件的可測試性。他們參與設(shè)計(jì)評審,近距離地關(guān)注代碼質(zhì)量和風(fēng)險(xiǎn),對代碼做重構(gòu)為了系統(tǒng)有更好的可測試性,同時(shí)他們負(fù)責(zé)寫單元測試框架和自動(dòng)化測試的框架。在代碼級(jí)別上他們和軟件開發(fā)工程師是合作伙伴,但如果和增加新功能或提升性能相比較,他們更關(guān)心產(chǎn)品的質(zhì)量和測試覆蓋率的提升。
軟件測試工程師,和軟件測試開發(fā)工程師恰恰相反,他得主要工作是做測試而不是開發(fā)。許多谷歌的軟件測試工程師會(huì)花很多的時(shí)間在寫測試代碼上,包括自動(dòng)化腳本、使用場景的代碼、甚至模擬終用戶的操作方面的代碼。他們對軟件開發(fā)工程師和軟件測試開發(fā)工程師的測試工作做一些組織安排,解釋測試結(jié)果、驅(qū)動(dòng)測試的執(zhí)行,特別是在項(xiàng)目即將發(fā)布的后期將起到非常重要的作用。軟件測試工程師既是產(chǎn)品專家也是質(zhì)量顧問更是風(fēng)險(xiǎn)分析師。
從質(zhì)量的角度來看,軟件開發(fā)工程師對功能開發(fā)和質(zhì)量負(fù)有全責(zé)。同時(shí),他們還負(fù)責(zé)容錯(cuò)設(shè)計(jì)、故障恢復(fù)、TDD、單元測試、和在軟件測試開發(fā)工程師的幫助下寫測試代碼,這些測試代碼會(huì)驗(yàn)證開發(fā)的功能。
軟件測試開發(fā)工程師是提供測試支持的開發(fā)人員。他們提供一種能夠?qū)⑿绿砑拥拇a通過模擬其依賴的方式做功能驗(yàn)證的技術(shù)框架,并應(yīng)用在代碼提交之前的提交隊(duì)列管理之中【注,這樣可以在代碼check in 的時(shí)候保證新代碼的功能完備】?梢赃@樣說,軟件測試開發(fā)工程師是為了讓軟件工程師可以測試他們的功能代碼,所有真正的測試都是軟件開發(fā)工程師完成的,軟件測試開發(fā)工程師是保證這些功能有很好的可測試性,這樣可以讓軟件開發(fā)工程師很積極地參與到測試用例代碼的編寫中去。
現(xiàn)在所有的一切很清楚了,軟件測試開發(fā)工程師是服務(wù)人員,他們的主要職責(zé)讓開發(fā)人員很方便簡單的做測試并保證模塊級(jí)別的產(chǎn)品質(zhì)量。讀者可能已經(jīng)意識(shí)到一個(gè)問題,在這樣的研發(fā)流程下,使用軟件的終用戶會(huì)怎樣?
在谷歌,軟件測試工程師的職責(zé)是終用戶級(jí)別的測試。如果軟件開發(fā)工程師和軟件測試開發(fā)工程師很好地做了模塊級(jí)別的功能測試,下一個(gè)工作是看許多功能集成和數(shù)據(jù)的組合是否能夠滿足終用戶的使用需求。軟件測試工程師在這里是扮演一個(gè)雙重確認(rèn)開發(fā)工程師測試工作的角色,任何明顯的缺陷都會(huì)說明之前一輪的開發(fā)自測不夠或比較草率,如果沒有出現(xiàn)這種情況之后,軟件測試工程師會(huì)將注意力轉(zhuǎn)移到普通用戶的使用場景測試上,保證性能、安全、國際化等方面沒有問題。軟件測試工程師們需要做大量的測試工作,并在測試工程師、測試合同工、吃狗糧的嘗鮮者、beta測試用戶、早期終用戶之間做很多溝通交流的工作,他們會(huì)和基礎(chǔ)設(shè)計(jì)、功能復(fù)雜度、避免錯(cuò)誤的方法等方面遇到問題的人做確認(rèn)。一旦軟件測試工程師開始介入,總是會(huì)沒完沒了。
好了,現(xiàn)在大家對這些角色應(yīng)該有比較好的理解了,接下來我會(huì)在他們之間是怎么分工合作做更詳盡的剖析。下次再聊。。。謝謝您的關(guān)注。
相關(guān)推薦
最新發(fā)布
性能測試之測試環(huán)境搭建的方法
2020/7/21 15:39:32軟件測試是從什么時(shí)候開始被企業(yè)所重視的呢?
2020/7/17 9:09:11Android自動(dòng)化測試框架有哪些?有什么用途?
2020/7/17 9:03:50什么樣的項(xiàng)目適合做自動(dòng)化?自動(dòng)化測試人員應(yīng)具備怎樣的能力?
2020/7/17 8:57:06幾大市面主流性能測試工具測評
2020/7/17 8:52:11RPA機(jī)器人能夠快速響應(yīng)企業(yè)需求,是怎么做到的?
2020/7/17 8:48:05Bug可以真正消滅嗎?為什么?
2020/7/17 8:43:03軟件測試基本概念是怎么來的?軟件測試生命周期的形成歷經(jīng)了什么?
2020/7/16 9:11:10