標籤:自動化測試 開發人員 軟體品質
評估開發人員的
表現(performance)時,很難找到一個合適的、不依賴軼事證據(anecdotal evidence)的度量。所以當我們Bowery看到Rebel Lab開發人員生產力研究報告-下載連結時非常興奮。這份40頁的報告研究了開發人員在日常生活中使用的工具和實踐。為了能夠讓報告抓住“表現”所蘊含的主旨,Rebel Labs加權了不同實踐和工具在軟體品質和版本發布的可預測性上的效果。
以下是研究報告中用於度量的一些實踐:
- 對技術債務(Technical debt)的處理
- 監視和修正代碼品質問題
- 自動化測試
- 結對程式設計
- 程式碼檢閱
貫徹上述實踐可以提高軟體品質,但是需要付出的金錢和時間成本又如何?這時就要使用可預測性的度量。將這些實踐與軟體按時發布的可能性相比,我們可以妥當得出可靠度量,來審視提高品質花費的時間能否滿足最終期限。
處理技術債務
技術債務是指為了其他任務而延遲的工作。大部分延後的工作都是不用馬上處理的,但如果不好好處理這些任務,可能在將來引起更棘手的問題。
結論:需要偶爾處理下技術債務。始終解決技術債務相比時不時解決下會有較小的提高,但並不顯著。
解決技術債務對可預測性和品質的影響:
監視和修複代碼品質問題
結論:修複代碼品質能夠顯著提高軟體的品質和發布的可預測性,很可能因為這樣的實踐會讓工程師們注意軟體應用中潛在的結構性問題。
修複代碼品質問題對可預測性和品質的影響:
自動化測試
結論:100%使用自動化測試要比部分測試覆蓋率要好,但不使用自動化測試要比部分自動化測試要略微好些——很可能是這些工程師在人工測試他們的代碼。
自動化功能測試對可預測性和品質的影響:
結對程式設計
結論:結對程式設計(一人審核代碼,另一人編寫代碼)對軟體品質有顯著影響。
結對程式設計對品質和可預測性的影響:
程式碼檢閱
結論:從報告來看,評審代碼對軟體發布的可預測性有顯著影響,但是對品質影響很小。這種實踐可能會協助開發人員發現設計和方向上的重大問題,但並不能暴露小問題,例如軟體缺陷(bugs)。
程式碼檢閱對品質和可預測性的影響:
原文地址:https://medium.com/building-bowery/the-state-of-developer-productivity-e5a006f7b724
深入分析開發人員生產力狀態