06 June 2014

子路曰:「衛君待子而為政,子將奚先?」
子曰:「必也正名乎!」
子路曰:「有是哉,子之迂也!奚其正?」
子曰:「野哉,由也!君子於其所不知,蓋闕如也。名不正,則言不順;言不順,則事不成;事不成,則禮樂不興;禮樂不興,則刑罰不中;刑罰不中,則民無所錯手足。故君子名之必可言也,言之必可行也。君子於其言,無所苟而已矣。」

“必也正名”是當年子路向孔子請教從政的方法的時候,孔子對子路的回答。

這句話的基本含義是:我們在做事情的時候,一定要有一個合理正當的名分,這樣我們說的話才會有分量,才能辦成事情。從另一個角度來看,我們在接受一份職務的時候,必須要非常明確這個職務要求我們做一些什麽,我們要承擔哪些職責。只有清晰地定義了自己的責任範圍,才可以制定相應的計劃去履行自己的職責。這樣,哪怕後期發現了疏漏和問題,我們也可以明確的知道是哪一個環節出錯,責任人是誰,誰有責任對此進行改進,避免再次出現類似的問題。

軟件開發人員的職責是保證所開發的產品滿足產品的需求,沒有嚴重的故障,清晰地代碼結構和組織,清晰地設計文檔和測試用例。軟件的質量完全由開發人員保障。測試只是從實際用戶的角度使用軟件產品,發現產品設計上違背用戶期望的功能。測試或者叫做驗證小組他們只是針對產品的功能進行驗證。驗證功能是否能符合實際用戶的預期,而不是關注於軟件中出現的故障,錯誤,異常。總之開發組進行的測試和驗證組進行的測試其目的是完全不一樣的。他們的測試用例可能會有一些重合,但不會完全等同。

基於以上清晰地職責區分,我們就可以制定相應的質量保障計劃:

  • 開發人員要經常評審自己的代碼,設計和測試用例
  • 開發人員要保證足夠高的單元測試覆蓋率,完整的模塊測試,模塊集成測試,系統集成測試。其測試用例要及時更新,測試報告要評審存檔。
  • 開發人員要及時分析質量問題的根本原因,制定相應的行動計劃。
  • 開發人員要持續不斷地追求自動化測試的覆蓋率,不斷提高撰寫測試用例的技能。
  • 開發人員要建立毫不妥協的質量意識。

這是孔子“必也正名”給我帶來的一些啓發。