測試工程師成長之路
踏入測試行業也有好幾年了,都很少做過大的總結,借著這個機會,“流水線”一樣的總結一下這幾年的測試歷程,學到的東西以及存在的困惑。給即將步入職場的新人小白們一些參考。
用一個簡單的圖來展示現在所處的幾個階段,往后的歷程還要慢慢摸索經歷:
第一階段:奠定理論基礎,缺少實踐
2011年大三時期選擇了測試專業,對測試的大概印象只在于老師課堂上的講解以及一些小實驗的操作,總體來說即理論知識的了解,實踐的機會很少,還不具備有QA的思維。
1.當時的選擇:
當時為啥會選測試呢,綜合考慮,對于一個大學才接觸計算機學科,迷迷糊糊的接觸各種計算機語言,然后又想以后工作對口的女生來說,毫無疑問的選擇了軟件測試。
2.當時學到的東西:
就像打怪升級一樣,這個階段就像是新手,在課堂上了解“測試技能”的理論知識,基礎知識以及相關的項目流程等。
借用這個博客中的知識總結下:http://blog.csdn.net/txx9010/article/details/8529318
里面羅列了測試的基礎概念,術語概念等,從不同的角度進行劃分測試,講解的很詳細,對于鞏固知識有很大的幫助。
3.當時的困惑:
測試到底是干什么?測試和開發真的是“死敵”?沒有真正的實踐,不知道真正實踐中是什么階段用什么測試方法(單元測試,功能測試,集成測試,系統測試等),什么模式用什么模型(例如V型,W型等)。
4.當時的參考資料:
書籍:《軟件測試》《軟件測試的藝術》
圖書館
老師
第二階段:實踐鍛煉,鞏固基礎
2012年8月,進入大四實習階段,這個時候才算真正的進入了解了測試這個行業。
1.當時的選擇:
通過了和公司合作的企業的面試(印象深刻啊,當時是師兄師姐和技術部們的部門老大給我們的面試,是一個團隊合作的面試題,按每個人的角色來完成一個項目),涉及的是web測試,現在回想起來很感謝當時的導師,師兄師姐們,開發人員們,對我的指導以及幫助。
就像游戲中的升級換裝備的階段,不斷的和團隊合作解決每一次產品的提出來的需求,達到release的階段,不斷的強化自己的裝備(即測試技能)。
2.當時學到的東西:
(列舉了測試方面,項目流程,軟技能,還有一些個人覺得可以借鑒的經驗,理念等)
1)項目流程中,QA參與的越早,越容易發現問題,當流程很規范,加上對老功能的熟練了解,能在需求階段就發現各種不合理并提出疑問,建議,保證各種角色對需求的理解是一致的,減少了后期的各種不必要的“坑”(這個流程其實是所有角色都需要注意的,Ps:要給當時的團隊點贊,需求人員很專業,有改動,即時更新文檔,并且是用批注的方式標注;不管是哪種角色,有任何變動都會郵件通知相關人員)
2)善總結錯誤,懂發散思維,懂反向思維(例如遺漏的bug)
3)善借鑒同事的經驗(例如借鑒bug,處理問題的方式等)
4)善用工具(ps:能提高自己效率的工具都是好工具,例如xmind,snagit等)
下圖簡單的羅列了測試階段會使用到的一些工具,當然這些工具在其他地方也是適用的,下面也會有些地方使用到這些工具。
5)“善用”開發人員,提高自己的技能(例如了解技術方案,開發工具的使用訣竅)
舉個“栗子”:
修改bug的時候,開發給出了修改的范圍,修改的技術方案,那么我們驗證的時候就不單單驗證這個問題,我們還會把相關的地方,有涉及到的區域也驗證一下,說不定就會發現了另一個問題。
6)沉淀文檔,分享對業務的整理,有益于后來者(當然相對的,還需要文檔存放路徑的規范,新來者一目了然)
下面是曾經整理過的歸檔規范的一種想法,下面也使用到了xmind,snagit工具。
7)郵件的規范用法
8)各種培訓(例如:業務專業術語的培訓,技能的培訓,內部工具的使用等)
3.當時的困惑:
1)測試人員的職業生涯;
2)手工測試和自動化測試的pk;
4.當時的參考:
1)公司文檔
2)導師,同事的培訓,指導
3)51testing,CSDN,博客園(蟲師,賀滿等人寫的博客都不錯,最近在看jmeter的資料,可以學習學習)等博客
第三階段:接觸不同區域,擴大知識面
2015年到現在,從web測試踏入了app測試,涉及過社區,電商,金融等,在每一個不同的地方都能學到很多東西,不管是技能方面還是其他方面,要感謝這個過程中對我們有所幫助的同事和領導們,是他們“逼著”我們進步的(哈哈開玩笑的)。
1.當時的選擇:
為什么會進入app測試呢,機緣巧合+時勢變遷,越來越多的手機應用出現在我們面前,為了不讓自己被“時局”淘汰,就這樣沖入了app測試大潮中。
2.學到的東西:
1)app測試和web測試的區別:例如手勢操作,橫屏操作,網絡測試,安裝測試,交叉事件測試等
這里列舉了一些主要的相同點和區別點
2)抓包工具的使用fidder/charles,現在慢慢養成一個習慣,測試的時候都連著,隨時可以了解情況,同時結合后端的日志
再舉個“栗子”(圖片粗略展示):
測試app前端時,可以使用Charles(Mac使用)查看調用的接口,檢查是否后端是否有返回字段,可以簡單區分前后端問題,如有返回,則檢查是否前端展示正確;如無返回,就可以去了解是否是后端的問題,然后在結合后端日志,就可以幫助開發快速定位。
3)jmeter的學習使用中,接口測試的實踐中
這里有大神賀滿jmeter博客的傳送入口:http://www.cnblogs.com/puresoul/p/5092628.html
4)使用工具時,學會總結或者記錄相應的步驟以及遇到的問題,幫助后續其他同學
5)借鑒同事的方法:例如測試方法,編寫用例的思維方法,或者是處理問題的方法,綜合成適用自己的方法
3.參考:
1)公司測試周報,同事的培訓等
2)各種測試公眾號:例如軟件測試部落,光榮之路燈
3)51testing,博客,知乎app
雖然這個總結有點流水賬,其實我只是想說一點,不管是多小的東西,即使還不是很精通,但是愿意學,對比一點都不懂,一點都不愿意嘗試來說,這就是一種進步。
這個過程中遇到的困惑,有些已經有答案了,有些也許還是一知半解,有些可能這個階段還沒辦法解決,就說這個從讀書階段老師們就提到的問題:測試和開發真的是“死敵”?曾經在下班的路上,不斷的思考這個問題,其實,我覺得彼此都是為了產品的質量,都是彼此應該做到的責任,也許有時候是因為一些外在的情況引起的糾紛,(例如開發的績效評分是bug數,QA是的績效標準之一也是bug數,只是一個為多,一個為少),也有可能是彼此站的角度不同,理解的方式不同,溝通的方式不同,才會導致所謂的“死敵”稱號。但是其實也有很多時候會出現大家為了這個產品質量,互相探討如何解決,不care bug數量,只care bug質量,開發解釋方案,QA提供建議。當然開發需要提高開發質量,QA也需要增強測試能力,讓彼此都能理解彼此,達到特殊意義上的“死敵”,而不是真正意義上的死敵。
作為QA,后面的路程還長著,該學的東西還多著,可以在以后的路程中解決自己的困惑。