軟體測試開發人員(
sdet
)到底是什麼職位?
sdet
是微軟三大核心技術工種之一(其它兩個是pm和
sde),是任何乙個產品開發團隊中必不可少的乙份子。
sdet
是產品質量和使用者的代言人,主要的工作是從客觀的角度去分析產品的質量以及給出系統化的反饋和建議,從而使整個開發團隊能夠及時地做出對正確的抉擇。要做到這點,
sdet
需要積極的參與產品的計畫、設計、和**檢驗,找出並分析問題的根本原因,以及提高產品和流程質量的系統化的方案。
sdet
和sde
都有哪些區別?
sdet
和sde
都需要有紮實的電腦科學基本功,包括程式設計能力。所不同的是,
sdet
的工作重點是用反向思維分析的方法找出對產品質量有負面影響的問題,帶領正個團隊解決這些問題,從而提高產品的質量。
sdet
需要掌握多種技術,用不同的方法去分析產品各個方面可能產生的種種問題。這裡所強調的是對問題的系統分析能力,以及預見到常人沒有想到的潛在問題。
什麼樣的人適合做
sdet
?
如果你對質量的要求很高,並且喜歡拆東西,弄明白它是怎麼工作的,而且喜歡去改善它的話,那麼
sdet
應當是你的首選。乙個
sdet
的最基本要求就是對質量的熱情:一定要找到所有的瑕疵從而達到完美。其次,喜歡鑽研、分析、並改善事物是成功的
sdet
的又一潛質。另外,喜歡學習並掌握多種不同的技能和知識也是
sdet
所需的技能。
sdet
都有哪些事業發展途徑?
在微軟,
sdet
有非常明確的事業發展階段。從入門
sdet
開始,到與總監同級的
partner sdet
ic的事業模型做到
partner sdet
甚至distinguished engineer
vp of test
。而最好的一點是,不管是做技術還是做管理,在同一級別的待遇是同等的,也就是做技術沒有「頂」,不做
manager
也能晉公升。
找到一篇不錯的關於微軟測試工作
性質的文章,對工作角色的認識有一定的幫助,我就是sdet,屬於開發和測試中間的那種,並不像自己想象的那種沒有什麼技術
含量的黑盒測試,對sdet的要求還是挺高的,做好這種白盒測試,仍然要加緊自己在開發能力的培養,才能較快的發現**中的問題。
1. 基本情況
測試在微軟公司是一項非常重要的工作,微軟公司在此方面的投入是非常巨大的。微軟對測試的重視表現在工程開發隊伍的人員構成上,微軟的專案經理、軟體開發人員和測試人員的比例基本是1:3:3或1:4:4,可以看出開發人員與測試人員的比例是1:1。對於測試的重視還表現在最後產品要發布的時候,此產品的所有相關部門都必須簽字,而測試人員則具有絕對的否決權。
測試人員中分成兩種職位,software development engineer in test(測試組的軟體開發工程師)實際上還是屬於開發人員,他們具備編寫**的能力和開發工具軟體的經驗,側重於開發自動化測試
工具和測試指令碼,實現測試的自動化。software test engineer(軟體測試工程師)
具體負責測試軟體產品,主要完成一些手工測試以及安裝配置測試。
2. 測試計畫
測試計畫是測試人員管理測試專案,在軟體中尋找bug的一種有效的工具。測試計畫主要有兩個作用,一是評判團隊的測試覆蓋率以及效率,讓測試工作很有條理的逐步展開。二是有利於與專案經理、開發人員進行溝通。有了測試計畫之後,他們就能夠知道你是如何開展測試工作的,他們也會從中提出很多有益的意見,確保測試工作順利進行。總之,有了測試計畫可以更好的完成測試工作,確保使用者的滿意度。
測試人員在編寫測試計畫之前,應獲得以下文件:
1)程式經理編寫的產品功能說明書或產品開發計畫;
2)程式經理或開發人員提供的開發進度表。
根據產品的特性及開發進度安排,測試人員制定具體的測試計畫。測試計畫通常包括以下內容:
1)測試目標和發布條件:
a. 給出清晰的測試目標描述;
b. 定義產品的發布條件,即在達到何種測試目標的前提下才可以發布產品的某個特定版本。
2)待測產品範圍:
a. 軟體主要特性/功能說明,即待測軟體主要特性的列表;
b. 特性/功能測試一覽,應涵蓋所有特性、對話方塊、選單和錯誤資訊等待測內容,並列舉每個測試範圍內要重點考慮的關鍵功能。
3)測試方法描述:
a. 定義測試軟體產品時使用的測試方法;
b. 描述每一種特定的測試方法可以覆蓋哪些測試範圍。
4)測試進度表:
a. 定義測試里程碑;
b. 定義當前里程碑的詳細測試進度。
5)測試資源和相關的程式經理/開發工程師:
a. 定義參與測試的人員;
b. 描述每位測試人員的職責範圍;
c. 給出與測試有關的程式經理/開發工程師的相關資訊。
6)配置範圍和測試工具:
a. 給出測試時使用的所有計算機平台列表;
b. 描述測試覆蓋了哪些硬體裝置;
c. 測試時使用的主要測試工具。
此外,還應列出測試中可能會面臨的風險及測試的依賴性,即測試是否依賴於某個產品或某個團隊。比如此項測試依賴性windowsce這個作業系統
,而這個系統要明年2月份才能做好,那麼此項測試就可能只有在明年5月份才能完成,這樣就存在著依賴關係。如果那個團隊的開發計畫往後推,則此項測試也會被推遲。
3. 測試用例開發
乙個好的測試用例就是有乙個合理的概率來找到bug,不要冗餘,要有針對性,乙個測試只針對一件事情。特別是功能測試
的時候,如果乙個測試是測了兩項功能,那麼如果測試結果失敗的話,就不知道到底是哪項功能出了問題。
測試用例開發中主要使用的技術有等價類劃分,邊界值的分析,error guessing testing。
等價類劃分是根據輸入輸出條件,以及自身的一些特性分成兩個或更多個子集,來減少所需要測試的用例個數,並且能用很少的測試用例來覆蓋很多的情況,減少測試用例的冗餘度。在等價類劃分中,最基本的劃分是乙個為合法的類,乙個為不合法的類。
邊界值的分析是利用了乙個規律,即程式最容易發生錯誤的地方就是在邊界值的附近,它取決於變數的型別,以及變數的取值範圍。一般對於有n個變數時,會有 6n+1個測試用例,取值分別是min-1, min, min+1, normal, max-1, max,max+1的組合。邊界值的分析的缺點,是對邏輯變數和布林型變數不起作用,還有可能會忽略掉某些輸入的組合。
error guessing testing完全靠的是經驗,所設計的測試用例就是常說的猜測。感覺到軟體在某個地方可能出錯,就去設計相應的測試用例,這主要是靠實際工作中所積累的經驗和知識。其優點是速度快,只要想得到,就能很快設計出測試用例。缺點就是沒有系統性,無法知道覆蓋率會有多少,很可能會遺漏一些測試領域。
實際上在微軟是採用一些專門的軟體或工具負責測試用例的管理,有一些測試資訊可以被記錄下來,比如測試用例的簡單描述,在哪些平台執行,是手工測試還是自動測試,執行的頻率是每天執行一次,還是每週執行一次。此外還有清晰的測試通過或失敗的標準,以及詳細記錄測試的每個步驟。
4. bug跟蹤過程
在軟體開發專案中,測試人員的一項最重要使命就是對所有已知bug進行有效的跟蹤和管理,保證產品中出現的所有問題都可以得到有效的解決。一般地,專案組發現、定位、處理和最終解決乙個bug的過程包括bug報告、bug評估和分配、bug處理、bug關閉等四個階段:
1)測試工程師在測試過程中發現新的bug後,應向專案組報告該bug的位置、表現、當前狀態等資訊。專案組在bug資料庫中新增該bug的記錄。
2)開發經理對已發現的bug進行集中討論,根據bug對軟體產品的影響來評估bug的優先順序,制定bug的修正策略。按照bug的優先順序順序和開發人員的工作安排,開發經理將所有需要立即處理的bug分配給相應的開發工程師。
3)開發工程師根據安排對特定的bug進行處理,找出**中的錯誤原因,修改**,重新生成產品版本。
4)開發工程師處理了bug之後,測試人員需要對處理後的結果進行驗證,經過驗證確認已正確處理的bug被標記為關閉(close)狀態。測試工程師既需要驗證bug是否已經被修正,也需要確定開發人員有沒有在修改**的同時引入新的bug。
5. bug的不同處理方式
在某些情況下,bug已處理並不意味著bug已經被修正。開發工程師可以推遲bug的修正時間,也可以在分析之後告知測試工程師這實際上不是乙個真正的bug。也就是說,某特定的bug經開發工程師處理之後,該bug可能包括以下幾種狀態。
已修正:開發工程師已經修正了相應的程式**,該bug不會出現了。
可推遲:該bug的重要程度較低,不會影響當前應提交版本的主要功能,可安排在下一版本中再行處理。
設計問題:該bug與程式實現無關,其所表現出來的行為完全符合設計要求,對此應提交給程式經理處理。
無需修正:該bug的重要程度非常低,根本不會影響程式的功能,專案組沒有必要在這些bug上浪費時間。
五、成為優秀測試工程師的要求
要成為一名優秀的測試工程師,首先對計算機的基本知識要有很好的了解,精通一門或多門的程式語言,具備一定的程式除錯技能,掌握測試工具的開發和使用技術。同時要比較細心,會按照任務的輕重緩急來安排自己的工作,要有很好的溝通能力。此外,還要善於用非常規的方式思考問題,盡可能多的參加軟體測試專案,在實踐中學習
技能,積累經驗,不斷分析和總結軟體開發過程中可能出錯的環節。這樣,一名優秀的測試工程師就從軟體測試的實踐中脫穎而出了。
**
上海的新職位嘍
1.epg member 過程改進主管 要求 計算機 軟體開發或相關專業本科學歷,碩士優先 2 軟體開發經驗 開發語言不限,c c 優先 2 cmm cmmi經驗 熟悉rup優先 英語流利溝通 日語溝通能力優先 工作內容 定義 維護 提公升軟體過程 定義 收集 分析質量體系資料 為專案定義軟體過程,...
招聘平台的工作職位
招聘平台的工作職位 android開發工程師 緊急 上海平安付商務資訊諮詢 獵上網 網路運營經理 上海永昕建築裝飾 人才招聘資訊 智聯招聘 商務顧問 月薪8k 12k 享公寓宿舍 年底雙薪 週末雙休 上海盛陽投資諮詢 人才招聘資訊 智聯招聘 商務顧問 銷售顧問 上海彩億資訊科技 人才招聘資訊 智聯招...
軟體測試職位的要求
測試工程師 1 編寫測試方案 測試用例 2 執行測試用例提交bug並進行bug跟蹤和回歸測試,直到bug解決 3 參與編寫測試報告及其他文件。4 熟悉linux作業系統 5 熟悉一種以上軟體測試工具 6 熟悉oracle mysql至少一種資料庫系統 7 具備軟體工程和測試方面的理論知識和實戰經驗 ...