軟體測試 | 談軟體測試人員對產品質量的責任

軟體測試 | 談軟體測試人員對產品質量的責任

來自專欄 iT開發圈

目前一個普遍存在的觀點是測試人員應該為產品質量負責。當產品投入市場或者交付客戶時,如果出現過多的缺陷,管理層首先的反應會是質疑測試團隊的工作。那麼,在一個項目中,測試人員是否要對產品質量負責,如果不是的話測試人員究竟承擔些什麼責任,或者說,測試團隊在整個項目中的責任究竟是什麼?

1

質量的定義

  每個人對質量有自己的定義。由於本文的觀點來自於開發外包軟體的工作經歷,我們傾向於以下對於質量的定義:「產品符合客戶的要求」。當然,這並不是質量的唯一定義,也並不一定是最準確的一個。然而,當本文中使用「質量」一詞時,指的是上述的定義。

2

測試人員負責質量?

  在開發項目中,測試人員可能會被抱怨說,發現了「太多」缺陷或者 「錯誤的缺陷」,或者是「在不恰當的時間」發現缺陷。然後項目經理決定不對所有的缺陷進行修復(或不打算對任何缺陷進行修復),這樣在驗收測試或最終用戶操作過程中,這些沒有被修復的缺陷在很大幾率上會被客戶發現。

  因此,測試人員通常不能決定發現的缺陷是否被修復。也就是說,產品的質量不能完全落入測試人員責任區。

  從這個意義上講,有些項目經理會不贊同這種說法。原因很明顯,產品出現質量問題時,不稱職的項目經理希望每個人(特別是測試團隊)都與他一起承擔責任,如果他們能夠將項目失敗的責任推到別人的頭上,那當然最好了。然而,項目經理(不是整個團隊也不是測試人員)應該是唯一為產品質量負責的人,因為他/她是唯一對項目的關鍵決策進行最終拍板的人(這裡的決策包括將自己的權力委託他人執行的決定)。

3

測試人員的職責

  很顯然,如果測試人員不對產品質量負責,而他們的服務卻又是項目的需要,那麼他們一定在項目中負責其他一些事情。

  一個測試人員是要為一個開發團隊提供測試服務。 假設開發團隊對項目中的職責有正確的認識,那麼他們會期望測試人員能夠對軟體產品的當前狀態提出實時精準的信息,能夠從發現與修復缺陷的角度預測產品開發的成敗。

  ● 從滿足客戶需求的角度,對產品當前狀態進行了哪些定性和定量的評估?

  ● 如果按照目前發現和修復缺陷的走勢,項目團隊是否能夠按時交付高質量的產品?

  ● 如果預測並不樂觀,那麼推薦採取哪些糾正措施?

  在任何時刻,如果測試人員可以向干係人提供至少上述兩個問題的答案,那麼他就是合格的。如果他能夠回答上述所有三個問題,那麼他毫無疑問是一個優秀的測試人員!

4

對測試人員職責的誤解

  第一,我們經常把軟體測試和質量保證這兩個概念混為一談,特別是當使用「質量保證」這個詞的時候。

  不知道最初是哪個人腦子出了問題,決定稱測試人員為「質量保證專家」。另外,很顯然有些人(特別是新手)可能會覺得被稱為「質量保證專家」比「測試人員」更受人尊敬。還有以前經常看到的,僱主和招聘機構的網站張貼了尋求QA工程師和QA經理的廣告,然而他們的職責的列表基本上就是典型的測試人員/測試設計人員和典型的測試經理的職責。這證明了僱主已形成了對測試人員不正確的期望。

  事實上,我們已解釋過,測試人員不直接負責產品質量,因為他們通常對有關產品質量的決策沒有影響力。測試人員不會參與編碼,也不會去更改代碼,這就是說他們不能直接改善軟體代碼的質量。更確切地說,測試人員的工作不是保證質量,而輔助質量。

  第二,就像之前說過的,如果測試團隊是在承擔產品質量保證這樣一種誤解下工作的話,經理和其他項目參與者可以很自然地將缺陷的責任推到測試人員的身上。

  第三,有的高級管理層真的是誤認為測試人員能夠保證質量。本文的作者曾經遇到過這樣的情況,執行官決定進行組織級或項目級的系統測試的主要原因是,他們認為測試人員能夠保證質量。

5

達成共識

  測試人員(或測試團隊)的責任是經常討論的一個問題。項目的所有干係人都應該清楚這個問題的答案,因為這關係到項目的成敗。如果幹系人的期望與測試團隊的目標一致,那麼測試人員和開發人員之間的互動和溝通就會比較順暢,沒有嚴重的衝突,並且不同級別的干係人都能及時獲得項目狀態信息並了解如何使用該信息。

  一個項目的成功並不完全取決於對測試人員的職責達成共識,但我們應該明白這是一個必要的前提。

軟體測試學習交流資料群:574253227,更多技術請加學習群!


推薦閱讀:

2018/3/1-job
開發12年 整整6百萬行代碼:史上最爛的開發項目長這樣
1.5 敏捷開發(XP和Scrum)
對未知多些敬畏 - 四個開發小故事

TAG:軟體開發 | 軟體測試 | 軟體測試工程師 |