我們先理一下測試工程師是什么。
度娘說:
測試工程師,軟件質量的把關者,目前傳統的軟件行業還是以軟件測試工程師為主,但是在新興的互聯網行業大多還是以QA來命名這個職位,也就是質量保證。
以互聯網產品的工作流程圖為例
可以看到,測試的工作在開發之后,是產品上線前的最后一步。一般來說,當開發按照產品需求、交互設計、視覺設計完成軟件開發后,就把完成版本提交給測試,測試人員再根據既定的測試用例進行功能測試、兼容性測試、性能測試等,逐漸收斂BUG,最后才能正式上線。
測試的工作主要由四部分組成
功能測試:功能測試就是對產品的各功能進行驗證,根據功能測試用例,逐項測試,檢查產品是否達到用戶要求的功能。
兼容性測試:指對所設計程序與硬件、軟件之間的兼容性的測試,包括軟件能否在不同操作系統、不同機型、不同應用軟件上、以及向前向后等兼容性能。
性能測試:通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試,以保證產品在大流量前提下都能正常運行,像我們熟知的負載測試和壓力測試都屬于性能測試,
安全測試:以發現安全隱患為目標,防止產品上線后被攻擊。
完成這些測試的步驟后,一款互聯網產品就可以正式上線了。
因此,測試既是產品的第一個體驗者(最早從開發手中接過成型的產品),也是產品質量的最后一道防線守衛者(做各種測試,保證用戶拿到的最終成品可用、易用)。因為測試的工作特性,他需要從用戶的角度出發體驗產品,這也決定了測試與開發、策劃、設計等崗位交流、溝通的時間也會成為工作的一部分,甚至承擔起整個產品的協調工作。這樣看來,把測試稱為QA(質量保證人員)也就一點不奇怪了。
測試無用論?
即使前面廢話了很多,對測試有偏見的人依然會說,
“測試的工作其實開發也能做啊,何必再設一個測試呢?”
會產生這種想法也并不奇怪,畢竟隔行如隔山,不過這里還是要指出,上面的論述的錯誤之處在于
(1)完全割裂了測試與開發工作
(2)測試的工作被簡化成找BUG
事實上,找BUG只是測試最初級的階段,雖然必須承認,測試的門檻低于開發,但優秀的測試人員工作量之大,專業度之高,絕非一般用戶能替代。
就像我們每個人都會接觸到的kpi指標一樣,測試的每塊工作內容也都有不同的能力等級劃分:
(1)手工測試,發現BUG
(2)通過各種手段,確認這個BUG是一個需要解決問題,然后確定該BUG的重現步驟并盡可能簡化
(3)了解被測產品框架,能從代碼中定位BUG源頭,并能給出可能的解決方法
(4)嘗試找出該BUG發生的原因,并能找出檢測同類BUG的方法(標準化)
(5)能在保障產品質量的基礎上,協調起整個項目上線的時間和流程
以上能力,是從授人以魚向授人以漁遞進的。
當你在執行前人的測試用例時,找BUG固然是工作要求,但最主要的用意是學習用例的編寫思路和方法,從案例中總結出規律,進而開始自己編寫標準化測試用例,以免同類問題生出千萬條不同用例。
一個測試的能力,能達到的層級越高,團隊中的開發、策劃就能節省更多時間,團隊運行也會更高效。而專業的測試,正常來說應該比開發對產品有更深入的理解,對于可能影響測試的因素,像Tomcat配置、數據庫索引、多線程等都會有豐富的經驗。
從入門到精通測試,距離有多遠?
始終認為,每個專業的學習與進步,都有賴于三個因素:
(1)堅持
(2)資源
(3)天賦
以第一個最重要,但第一個和第三個都不是外部可控因素,全靠自己,所以這邊也只能列一些可以參考的資源。
1、書
《軟件測試》
這本書可以幫你快速了解測試的工作內容,像理論概念、測試流程、Bug管理、自動化測試等書中都有詳細講解,看完后應該會對“測試人員の一天”有大致了解,入門級必備吧。
《軟件測試經驗與教訓》
測試界領軍人物James Bach寫的,從測試的角色入手,全方位剖析測試的方法技巧、職業發展,文中有很多話都被奉為測試界的經典箴言,不愧是一路被坑之后撰寫而成的血淚史,不僅是測試入門的讀物,更適合搭配實際工作經驗一起食用,字字珠璣,常看常新。
《鳥哥的Linux私房菜.基礎學習篇(第三版)》
前面也提到,因為測試的特殊性,必須對開發環境、程序語言也了解透徹,因此除了了解測試之外,也可以去看看其他著作。《鳥哥的Linux私房菜.基礎學習篇(第三版)》作為遐邇聞名的 Linux 中文入門教材,行文淺顯生動,深入淺出,讀之往往令人欲罷不能,對于不喜歡啃晦澀大部頭巨作,但又想入門Linux操作系統的,都可以去嘗試。
《深入淺出Java》
別看近700頁的大部頭,但因為是基礎書籍,翻來覆去都在用簡單通俗的語言將概念理清楚。能把書寫長不難,但能風趣幽默地把一堆概念準確明白的告訴小白讀者,這才是最厲害的,對于JAVA初級入門者,強推此書。
2、網絡資源
TesterHome:https://testerhome.com/
51testing:http://bbs.51testing.com/forum.php
測試之道:http://www.testtao.com/portal.php
三個測試交流的社區論壇,TesterHome更專注于移動App自動化測試,51testing比較老,有很多老牌測試,但不免與老版論壇一樣變得平庸化,測試之道比較新。論壇的好處在于可以分享交流,還有很多經驗之談,雖然測試用例在變,在努力的方式往往相似。
如果想快速上手,可以直接去網易云課堂、慕課網等搜索測試課程,前者的《測試工程師》微專業是網易自己出品的,課程編排成體系化,授課老師是一線測試工程師,強調實踐能力,而且會定期考核節課,有預算、且缺乏自制力的同學可以考慮。后者上的課程都是免費的,但比較零散,適合想要長線作戰的同學入手。
另外,大公司的測試部門和測試大牛的博客都推薦大家去關注,大公司規范的流程、經驗大部分都是經過了項目錘煉,能讓新人學會很多。而大牛,也有很多經驗之談,避免走彎路,已經是成功的捷徑了。
谷歌測試部門博客(英文):http://googletesting.blogspot.com/
網易測試部門博客:http://qa.blog.163.com/
阿里測試專家公直博客:http://sdet.org/
51testing優秀版主陳永達博客:http://www.cydtest.com/
51CTO博客之星柳記:http://eilfei2000.blog.51cto.com/
著名測試專家邰曉梅博客:http://www.taixiaomei.com/
專注于ios單元測試的優秀國外獨立博客(英文):http://iosunittesting.com/
3、多練勤思
這大概是小學教師前經常會貼的一句話,但用在測試入門上也分毫不差,對于接受能力強的年輕人來說,本身門檻較低的測試入門不是難事。
有計算機基礎的可以先去啃啃書考個軟考,也可以去投投簡歷實習,大小公司都先可以,對重復的手動的測試工作上點心,總結規律,逐步提高,也跟前輩多多學習。
先入門,再入行就不難了。