提高軟體質量的10點
介紹
隨著專案變得越來越大,質量問題出現的可能性就越大。這些質量問題可能是什麼:錯誤太多,執行時間過長,記憶體使用率過高,難以理解/難以修改編碼風格等等。這些質量問題通常會使程式使用者不滿意,開發速度變慢。不幸的是,你永遠無法擺脫所有質量問題,但你可以通過以下幾點來避免大部分質量問題。當然,這些解決方案需要花費很多時間,但是最好及時完成這類工作,而不要浪費與修復bug相同的時間。
1. 需求分析
在開始開發之前,您需要確保它100%清楚您的程式應該做什麼。當然,在這裡,您需要考慮需求之間的相容性,或者是否可以實現所有要求,是否存在某些硬體限制?
說實話,大多數錯誤來自簡單的誤解:客戶對功能的理解與開發人員不同。
這就是為什麼以清晰的書面形式記錄這些要求並讓客戶閱讀並接受它們的原因。
2.軟體設計
如果要求明確,仍然不要從編碼開始。首先考慮解決方案,關於如何實施?需要使用哪些演算法?哪部分程式碼可以重用?可以使用哪些庫?不同的元件和類如何相互通訊?等等…
通過這種規劃,您可以在將來找到並避免許多可能的問題。以文字和/或UML圖的形式記錄您的設計。
3.編碼指南
如果多個開發人員正在處理相同的程式碼,那麼總是有一個編碼指南,它定義了要使用的編碼風格(函式和變數的命名,括號的使用等),這樣你的程式碼就會有一個統一的風格 - 可讀。
4. 定期審查
與其他團隊成員一起進行設計和程式碼審查。他們可以輕鬆找到您的思維方式或程式碼中的錯誤。如果沒有對此進行稽核,請不要將任何程式碼合併。
5.靜態程式碼分析
使用靜態程式碼分析工具。這些工具可以分析您的原始碼而無需執行它。他們可以找到很多可能的問題,比如未初始化的變數,從不滿足的條件,無法訪問的程式碼部分等等。他們也可以檢查編碼風格。
6.單元測試
為您的程式碼實現單元測試。一個好的單元測試可以快速執行並測試程式碼的一小部分(單元)。單元測試有助於確保在每次更改時您沒有破壞已經正在執行的功能,並且它們可以幫助其他程式設計師瞭解您的程式碼的用途,因為從單元測試中,他們可以看到預期的行為是什麼。
7.元件和系統測試
不要忘記對元件或系統進行更高級別的測試。這基本上是一個黑盒測試,所以你不是基於程式碼,而是根據要求。您可以輕鬆檢查您的元件是否滿足要求。也要經常考慮角落裡的情況。這些測試也可以是手動或自動的。自動化測試的優勢在於您可以隨時執行測試。
8. 持續整合
使用CI系統(如Jenkins)設定持續整合伺服器,讓它在每次新更改的情況下每晚執行構建並檢查程式碼。您還可以整合靜態分析器和自動化測試,以便在每次提交後,如果您的軟體正常工作,您將獲得自動反饋。
9.錯誤跟蹤
在bug跟蹤系統中跟蹤已發現的錯誤(例如:Mantis)。對於每個錯誤,請記錄如何重現它們以及它與預期行為的不同之處。如果修復了一個錯誤,您可以很快記錄修復程式的解決方案,以避免將來出現同樣的錯誤。使用這種方法,您永遠不會忘記任何錯誤。
10.分析和記憶體使用
為了能夠保持軟體的效能,您需要定期測量其執行時間。為此,您可以使用任何分析工具。使用此方法,您還可以發現使用最多執行時的部分。您還需要檢查工具的記憶體使用情況。出於這樣的目的,總是嘗試從計算的角度定義最困難的場景。
原文地址:https://www.codeproject.com/Articles/1268814/10-Points-for-Better-Software-Quality