發(fā)展趨勢:TE-> SDET->SET進化,測試工程師和軟件開發(fā)工程師的崗位在融合,開發(fā)技能變成測試工程師的標配技能之一。
一.「測試開發(fā)工程師」和「軟件測試工程師」職業(yè)定義
什么是軟件測試工程師
軟件測試工程師(Software Testing Engineer)指理解產(chǎn)品的功能要求,并對其進行測試,檢查軟件有沒有錯誤(Bug),測試軟件是否具有穩(wěn)定性(Robustness),寫出相應的測試規(guī)范和測試用例的專門工作人員。簡而言之,軟件測試工程師在一家軟件企業(yè)中擔當?shù)氖恰百|(zhì)量管理”角色,及時發(fā)現(xiàn)軟件問題并及時督促更正,確保產(chǎn)品的正常運作。
什么是測試開發(fā)工程師
軟件測試開發(fā)工程師(英語:Software Design Engineer in Test),該詞來源于微軟。 SDET在敏捷軟件流程中起著越來越關(guān)鍵的作用,既要快速了解各項知識,又要對業(yè)務能夠快速上手。 SDET是為了解決在推行敏捷過程中,軟件測試效率無法突破,并且在快速迭代中測試無法面面俱到,而產(chǎn)生的一種保證開發(fā)與測試過程之間無縫轉(zhuǎn)換的一種角色。
二.SET和SDET是什么?
軟件“測試工程師”和“ QA”角色已經(jīng)存在了數(shù)十年,2000年大規(guī)模的測試自動化變得必要。 根據(jù)Wikipedia的說法,微軟在2005年創(chuàng)造了“軟件開發(fā)測試工程師”(SDET)的頭銜,而其他公司(例如Amazon和Apple)很快采用了它。Google為相同類型的角色創(chuàng)造了“測試中的軟件工程師Software Engineer in Test”(SET)的稱呼。
三.軟件測試工程師和測試開發(fā)工程師的區(qū)別
測試開發(fā)工程師就是測試中的軟件開發(fā)工程師或測試中的軟件設計工程師,目前許多組織都要求測試開發(fā)工程師這類專業(yè)人員能夠參與應用程序開發(fā)以及所開發(fā)軟件的測試。測試人員可以不參與軟件開發(fā)的手工測試人員或質(zhì)量分析人員。測試開發(fā)工程師通常參與開發(fā)高質(zhì)量,健壯和高性能的代碼,這對于自動化測試用例或設計可用作測試工具的測試框架很有用。測試開發(fā)工程師還審查了軟件產(chǎn)品的設計和過程。測試開發(fā)工程師隨著DevOps,敏捷和持續(xù)測試的增長,它的職責正在增加。
測試開發(fā)工程師具有熟練的開發(fā)和測試技能;另一方面,測試人員參與到準備和執(zhí)行測試用例的工作中,無論是手工還是自動化。
測試人員是具有有限的編程技能,他們非常關(guān)注黑盒或功能測試,而測試開發(fā)工程師是具有良好編程技能,可以完成白盒測試以及測試自動化方面的開發(fā)人員的工作。
測試開發(fā)工程師在軟件開發(fā)方面非常精通,他們可以參與測試自動化工具的開發(fā)。測試人員不需要開發(fā)測試自動化工具,他們可以使用這些測試自動化工具來自動化軟件應用程序或項目所需的測試用例。
通常在組織中,開發(fā)測試自動化框架的測試人員或質(zhì)量分析人員承擔測試開發(fā)工程師的角色,并且可以參與軟件應用程序或其他測試自動化框架的設計評審。
測試開發(fā)工程師的職責比測試工程師承擔的角色更多,如性能測試、安全測試、測試數(shù)據(jù)的自動生成、測試環(huán)境設置、開發(fā)測試自動化工具等。
與手工測試人員不同,測試開發(fā)工程師需要具備領(lǐng)域知識,這樣他們就可以參與設計測試用例。測試人員的所有職責都由測試開發(fā)工程師承擔。
有些組織,如微軟,不區(qū)分測試人員的不同角色,并期望他們手工執(zhí)行測試,以及在需要時編寫測試自動化腳本或代碼。組織現(xiàn)在強調(diào)測試人員至少要學習一種編程語言,他們可以使用這種語言在測試自動化工具上工作。此外,自動化測試工具如Selenium、FitNesse、SAHI等具有靈活性,可以使用各種編程語言(如Python、Pearl、JAVA等)
結(jié)論:測試開發(fā)工程師不僅僅是一名測試工程師,它是開發(fā)人員和測試人員的混合體,他們接觸過項目管理,交互并理解最終用戶軟件需求,了解產(chǎn)品或領(lǐng)域知識,參與產(chǎn)品或軟件設計,知道如何編碼和構(gòu)建測試自動化工具。
小故事:陸奇和SDET
微軟作為軟件時代發(fā)跡的軟件公司,對于軟件開發(fā)有一套嚴格而切實有效的開發(fā)流程和管理模式方式。它在組織架構(gòu)上是典型的開發(fā),測試,和項目經(jīng)理三權(quán)分立的架構(gòu)。這三個組織的最高領(lǐng)導人,在很多的組織里,一直到VP以上才匯報給一個人。舉例來說,在微軟的在線服務部門,陸奇才是第一個讓必應的開發(fā),測試,和項目經(jīng)理的最高負責人匯報到一起的人。
微軟之所以采取這個架構(gòu),在1995年的時候是可以理解的。那個時候互聯(lián)網(wǎng)并不發(fā)達,軟件開始主要靠軟盤后來靠光盤發(fā)售。如果有嚴重的bug,修復起來的成本非常的高。所以在當時,穩(wěn)定的開發(fā)和嚴格的測試,以及明確的用戶需求都是一個軟件公司成功必不可少的。
但是到了互聯(lián)網(wǎng)時代互聯(lián)網(wǎng)公司不是這樣的。Facebook創(chuàng)始人馬克扎卡伯格提倡的是快速開發(fā)快速發(fā)布,有bug上線以后再修。測試在新興的互聯(lián)網(wǎng)企業(yè)里面的比重大幅度的下降。
因為互聯(lián)網(wǎng)公司的軟件都是自己部署的,所以可以很方便的修改和重新部署,不需要測試的那么仔細。與此同時,現(xiàn)在互聯(lián)網(wǎng)已經(jīng)非常發(fā)達了,即使傳統(tǒng)軟件公司要修一個嚴重的bug并讓所有買了軟件的人更新,也不再是一件那么高成本的事情。所以微軟養(yǎng)著的龐大的測試隊伍,不但消耗微軟大量的資源,而且不產(chǎn)生實際的效益。
如果對軟件測試、接口、自動化、性能測試、LR腳本開發(fā)、面試經(jīng)驗交流。感興趣可以1079636098,群內(nèi)會有不定期的發(fā)放免費的資料鏈接,這些資料都是從各個技術(shù)網(wǎng)站搜集、整理出來的,如果你有好的學習資料可以私聊發(fā)我,我會注明出處之后分享給大家。
陸奇領(lǐng)導的在線服務部門。其改革的主要目的是為了大幅度減少這些并不產(chǎn)生實際效益的測試部門。陸奇效仿其他互聯(lián)網(wǎng)公司,在Bing開發(fā)組織中推行所謂的Combined Engineering。具體來說是把開發(fā)人員和測試人員混編,大家都干同樣的事情。這個Combined Engineering開始只是一兩個小組試點。并到宣傳這種做法的好處,開發(fā)效率高,開發(fā)人員對自己的代碼負責等等。大約一年多以后整個必應都被Combine掉了,測試作為一個獨立的組織在微軟的在線服務部門不存在了。專門的測試人員還留了一點,大部分的和開發(fā)人員合并,并且匯報給同一個領(lǐng)導。合并以后測試人員以開發(fā)人員的標準做績效考核的。結(jié)果就是測試人員的績效考核通常都比較低,而那些墊底的就被開除了。微軟的陸奇通過這個Combined Engineering,解決了很多微軟高層一直不能解決的問題:裁減測試人員。這個Combined Engineering后來就大幅度向微軟各個部門推廣了。
有人喜歡創(chuàng)造世界,他們做了開發(fā)者;有的人喜歡開發(fā)者,他們做了測試員。什么是軟件測試?軟件測試就是一場本該在用戶面前發(fā)生的災難提前在自己面前發(fā)生了,這會讓他們生出一種救世主的感覺,拯救了用戶,也就拯救者這個軟件,避免了他們被卸載的命運。
微信搜一搜【程序員一凡】關(guān)注這個文縐縐的程序員,關(guān)注后回復【面試】有我準備的一線大廠面試資料和簡歷模板,希望大家都能找到心儀的工作,學習是一條時而郁郁寡歡,時而開懷大笑的路,加油。如果你通過努力成功進入到了心儀的公司,一定不要懈怠放松,職場成長和新技術(shù)學習一樣,不進則退。如果有幸我們江湖再見!