信息技術的飛速發展,使軟件產品應用到社會的各個領域,軟件產品的質量自然成為人們共同關注的焦點。不論軟件的生產者還是軟件的使用者,均生存在競爭的環境中,軟件開發商為了占有市場,必須把產品質量作為企業的重要目標之一,以免在激烈的競爭中被淘汰出局。用戶為了保證自己業務的順利完成,當然希望選用優質的軟件。質量不佳的軟件產品不僅會使開發商的維護費用和用戶的使用成本大幅增加,還可能產生其他的責任風險,造成公司信譽下降,繼而沖擊股票市場。在一些關鍵應用 (如民航訂票系統、銀行結算系統、證券交易系統、自動飛行控制軟件、軍事防御和核電站安全控制系統等) 中使用質量有問題的軟件,還可能造成災難性的后果。
軟件危機曾經是軟件界甚至整個計算機界最熱門的話題。為了解決這場危機,軟件從業人員、專家和學者做出了大量的努力,F在人們已經逐步認識到所謂的軟件危機實際上僅是一種狀況,那就是軟件中有錯誤,正是這些錯誤導致了軟件開發在成本、進度和質量上的失控。有錯是軟件的屬性,而且是無法改變的,因為軟件是由人來完成的,所有由人做的工作都不會是完美無缺的。問題在于我們如何去避免錯誤的產生和消除已經產生的錯誤,使程序中的錯誤密度達到盡可能低的程度。
給軟件帶來錯誤的原因很多,具體地說,主要有如下幾點:
、、交流不夠、交流上有誤解或者根本不進行交流
在應用應該做什么或不應該做什么的細節(應用的需求)不清晰的情況下進行開發。
、、軟件復雜性
圖形用戶界面(gui),客戶/服務器結構,分布式應用,數據通信,超大型關系型數據庫以及龐大的系統規模,使得軟件及系統的復雜性呈指數增長,沒有現代軟件開發經驗的人很難理解它。
、、程序設計錯誤
向所有的人一樣,程序員也會出錯。
、、需求變化
需求變化的影響是多方面的,客戶可能不了解需求變化帶來的影響,也可能知道但又不得不那么做。需求變化的后果可能是造成系統的重新設計,設計人員的日程的重新安排,已經完成的工作可能要重做或者完全拋棄,對其他項目產生影響,硬件需求可能要因此改變,等等。如果有許多小的改變或者一次大的變化,項目各部分之間已知或未知的依賴性可能會相互影響而導致更多問題的出現,需求改變帶來的復雜性可能導致錯誤,還可能影響工程參與者的積極性。
、、時間壓力
軟件項目的日程表很難做到準確,很多時候需要預計和猜測。當最終期限迫近和關鍵時刻到來之際,錯誤也就跟著來了。
、、自負人更喜歡說:'沒問題','這事情很容易','幾個小時我就能拿出來'
太多不切實際的‘沒問題’,結果只能是引入錯誤。
、、代碼文檔貧乏
貧乏或者差勁的文檔使得代碼維護和修改變的異常艱辛,其結果是帶來許多錯誤。事實上,在許多機構并不鼓勵其程序員為代碼編寫文檔,也不鼓勵程序員將代碼寫得清晰和容易理解,相反他們認為少寫文檔可以更快的進行編碼,無法理解的代碼更易于工作的保密(“寫得艱難必定讀的痛苦”)。
文章來源于領測軟件測試網 http://www.kjueaiud.com/