大多數軟件質量從業者認為,軟件質量衡量的直觀標準就是軟件存在 bug 的多少,是否具有高性能,以及是否具有高安全性。但實際上并不全面,更準確地說,軟件質量的高低是由軟件產品對用戶產生的價值的高低衡量的。一方面,要體現對用戶的需求的滿足;另一方面,要體現軟件本身的優勢和特性。
對于第一方面,體現對用戶的需求的滿足:
從市場的角度說,用戶需要的軟件是要帶給他們更多的利益。利益由兩方面組成,開源和節流。開源就是要創造更多的利潤,獲得更大的市場;而節流是指,用更少的人力物力財力成本,去解決一個指定的問題。
對于另一方面,體現軟件本身的優勢和特性:
在滿足第一方面的基礎上,更少的軟件產品缺陷,更好的產品易用性,擴展性,穩定性,安全性等,將從軟件本身角度描繪了一個具有強大優勢和特性的高質量軟件產品。當然,針對不同領域的軟件,衡量的標準也會有不同的視角。
以上兩方面缺一不可,相輔相成。Agile 采用迭代反饋的方式不斷尋求高質量的軟件,同時滿足了兩方面的要求。
如圖 1 所示,橙色部分表示的需求風險,紫色部分表示產品自身質量風險。Agile 方法更注重客戶的需求,在迭代中不斷修正需求,盡量減少最終產品不滿足用戶需求的風險。
原文轉自:http://www.ibm.com/developerworks/cn/devops/1609_liuy_quality/