軟體測試~答疑篇
本篇主要答疑一些關於 “軟體測試 ”的問題,通過本文希望你可以用自己的話回答這樣一個問題:“什麼是軟體測試?”
1、什麼是軟體測試?
概念:驗證軟體功能是否滿足使用者要求。
此概念包含兩項,① 驗證軟體功能正確;② 發現軟體缺陷。
再來想想:軟體測試是不是就是找bug?軟體測試就是證明軟體不存在錯誤的過程。軟體測試就是為了證明程式能夠正確執行。
來看看其他經典定義:
《軟體測試藝術》:為了發現錯誤而執行程式或者系統的過程。
《軟體測試完全指南》:測試是以評價一個程式或者系統屬性為目標的任何一種活動。測試是對軟體質量的度量。
IEEE軟體工程標準:使用人工或自動手段,來執行或測試某個系統的過程。目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。
我們不可否認軟體測試最基本的活動就是找bug,上面不同的定義只是說明了測試的目的以及如何來衡量測試是否成功。
2、測試與除錯的區別
(1)目的不同:測試的任務是發現程式中的缺陷;除錯的任務是定位並且解決程式中的問題;
(2)參與角色不同:測試由測試員和開發員執行,黑盒測試主要由測試員、單元/整合測試主要由開發員執行。除錯僅由開發員完成。
(3)執行階段不同:測試貫穿整個軟體生命週期;除錯只在開發階段。
3、軟體測試崗位
① 軟體測試開發工程師(SET);是開發的角色,工作重心在可測試性及通用測試基礎框架,關注質量提升和測試覆蓋率。
② 測試工程師(TE);和上者關係密切,但把使用者放在第一位考慮,組織整體測試實踐,並進行分析總結,驅動測試執行,構建端到端的自動化測試。
③ 軟體開發測試工程師(SDET);常稱為測試人員,負責高標準的測試和質量保證,需要程式設計能力。
④ 按物件分類:WEB測試工程師、APP測試工程師、遊戲測試工程師、嵌入式測試工程師(需要深入學習Linux)
⑤ 按方式分類:手工測試、自動化測試
⑥ 按型別分類:功能測試、效能測試、安全測試等。
⑦ 按級別分類:初級、中級、高階、資深、組長、主管、經理、總監等。
⑧ 按參與分類:專案型測試員、職能型測試員。
4、測試和研發的區別
比較項 | 測試 | 研發 |
---|---|---|
廣度 | 大 | 小 |
專業度 | 低 | 高 |
工作壓力 | 常規下比研發輕鬆 | 敏捷模式下兩者無異 |
技能要求 | 業務能力,設計和架構分析能力,測試手段和工具使用,使用者模型分析和理解 | 程式設計能力 |
薪資 | 中小型企業總體測試比研發低 | 自動化等專業領域或在大公司兩者基本無差別 |
競爭 | 無論測試還是研發 | 人才都是底端氾濫,高階緊缺 |
5、優秀測試人員所需素質
-
思維方式
- 逆向思維:不走尋常路,開發蓋房子,測試拆房子。例如:銀行卡里存額取出,餘額為0後,繼續取出。
- 發散性思維:探求多個可能性。例如:一臺地鐵自動售票機,正向,逆向,邊界,壓力,效能,外觀,支援線上支付,找零,硬幣紙幣,最大金額…
-
興趣
- 想要去做的事情都應該充滿興趣,增加幸福感
-
性格
- 樂觀、好奇心、成就感、責任感、敏感、求是創新、善於懷疑、踏實不浮躁、“槓精”、有批判性思維
-
能力
- 快速學習、溝通、文字、開發、貴在實踐
-
學習內容
- 概念 — 基礎 — 用例 — 進階 — 管理 — 專案實踐工具(禪道,持續整合,功能自動化,效能自動化)