軟件測試開發(fā)工程師【SET】的生命

  軟件測試開發(fā)工程師【Software Engineers in Test】是軟件工程師,專注在測試實(shí)現(xiàn)。首先,軟件測試開發(fā)工程師是開發(fā)角色,在招聘和內(nèi)部晉升資料中被我們奉為的編碼角色。當(dāng)在招聘面試軟件測試開發(fā)工程師的時(shí)候,對于編碼的要求幾乎和對軟件開發(fā)工程師的要求是一模一樣的,而且更強(qiáng)調(diào)如何去測試自己寫的代碼。換句話說,軟件開發(fā)工程師和軟件測試開發(fā)工程師都需要回答編碼問題,而且軟件測試開發(fā)工程師會被問到一系列測試相關(guān)的問題。

  正如你可能想到的,這是一個(gè)很難滿足的角色。軟件測試開發(fā)工程師的數(shù)量如此之少的有可能的原因是,事實(shí)具備軟件測試開發(fā)工程師所需技能的人非常難找,而不是我們刻意使用了什么神奇的生產(chǎn)率公式【譯注,開發(fā)測試比率公式】, 這也是我們適應(yīng)當(dāng)前工程實(shí)踐的一個(gè)必然結(jié)果。我們還在優(yōu)化我們的工程實(shí)踐?這是一個(gè)非常重要的任務(wù),并且為所有參與的人構(gòu)建一些流程。

  通常來說,軟件測試開發(fā)工程師不會在早期設(shè)計(jì)階段介入。不是故意這樣做,而是和多數(shù)谷歌的產(chǎn)品是如何誕生的有關(guān)。一個(gè)常見的新產(chǎn)品誕生的場景是這樣,已有的谷歌產(chǎn)品的員工會投入20%時(shí)間來開始新的產(chǎn)品。Gmail和Chrome OS這2個(gè)產(chǎn)品,從一個(gè)簡單的想法開始,并非正式地由谷歌授權(quán)去做的,慢慢地隨著時(shí)間的推移,越來越多的開發(fā)和測試加入進(jìn)來并把產(chǎn)品發(fā)布。在這種情況下,早期的開發(fā)要關(guān)注的重心并不是質(zhì)量,更關(guān)注提供一些理念,在解決了擴(kuò)展性和性能的問題之后,再更多地關(guān)注質(zhì)量。如果你創(chuàng)建了一個(gè)web service,但是不具有可擴(kuò)展性時(shí),測試這時(shí)候還并不是你大的問題。

  一旦這個(gè)產(chǎn)品已經(jīng)明確未來可以發(fā)布的時(shí)候,研發(fā)團(tuán)隊(duì)開始尋求測試的介入了。

  你可以想象這樣一個(gè)過程,某個(gè)人有了一個(gè)好主意,他開始思考并寫了一些試驗(yàn)性質(zhì)的代碼,從其他人那里獲取一些建議然后對這些代碼做了改進(jìn),并勸說更多的人加入,寫了越來越多的代碼,然后意識到他們做的事情很重要,通過更多的代碼把這個(gè)想法變成可以呈現(xiàn)給他人并得到反饋的模型…  這個(gè)項(xiàng)目在谷歌的項(xiàng)目庫中創(chuàng)建了,這個(gè)項(xiàng)目慢慢地變成了一個(gè)真實(shí)的項(xiàng)目,測試也只有在項(xiàng)目變成真實(shí)的項(xiàng)目之后才會介入進(jìn)來。

  所有真實(shí)的項(xiàng)目都有專職的測試人員么? 默認(rèn)情況下是沒有的。小型項(xiàng)目和只有受限用戶使用的項(xiàng)目一般是開發(fā)人員自己做測試。其他的一些對個(gè)人或者企業(yè)用戶有潛在風(fēng)險(xiǎn)的項(xiàng)目,測試會介入。

  當(dāng)開發(fā)團(tuán)隊(duì)尋求測試團(tuán)隊(duì)參與并幫助他們時(shí),他們有責(zé)任使測試人員相信他們的項(xiàng)目是令人興奮并充滿潛力的。開發(fā)總監(jiān)會給測試總監(jiān)解釋他們的項(xiàng)目、進(jìn)度、發(fā)布計(jì)劃,一起討論測試工作如何劃分,并開發(fā)需要滿足的單元測試水平及開發(fā)參與測試工作程度上達(dá)成一致,發(fā)布流程中開發(fā)與測試的責(zé)任也需要明確。軟件測試開發(fā)工程師在項(xiàng)目初期可能不會參與進(jìn)來,一旦項(xiàng)目變成真實(shí)的項(xiàng)目后,測試人員將在軟件開發(fā)過程中發(fā)揮巨大的影響力。

  當(dāng)我說“測試”時(shí),并不是僅僅意味著單純的檢查驗(yàn)證代碼路徑。測試人員不是從開始參與進(jìn)來的,但“測試”卻至始至終都有。實(shí)際上,一個(gè)開發(fā)嘗試去check in代碼的時(shí),測試人員的影響力在這個(gè)時(shí)刻可能已經(jīng)顯現(xiàn)出來了。【譯,這里指軟件測試開發(fā)工程師會對開發(fā)人員的測試程度做一些要求,開發(fā)人員在check in code的時(shí)候需要想一下自己是否滿足這些要求,這是測試人員的影響力】。歡迎繼續(xù)收聽并嘗試?yán)斫馕宜f的這些東西。