? ? 測(cè)試不能成為導(dǎo)致創(chuàng)新和開(kāi)發(fā)過(guò)程變慢的阻礙堕花。質(zhì)量從來(lái)不僅僅是測(cè)試人員的問(wèn)題,在Google粥鞋,每個(gè)寫(xiě)代碼的開(kāi)發(fā)者本身就是測(cè)試者缘挽。
? ? 1)質(zhì)量不等于測(cè)試
? ? 質(zhì)量更像是一種預(yù)防行為,而不是檢測(cè)呻粹。質(zhì)量是開(kāi)發(fā)過(guò)程的問(wèn)題壕曼,而不是測(cè)試問(wèn)題。當(dāng)開(kāi)發(fā)過(guò)程和測(cè)試一起攜手聯(lián)姻時(shí)等浊,即是質(zhì)量達(dá)成之時(shí)腮郊。
? ? 2)角色
? ? 軟件開(kāi)發(fā)工程師(Software Engineer, SWE),他們的工作是實(shí)現(xiàn)最終用戶所使用的功能代碼。SWE會(huì)對(duì)他們編寫(xiě)筹燕、修復(fù)以及修改的代碼承擔(dān)質(zhì)量責(zé)任轧飞。
? ? 軟件測(cè)試開(kāi)發(fā)工程師(Software Engineer in Test,SET)撒踪,他們的工作重心在可測(cè)試性和通用測(cè)試基礎(chǔ)框架上过咬。
? ? SWE關(guān)注于功能性或性能性代碼,而SET關(guān)注于質(zhì)量提升和測(cè)試覆蓋率的增加制妄。SET寫(xiě)代碼的目的是可以讓SWE測(cè)試自己的功能掸绞。測(cè)試工程師(Test Engineer,TE)把用戶放在第一位來(lái)思考,代表用戶的利益耕捞。他們會(huì)把SWE和SET編寫(xiě)的測(cè)試進(jìn)行組織衔掸、分析烫幕、解釋、測(cè)試運(yùn)行結(jié)果敞映,推進(jìn)產(chǎn)品發(fā)布纬霞。TE是真正的產(chǎn)品專(zhuān)家、質(zhì)量顧問(wèn)和風(fēng)險(xiǎn)分析師驱显。
? ? SWE和SET主要是模塊級(jí)別與功能級(jí)別的測(cè)試诗芜。TE則關(guān)注于用戶角度的測(cè)試,另外確認(rèn)開(kāi)發(fā)在測(cè)試方面的工作是否到位埃疫。
? ? 3)組織結(jié)構(gòu)
? ? 測(cè)試團(tuán)隊(duì)是獨(dú)立存在的部門(mén)伏恐,是與專(zhuān)注領(lǐng)域部門(mén)平行的部門(mén)。測(cè)試團(tuán)隊(duì)栓霜,會(huì)根據(jù)不同產(chǎn)品團(tuán)隊(duì)的優(yōu)先級(jí)虽画、復(fù)雜度等進(jìn)行比較后,分配測(cè)試人員谅阿。這樣可以保證測(cè)試人員方便在各個(gè)團(tuán)隊(duì)推廣測(cè)試技術(shù)慧脱,并讓產(chǎn)品團(tuán)隊(duì)無(wú)權(quán)降低測(cè)試人員的招聘要求。另外仅炊,Google對(duì)于在某個(gè)產(chǎn)品中工作滿18個(gè)月后的測(cè)試人員斗幼,可無(wú)理由自愿轉(zhuǎn)崗到其他產(chǎn)品。
4)爬抚垄、走蜕窿、跑
? ? Google從來(lái)不會(huì)在一次產(chǎn)品發(fā)布中包含大量的功能,實(shí)際上呆馁,在一個(gè)產(chǎn)品的基本核心功能實(shí)現(xiàn)之后桐经,就立即對(duì)外發(fā)布使用,然后從用戶那里得到真實(shí)反饋浙滤,再進(jìn)行迭代開(kāi)發(fā)阴挣。為了發(fā)布beta版本,一個(gè)產(chǎn)品要經(jīng)歷一系列的內(nèi)部版本驗(yàn)證纺腊。
? ? 金絲雀版本:每日構(gòu)建畔咧,產(chǎn)品相關(guān)的人才會(huì)安裝這個(gè)版本。
? ? 開(kāi)發(fā)版本:每周構(gòu)建摹菠,該版本具有一定的功能并通過(guò)了一系列的測(cè)試盒卸,該產(chǎn)品下的所有人會(huì)要求安裝這個(gè)版本。
? ? 測(cè)試版本:差不多每月構(gòu)建次氨,該版本通過(guò)了持續(xù)測(cè)試蔽介,比較穩(wěn)定,公司內(nèi)部可使用,一些想早合作的外部合作伙伴也會(huì)使用這個(gè)版本虹蓄。
? ? beta或發(fā)布版本:對(duì)外發(fā)布的第一個(gè)版本犀呼,通過(guò)了內(nèi)部使用和所有質(zhì)量考核的一個(gè)版本。
? ? 5)測(cè)試類(lèi)型
? ? 小型測(cè)試薇组,用于驗(yàn)證一個(gè)單獨(dú)函數(shù)或獨(dú)立功能模塊的代碼是否按照預(yù)期工作外臂。主要是SWE實(shí)現(xiàn),也會(huì)有少量的SET參與律胀。
? ? 中型測(cè)試宋光,一般會(huì)涉及兩個(gè)或兩個(gè)以上模塊的交互,嘗試解決的問(wèn)題是炭菌,一系列臨近的模塊互相交互時(shí)罪佳,是否如預(yù)期那樣。在開(kāi)發(fā)早期赘艳,主要是SET驅(qū)動(dòng)這些測(cè)試的實(shí)現(xiàn)克握,SWE深度參與菩暗;在開(kāi)發(fā)后期,TE會(huì)通過(guò)手動(dòng)方式或自動(dòng)化執(zhí)行這些用例婴梧。
? ? 大型測(cè)試客蹋,涵蓋三個(gè)或更多功能模塊孽江,使用真實(shí)用戶使用場(chǎng)景和實(shí)際用戶數(shù)據(jù)岗屏,一般可能需要消耗數(shù)小時(shí)或更長(zhǎng)的時(shí)間才能運(yùn)行完成。關(guān)注點(diǎn)在于所有模塊的集成婉烟,更傾向于結(jié)果驅(qū)動(dòng)暇屋。三種工程師均會(huì)參與到大型測(cè)試中。
? ? 關(guān)于自動(dòng)化與手動(dòng)測(cè)試昙衅,當(dāng)然更傾向于前者。如果能夠自動(dòng)化著瓶,并不需要人腦的睿智與直覺(jué)來(lái)判斷材原,那就應(yīng)該自動(dòng)化季眷。Google甚至把開(kāi)bug和日常的手動(dòng)工作都自動(dòng)化實(shí)現(xiàn)了,例如客叉,如果自動(dòng)化用例運(yùn)行失敗话告,會(huì)直接找到最后一個(gè)Commit的人沙郭,并給此人發(fā)一封郵件,并開(kāi)一個(gè)bug來(lái)記錄吓著。
? ? 總而言之送挑,看完第一章,對(duì)文章中的一些理念與操作所震驚到了~