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

正如你可能想到的,這是一個很難滿足的角色。軟件測試開發(fā)工程師的數(shù)量如此之少的最有可能的原因是,事實具備軟件測試開發(fā)工程師所需技能的人非常難找,而不是我們刻意使用了什么神奇的生產(chǎn)率公式【譯注,開發(fā)測試比率公式】, 這也是我們適應(yīng)當(dāng)前工程實踐的一個必然結(jié)果。我們還在優(yōu)化我們的工程實踐–這是一個非常重要的任務(wù),并且為所有參與的人構(gòu)建一些流程。
通常來說,軟件測試開發(fā)工程師不會在早期設(shè)計階段就介入。不是故意這樣做,而是和多數(shù)谷歌的產(chǎn)品是如何誕生的有關(guān)。一個常見的新產(chǎn)品誕生的場景是這樣,已有的谷歌產(chǎn)品的員工會投入20%時間來開始新的產(chǎn)品。Gmail和Chrome OS這2個產(chǎn)品,從一個簡單的想法開始,并非正式地由谷歌授權(quán)去做的,慢慢地隨著時間的推移,越來越多的開發(fā)和測試加入進來并把產(chǎn)品發(fā)布。在這種情況下,早期的開發(fā)要關(guān)注的重心并不是質(zhì)量,更關(guān)注提供一些理念,在解決了擴展性和性能的問題之后,再更多地關(guān)注質(zhì)量。如果你創(chuàng)建了一個web service,但是不具有可擴展性時,測試這時候還并不是你最大的問題。
一旦這個產(chǎn)品已經(jīng)明確未來可以發(fā)布的時候,研發(fā)團隊就開始尋求測試的介入了。
你可以想象這樣一個過程,某個人有了一個好主意,他開始思考并寫了一些試驗性質(zhì)的代碼,從其他人那里獲取一些建議然后對這些代碼做了改進,并勸說更多的人加入,寫了越來越多的代碼,然后意識到他們做的事情很重要,通過更多的代碼把這個想法變成可以呈現(xiàn)給他人并得到反饋的模型… 這個項目在谷歌的項目庫中就創(chuàng)建了,這個項目慢慢地變成了一個真實的項目,測試也只有在項目變成真實的項目之后才會介入進來。
所有真實的項目都有專職的測試人員么? 默認(rèn)情況下是沒有的。小型項目和只有受限用戶使用的項目一般是開發(fā)人員自己做測試。其他的一些對個人或者企業(yè)用戶有潛在風(fēng)險的項目,測試會介入。
當(dāng)開發(fā)團隊尋求測試團隊參與并幫助他們時,他們有責(zé)任使測試人員相信他們的項目是令人興奮并充滿潛力的。開發(fā)總監(jiān)會給測試總監(jiān)解釋他們的項目、進度、發(fā)布計劃,一起討論測試工作如何劃分,并就開發(fā)需要滿足的單元測試水平及開發(fā)參與測試工作程度上達成一致,發(fā)布流程中開發(fā)與測試的責(zé)任也需要明確。軟件測試開發(fā)工程師在項目初期可能不會參與進來,一旦項目變成真實的項目后,測試人員將在軟件開發(fā)過程中發(fā)揮巨大的影響力。
當(dāng)我說“測試”時,并不是僅僅意味著單純的檢查驗證代碼路徑。測試人員不是從開始就參與進來的,但“測試”卻至始至終都有。實際上,一個開發(fā)嘗試去check in代碼的時,測試人員的影響力在這個時刻可能就已經(jīng)顯現(xiàn)出來了?!咀g,這里指軟件測試開發(fā)工程師會對開發(fā)人員的測試程度做一些要求,開發(fā)人員在check in code的時候需要想一下自己是否滿足這些要求,這就是測試人員的影響力】。歡迎繼續(xù)收聽并嘗試?yán)斫馕宜f的這些東西。
公直
2012/6/28
#p#
英文原文,
How Google Tests Software – Part Six
http://googletesting.blogspot.com/2011/05/how-google-tests-software-part-six.html
Monday, May 02, 2011 12:05 PM
By James Whittaker
The Life of an SET
SETs are Software Engineers in Test. They are software engineers who happen to write testing functionality. First and foremost, SETs are developers and the role is touted as a 100% coding role in our recruiting literature and internal job promotion ladders. When SET candidates are interviewed, the “coding bar” is nearly identical to the SWE role with more emphasis that SETs know how to test the code they create. In other words, both SWEs and SETs answer coding questions. SETs are expected to nail a set of testing questions as well.
As you might imagine, it is a difficult role to fill and it is entirely possible that the low numbers of SETs isn’t because Google has created a magic formula for productivity but more of a result of adapting our engineering practice around the reality that the SET skill set is really hard to find. We optimize on this very important task and build processes around the people who do it.
It is usually the case that SETs are not involved early in the design phase. Their exclusion is not so much purposeful as it is a by-product of how a lot of Google projects are born. A common scenario for new project creation is that some informal 20% effort takes a life of its own as an actual Google branded product. Gmail and Chrome OS are both projects that started out as ideas that were not formally mandated by Google but over time grew into shipping products with teams of developers and testers working on them. In such cases early development is not about quality, it is about proving out a concept and working on things like scale and performance that must be right before quality could even be an issue. If you can’t build a web service that scales, testing is not your biggest problem!
Once it is clear that a product can and will be built and shipped, that’s when the development team seeks out test involvement.
You can imagine a process like this: someone has an idea, they think about it, write experimental code, seek out opinions of others, write some more code, get others involved, write even more code, realize they are onto something important, write more code to mold the idea into something that they can present to others to get feedback … somewhere in all this an actual project is created in Google’s project database and the project becomes real. Testers don’t get involved until it becomes real.
Do all real projects get testers? Not by default. Smaller projects and those meant for limited users often get tested exclusively by the people who build it. Others that are riskier to our users or the enterprise (much more about risk later) get testing attention.
The onus is on the development teams to solicit help from testers and convince them that their project is exciting and full of potential. Dev Directors explain their project, progress and ship schedule to Test Directors who then discuss how the testing burden is to be shared and agree on things like SWE involvement in testing, expected unit testing levels and how the duties of the release process are going to be shared. SETs may not be involved at project inception, but once the project becomes real we have vast influence over how it is to be executed.
And when I say “testing” I don’t just mean exercising code paths. Testers might not be involved from the beginning … but testing is. In fact, an SET’s impact is felt even before a developer manages to check code into the build. Stay tuned to understand what I am talking about.
網(wǎng)頁題目:軟件測試開發(fā)工程師(SET)的生命
瀏覽地址:http://m.fisionsoft.com.cn/article/cceipig.html


咨詢
建站咨詢
