1. 程式人生 > 實用技巧 >質量保證

質量保證

什麼是質量保證?

質量保證(Quality Assurance)也是質量管理的一部分,它致力於提供質量要求會得到滿足的信任。質量保證是指為使人們確信產品或服務能滿足質量要求而在質量管理體系中實施並根據需要進行證實的全部有計劃和有系統的活動。質量保證一般適用於有合同的場合,其主要目的是使使用者確信產品或服務能滿足規定的質量要求。

質量保證的內容絕不是單純的保證質量,保證質量是質量控制的任務,質量保證是以保證質量為其基礎,進一步引申到提供“信任”這一基本目的。
[注: 以上摘錄至百度百科]

誰來做?

我在08年左右,就因為公司要進行ISO9000質量體系的認證,而接觸了質量保證這一概念,且很長很長一段時間都一直認為,由測試人員為了保障產品質量而從事的一系列軟體測試過程(例如:測試計劃、環境準備、資料準備、用例設計、用例執行、Bug驗證等等)稱之為質量保證過程。但隨著時間的不斷推移以及在工作中的不斷實踐,才發現測試人員所承擔的角色,不足以對整個產品的質量進行把控,它只是整個質量保證體系中的一環,需要研發、測試、運維的共同協作,才有可能形成一個相對可靠的質量保證過程。

測試的物件到底是什麼?

經典的答案是:源程式、目標程式、資料及相關文件。

但隨著目前微服務架構的越來越流行、越來越盛行,軟體在架構、部署等方面都有了天翻地覆的變化,這個答案現在還適合嗎?是合適的、但也是不合適的,取決於您對於測試人員的要求如何。

為什麼是研發、測試、運維?而不僅僅是測試?

在與研發人員溝通中,是否會經常聽見這樣的

1. 這段程式碼是之前離職的那位同事寫的,寫的真垃圾
2. 我雖然知道這段程式碼可以優化,但是我不敢動他,不知道會影響哪裡
3. 架構就是這樣設計的
4. 這是經過評審的

在與運維人員溝通中,是否會經常聽見這樣的

1. 沒有抓到日誌
2. 剛才那個問題不知道什麼原因,重啟就好了
3. 不知道是誰操作的,東西給刪除了

在於測試人員溝通中,是否會經常聽見這樣的

1. 業務我很清楚,但是不知道資料是如何流轉的
2. 我不知道服務部署在哪裡,那不是運維乾的事情嗎
3. Docker?那是啥玩意

那麼,你看出什麼問題了嗎?

1. 程式碼編寫沒有規範
2. 服務執行態沒有監控
3. 日誌沒有記錄
4. 系統不夠了解
5. 基礎知識不夠紮實
6. 崗位之間分工不夠明確
。。。。。。
問題太多太多了,多到單獨拿出來講,都能講個一天一夜。。。

腫麼辦?

怎麼做?

從個人的經驗來看,要想取得一個好的結果,那麼必須具備幾個方面:

優秀的規劃

1. 清晰的質量要求說明;
2. 科學可行的質量標準;   
3. 組織建設專案質量體系;
4. 配備合格和必要的資源;
5. 持續開展有計劃的質量改進活動;
6. 專案變更全面控制。

明確的分工

1. 研發人員,負責程式碼風格統一、覆蓋率測試、單元測試
2. 測試人員,負責整合、系統、驗收過程中的軟體測試活動
3. 運維人員,負責系統規劃、系統部署、系統運維階段的軟體要求,包括規範的制定、系統的監控、日誌的分析

持續的改進

1. 明確的度量考核體系,引導改進的方向
2. 堅定不移的支援
3. 及時的鼓勵與肯定

從下一篇開始,就將圍繞 團隊、質效、考核、改進 等方面進行系統的闡述,如何根據實際情況來建設質量保證團隊。