使用復雜度度量去改進軟件質量
復雜度度量可以用來評估開發和測試活動,決定應該對哪里進行重構以提升質量和預防問題。在QA&Test 2014 conference 大會上,來自于英特爾的Shashi Katiyar就有效利用針對軟件質量改進的復雜度度量提出了自己的見解。
復雜度是一種不同的軟件元素間交互的度量。按照Shashi的說法,軟件復雜度直接反映了軟件的質量和成本:如果代碼復雜度比較高,那么這段代碼的質量就會比較低,而且它的維護成本也會比較高。
Shashi提出,如果軟件產品中有復雜的代碼,那么組織會面臨以下的問題:
較高的缺陷風險
難以增加新的功能
難以理解或維護這段代碼
難以驗證
你可以使用McCabe圈復雜度來度量復雜度。這種度量規定了代碼中線性獨立的路徑條數,它反映了測試難度和軟件的可靠性。它可以用來評估開發和維護工作量。
基于復雜度數據,你掌握要覆蓋所有路徑最少需要多少測試用例。復雜度數據可以幫助你去:
集中力量搞好復雜的模塊
找到最有效的測試技術
了解停止測試的時機
增加軟件的可測試性
Shashi解釋說,你在軟件系統的管理中做到更具可預測性:
在任何軟件產品開始工作之前,如果有人知道它是一個復雜的模塊,那么就有可能在評估期為它賦予一些額外的時間。了解了復雜度能夠預先幫助項目團隊去進行評估,這種做法要勝過在開發和測試期去關注它,從而確保不會讓產品的質量做出妥協。
英特爾收集了復雜度度量和模塊變更數量的數據。這些復雜度數據結合了客戶記錄的缺陷。如果一個模塊是復雜的,并且由于缺陷進行了大量的變更,那么就決定去重構它。在重構之前他們確保有覆蓋這些代碼的測試用例。這種工作方式增加了重構的投資收益率。
Shashi探討了他所看到的軟件開發復雜度與質量相關的挑戰:
在競爭激烈瞬息萬變的環境中,公司通過為它的用戶提供更多的特性來努力使它的服務有所不同。這就導致了大量的代碼行和復雜度,這是個大挑戰。如果未采用適當的預防措施去管理產品的復雜度,那么很快這些產品就將成為難以維護的產品。隨著時間的推移,很多公司都不在使用老代碼和老技術了,他們知道自己的系統太復雜了,把它們進行新技術的移植是一項極其復雜的任務。
“在高復雜度的環境中,創新和開發高質量軟件是極其重要的”Shashi說。“組織可以設定去減少所有高復雜度程序的復雜度,更加頻繁地變更以改進他們軟件的質量”。
posted on 2014-12-03 13:41 順其自然EVO 閱讀(207) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄