測試是一個很有意思的事情。只要你對這個世界好奇,你天然地就有探索、求知、追求自由的欲望。可以說,人人都有測試的基本稟賦。
測試的基本模型
在操作被測對象前,你對被測對象的反應會有一個預期,操作之后,你觀察其實際反應(輸出)是否符合預期。如果不符合預期,可以嘗試找找原因,對被測對象進行修復,修復后再次測試,直到滿足你的期望。
一個系統(tǒng)的可測試性在我看來,就是要在被測系統(tǒng)的相關環(huán)節(jié)有相應的輸出,可以進行連續(xù)的、可重入的觀察和分析。
反饋控制系統(tǒng)示意
這里簡單列一下測試的相關技術、技能,主要是過往曾經用到的,也只是一個入門參考。
做測試還要有一個重要特質,就是具有良好的和各色人等溝通的技能,滿懷熱情、細膩性格和批判性思維。用戶視角是一個重要的切入點和立足點。
基本技能
- 測試管理工具:比如:Mantis(Defect Tracking,即 Bug 管理)、Testlink(測例管理),現(xiàn)在使用《禪道》,可以注冊賬號免費體驗在線版,也可以下載其 PHP 免費版源碼自己搭建。
- Excel 表:準備測試數(shù)據(jù)、分析結果。
- MySQL:準備測試數(shù)據(jù)、分析結果。觀察輸出數(shù)據(jù)。有 GUI 和 Web 管理工具。
- 版本管理工具 git。可以通過 github.com 了解。
- 瀏覽器:尤其是 Chrome 或者 Firefox,安裝 postman 擴展。
- fiddler:抓個鏈接、分析 http 協(xié)議什么的很方便。http 協(xié)議要了解。
- Redis:有 Web 管理工具(PHP 版)可以觀察所存儲的數(shù)據(jù)。
- Memcached:一般用來緩存 session。
- Unit Testing:QUnit 或者 PHPUnit,至少了解一下。在 API 自動化測試上實踐過。
- 性能測試:ab,http_load 什么的。
拓展技能
- Linux:掌握 Linux Bash shell 基本命令。命令行操作有時候會比較方便。看看 CentOS 或者 RedHat Enterprise Linux。shell 腳本要會一些。
- Nginx:HTTP 服務器。
- PHP:服務腳本。
- Python:和持續(xù)集成(Continuous Integration)相關。測試人員掌握一門編程語言還是必要的,是置業(yè)上升的一個重要的通道。也是自動化測試的幫手。
- JavaScript 腳本語言,值得了解;Node、Gulp 也要懂些。
- Markdown 標記語言,寫 API 接口文檔和寫點文章什么的。簡書就不錯。
- 編輯器:vim 或者 sublime v3,需要練習,掌握以后方便許多。
測試專業(yè)性
測試是具有專業(yè)性的。專業(yè)性給我們帶來信任和尊重。
ISTQB 對于測試職業(yè)的理解
測試職業(yè)等級
可以看看 Software Testing Practices Report 2015-2016。