測試開發工程師的發展

2021-06-17 17:37:28 字數 2333 閱讀 7333

1. 技術含量

面試過許多的應屆畢業生,問及為什麼選擇測試開發這個職位時,經常聽到以下的回答:

「我覺得自己開發能力比較弱,但我比較細心,覺得測試職位比較適合。」

「我在實驗室和實習公司呆過,做過功能測試和效能測試,我比較喜歡測試.」

無論人們內心真實的想法是什麼,但潛意識裡面測試的技術含量沒有開發高。在校園招聘的時候,我們會將部分倒在開發職位終面的人重新拿到測試開發面試。客觀地說,在軟體編碼方面測試開發的技術含量確實不如純正的開發職位,更不用說測試職位了。但是,我想說的是這個職位本身所要求的技術水平應該是需要超過單純的開發職位的,真正高水平的qa至少需要多年的開發經驗的,否則他無法從軟體產品設計、架構和實現方面提出實質性的意見和風險評估,充其量只是點出交付到手軟體中的幾個bug。所以基於現階段國內**,個人建議如果希望在測試的職業生涯上有所發展的人,先參與幾年的研發工作,畢竟那才是軟體工程中的主體,然後在開發過程中培養測試意識,這也是程式設計師的職業素養。google許多任務程師都有強烈的質量意識,許多**自己不經過自己的單元測試和功能測試是沒有人review的。對於投測試或者測試開發職位的目的是為了逃避開發,那麼職業道路要發展順利是很難的。

2. 基本素質

測試開發工程在公司一般有兩種,一種是單純為測試團隊開發測試工具或者系統(由於這部分和單純開發職位本質上區別不大,討論基於另一種);另一種就是在測試過程中發揮主觀能動,利用自動化把重複勞動降至最低,比如開發適用於特定場景的測試工具(當然這種工具具有普遍性也能推廣到整個組或者公司)、測試指令碼和測試用例。

測試開發工程師應該具備兩方面的知識:測試知識和開發知識。之所以把測試排在前面,因為這裡的開發建立在測試實踐基礎之上。其中測試知識又分為兩部分:一是理論知識,軟體行業發展至今也就幾十年,測試方面的積澱就更少了,所以要掌握這部分對於一般人來說不是難事;另外一方面是經驗知識,主要在專案測試過程中積累,很多系統的測試點、風險點都需要有豐富的經驗來評估,這也是資深的測試工程師價值所在。開發知識當然和開發工程師差不多了,不再多說。在軟素質方面,測試開發工程師應該具有更好的組織溝通協作能力。現在許多公司都在推行全流程保證,qa為了發揮更大的影響力以及保證專案的質量,需要從需求到設計,測試到上線全方面跟蹤參與,這就涉及到了許多跨部門跨小組的溝通,即便在小組內溝通也極其頻繁,工程師需要很好的表達能力。同時,由於測試在軟體生命週期中處於靠後的位置,所以在將許多任務作推行到上游的環節中存在較多阻力,這也要求工程師有較好的統籌和協作能力,最終達到目的。

3. 走得更遠

不可否認,現在許多測試理論,無論白盒測試還是黑盒測試,無論單元測試、整合測試還是系統測試,看似屬於測試人員研究的專利,實際上大部分的方**都是開發人員提出來的。再一次證明,不參與軟體主體的研發工作是不可能深入理解測試的,所以開發人員需要具備的開發能力和技巧測試人員也是需要具備的。當然由於專案的安排和時間等各方面的原因,測試人員能難有較多的開發機會,但這不妨礙你不斷地學習。我們大組內就有乙個多年深入研究的python的qa,一直以此為興趣,許多開發小組用到python開發系統的時候都會叫他過去培訓,他不僅是質量部的資深測試工程師,還親自開發了多款實用的測試自動化工具。另外,測試可以涵蓋的方面很多,但人的精力畢竟有限,測試開發工程師也必須擁有自己的核心競爭力,選定乙個方向是個不錯的做法,致力成為某方面的專家,比如單元測試(不要認為是開發人員做的,很多開發人員沒有單測意識和技巧)、效能測試、安全測試。組裡面也有乙個對效能測試研究了6年的人,從職業開始發展一直比較順利,並且發展勢頭不錯。最後是測試開發工程師需要培養自己的大局觀,這個是在職業過程中有意培養的,公司現階段的任務是什麼?側重點是什麼?在大公司需要順勢而為,qa的本職工作是保證質量,需要借助與流程、工具和其他外部資源,所以在工作的時候盡量與大方向契合。比如公司去年是qa內部水平提高的一年,需要qa具備單元測試、code review方面的能力,今年是保證質量的前提下,提高軟體發布週期,主推持續整合。

4. 測試的本質

2v(validation和verification)是qa的基本職責,即保證兩點:validation,軟體按照既定的需求開發,沒有偏離產品方向;verification,軟體在滿足需求的基礎上保證其正確性,從功能、效能、安全等各個方面驗證。傳統意義上,第二點是大部分qa的意識,即找bug,認為乙個軟體找到的bug越多自己的價值越大,實際上qa的最高境界是軟體在測試的時候找不到bug,因為在軟體的啟動階段你就開始了質量保證工作,從需求、設計、編碼這些前期階段就杜絕了bug產生的可能。當然,以上說的有些理想,但本質是什麼?軟體背後是人,是pm制定的需求,是rd進行開發的, 那測試背後實際上測的是人而不是軟體。人總是可能存在思維漏洞的,人總是可能犯錯誤的,所以永遠會有bug,但有些人心細,有些人負責,自己開發完後會自己進行單測、功能測試,以致後續能發現他的bug已經很少了。明白了這一層就不要單純從技術角度來思考測試。

最後想說的是,無論在大公司還是小公司,大家都有壓力,都要發展,心態就很重要了,以創業者而不是打工者的心態來工作看待很多問題就截然不同了。

SDET 測試開發工程師

不一樣的sdet 首先,我要強調的是這篇文章討論的是微軟的 software development engineer in test,中文翻譯為測試開發工程師,簡稱sdet。不同於以手工或者指令碼幫助測試的軟體測試工程師 ste,software test engineer sdet是用程式設計方...

什麼是測試開發工程師 SET ?

經常有人問到 什麼是 軟體測試開發工程師 software engineers in test,縮寫為set 借用google的規範來說其實就是 在測試中的軟體工程師 其工作性質上首先是測試,然後才是開發。我個人的觀點是 通常情況下是不行的。因為一名優秀的開發工程師所具備的能力,不僅僅是熟悉程式語言...

2020測試開發工程師工作技巧

這裡有一些工作技巧,從編寫 和工作任務清單到工作自動化,可以使幫助測試工程師成為更好的測試開發工程師。在將解決方案實際轉換為 之前,請養成寫出 偽 的習慣。手工編寫還可以幫助將 編寫更有計畫性。如果寫出所需的函式和類以及它們之間的互動方式,則可以節省大量時間。儘管會消耗一些時間,但這個習慣張讓使您成...