一、質量保障
先引用一段 百度百科 上對軟件質量保障的解釋:軟件質量保障是建立一套有計划,系統的方法,來向管理層保證擬定出的標准、步驟、實踐和方法能夠正確地被項目所采用。軟件質量保證的目的是使軟件過程對於管理人員來說是可見的。它通過對軟件產品和活動進行評審和審計來驗證軟件是合乎標准的。軟件質量保障人員在項目開始時就一起參與建立計划、標准和過程。這些將使軟件項目滿足機構方針的要求。
從我個人對軟件質量保障的理解來說,軟件質量保障不能只從測試(QA)的角度來看待問題,需要把自己抽離出來從更高的角度(公司/老板)來看待問題,無論哪一個環節出了問題,都是質量問題。可能是產品在設計之初時就存在缺陷,可能是開發在編碼之前就存在設計上的缺陷,也可能是QA在測試時存在漏測的情況。需要關注整個過程當中的所有環節存在的問題和風險。對於軟件質量保障的思考,我們可以從測試前、測試中、測試后三個階段來進行,重點應該關注如下五個方面:
- 效率問題
- 代碼問題
- 流程問題
- 溝通問題
- 機制問題
對於軟件的質量保障,更多的是一些思考,考慮要從哪些階段、哪些方面和大概的方面去保障,而它的延申就是質量體系的建設。
二、質量體系建設
對於不同公司、不同團隊甚至不同業務,質量體系的建設不是千篇一律的,每一個公司/團隊/業務都有其自身的特點,我們需要根據這些特點來建設質量體系。但是通常我們可以將它划分為三個階段:
測前
1、差異性分析
- 業務特點:對各自負責業務的差異性分析,各自業務測試時的難點、痛點;
- 團隊人員組成特點
- 開發水平如何
- 整個團隊的技術棧,包括測試和開發
- 產品部署使用方式,比如說:阿里雲
差異性分析主要是為后面的測試方法和手段做准備的,比如說:開發人員的水平不行,那我們測試時可能就要考慮使用 白盒測試 + 接口測試,因為單單只根據需求和接口文檔來做接口測試,很多情況測試不到。如果開發水平足夠高,那么可以考慮不用做白盒測試,直接做接口測試。另外,做白盒測試時,可以根據修改的方法上游被哪些地方調用,下游調用了哪些方法從而確定測試的范圍,而不是盲目的拍腦袋來決定測試范圍。
2、基本測試手段/方法
- 接口測試 + 白盒測試
- 性能測試 + 穩定性測試
- 業務功能測試 + 自動化測試
3、流程及機制
- 測試流程的建立
- 問題發現機制
- 風險暴露機制
- 線上問題跟進
- 故障處理
- 信息同步
- 獎懲機制
- 新人培養計划
4、基本保障手段
- Mock 服務
- 數據構造
- 線下告警平台
- 線下壓測平台
測中
- 測試
- 聯調
- 預發
測后
- 上線
- 線上日常 監控 + 報警
- 業務的 宏觀監控 + 個體監控
- 數據庫的 binlog-sync
- 穩定性建設:保障系統在全年的不可用時間在什么范圍之內
以上,測前、測中,測后三個階段,大家可以從這些大的方面去考慮,再根據自己公司和團隊的特點進行細化和實踐,最終得出適合自己公司和團隊的質量體系。
另外,大家可能會問,在經驗不足夠多的情況下,我們如何知道哪些細節點是我們需要去關注的呢,這里有個簡單的方法:如果大家每天都做大量的重復工作,那么這里就是一個問題點。如果沒有大量重復的工作,但是工作都非常耗時,那么這里也是一個問題點。當我們遇到這些問題點的時候,是不是就要進行反思,有沒有什么辦法去解決這些問題?慢慢的培養自己的質量意識、全局思維,這樣日積月累,就會對產品質量有一個深刻的認識。