[心得] 測試開發工程師成長之路
不懂業務基礎,做手動測試就是瞎做。自動化測試也是如此。
隨著測試在軟體開發周期中越來越受到重視,BAT大部分開始取消了測試工程師職位,全部變成了測試開發職位。需要在具有測試能力的基礎上兼備開發能力;另一方面自動化測試成為趨勢,利用開發的技巧解決測試中的問題以提高測試效率,降低QA與RD的人力比。
潛意識裡面測試的技術含量沒有開發高。客觀地說,在軟體編碼方面測試開發的技術含量確實不如純正的開發職位,更不用說測試職位了。如果希望在測試的職業生涯上有所發展的人,先參與幾年的研發工作,畢竟那才是軟體工程中的主體,然後在開發過程中培養測試意識,這也是程序員的職業素養。現在許多測試理論,無論白盒測試還是黑盒測試,無論單元測試、集成測試還是系統測試,大部分的方法論都是開發人員提出來的。再一次證明,不參與軟體主體的研發工作是不可能深入理解測試的。
測試開發工程在公司一般有兩種,一種是單純為測試團隊開發測試工具或者系統。另一種就是在測試過程中發揮主觀能動,利用自動化把重複勞動降至最低,比如開發適用於特定場景的測試工具、測試腳本和測試用例。
測試可以涵蓋的方面很多,但人的精力畢竟有限,測試開發工程師也必須擁有自己的核心競爭力,選定一個方向是個不錯的做法,致力成為某方面的專家,比如單元測試(不要認為是開發人員做的,很多開發人員沒有單測意識和技巧)、性能測試、安全測試。
測試開發工程師需要培養自己的大局觀,這個是在職業過程中有意培養的,公司現階段的任務是什麼?側重點是什麼?在大公司需要順勢而為,QA的本職工作是保證質量,需要藉助與流程、工具和其他外部資源,所以在工作的時候盡量與大方向契合。比如公司去年是QA內部水平提高的一年,需要QA具備單元測試、Code Review方面的能力,今年是保證質量的前提下,提高軟體發布周期,主推持續集成。
2V(Validation和Verification)是QA的基本職責,即保證兩點:Validation,軟體按照既定的需求開發,沒有偏離產品方向;Verification,軟體在滿足需求的基礎上保證其正確性,從功能、性能、安全等各個方面驗證。
軟體背後是人,是PM制定的需求,是RD進行開發的, 那測試背後實際上測的是人而不是軟體。人總是可能存在思維漏洞的,人總是可能犯錯誤的,所以永遠會有bug,但有些人心細,有些人負責,自己開發完後會自己進行單測、功能測試,以致後續能發現他的bug已經很少了。
無論在大公司還是小公司,大家都有壓力,都要發展,心態就很重要了,以創業者而不是打工者的心態來工作看待很多問題就截然不同了。
自動化測試的技能塔:
核心驅動是創新意識 平台架構能力是調試能力,框架設計能力和設計模式再下一層是代碼,數據結構和演算法基礎
再下一層是測試能力,設計,執行,流程和業務 最底下一層是細心,責任心,溝通和學習能力學過的東西或解決過的問題,要善於經常性地把它總結和記錄下來,否則時間久了就忘了。
高質量的自動化測試腳本所必備的能力。
良好的代碼功底、數據結構和演算法,可以開發出高質量的自動化腳本,這會極大地減少後期自動化腳本的維護成本。
推薦閱讀:
TAG:測試開發 |