?????? 一提起“軟件測試”,總有不少人很反感,因為在他們得印象當中,做測試的就是整天沒事干,專挑別人毛病的;甚至還有不少程序員就感覺“測試和開發”人員是對立的……
?????? 其實不然,軟件測試是在軟件開發過程中是和開發人員相互合作,不存在對立關系的,他也是一個獨立的部門。測試就是在一個程序被交付到最終 用戶手上之前找出程序中的錯誤為目的活動。
?????? 測試是檢查產品的質量,而不是檢查開發人員的質量;因此,對立的關系是不存在的。
?????? 而測試的目的,也不是簡單狹義的找出Bug,進行測試又分為兩種立場:從用戶的角度出發,就是希望通過軟件測試來充分暴露軟件中存在的問題和缺陷,從而考慮是否可以接受該產品;從開發者的角度出發,就是希望通過測試來表明軟件產品不存在錯誤,已經正確地實現了用戶的需求,從而確立人們對軟件質量的信心。中國軟件測評中心的測試原則也是如此。
????一個軟件的開發往往需要大量的人力和和時間,因此成功的測試就是要以最少的人力和時間,系統的找出軟件種潛在的各種錯誤和缺陷,它能夠證明軟件的功能和性能與需求是否相符合,而實施測試所收集到的測試結果數據也為可靠性分析提供了依據。但是測試不能表明軟件中不存在錯誤,它只能表明盡可能的找出軟件中存在錯誤。
??? 在這里,附帶的說一下軟件質量缺陷的原因,主要是一下幾方面的原因:
????1.缺乏或者沒有進行溝通
??? 2.軟件復雜度
??? 3.編程錯誤
??? 4.不斷變更的需求
??? 5.時間的壓力
????6.人員的自大
????7.缺乏文檔的代碼
????8.軟件開發工具
????另外,一個好的測試的屬性是指:
??? 1. 一個好的測試發現錯誤的可能性很高
??? 2. 一個好的測試并不冗余
??? 3. 一個好的測試應該是“最佳品種”
??? 4.?一個好的測試既不會太簡單,也不會太復雜
????隨著生社會的發展,用戶對軟件質量的要求也更高了,已不是簡單的看功能的實現了,而是越來越重視軟件是否經過了測試和測試的結果。能經受測試的軟件,才是一個成功的軟件、優秀的軟件。因此,一定要重視軟件測試!
????
??