由于軟件開(kāi)發(fā)人員思維上的主觀(guān)局限性,且目前開(kāi)發(fā)的軟件系統都具有相當的復雜性,決定了在開(kāi)發(fā)過(guò)程中出現軟件錯誤是不可避免的,軟件過(guò)多的或嚴重的錯誤會(huì )導致程序或系統的失效。軟件錯誤產(chǎn)生的主要原因有:
· 需求規格說(shuō)明書(shū)(requirement specl矗c吐ion或fundional specification)包含錯的 需求、或漏掉一些需求,或沒(méi)有準確表達客戶(hù)所需要的內容。
· 需求規格說(shuō)明書(shū)中有些功能不可能或無(wú)法實(shí)現。
· 系統設計(system design)中的不合理性。
· 程序設計中的錯誤。
· 程序代碼中的問(wèn)題,包括錯誤的算法、復雜的邏輯等。
· 若能及早排除軟件開(kāi)發(fā)中的錯誤,有效地減少后期工作可能遇到的問(wèn)題,就以
盡町能地避免付Hj高昂的代價(jià),從而大大提高系統開(kāi)發(fā)過(guò)程的效率。
根據GJ Myers觀(guān)點(diǎn),對軟件測試的目的可以簡(jiǎn)單地概括為:
· 軟件測試是為了發(fā)現錯誤而執行程序的過(guò)程。
· 一個(gè)好的測試能夠在第一時(shí)間發(fā)現程序中存在的錯誤。
· 一個(gè)好的測試是發(fā)現了至今尚未發(fā)現的錯誤的測試。
他指出“軟件測試足為了發(fā)現錯誤而執行程序的過(guò)程”,而更多專(zhuān)家認為軟件測試的范圍應當更為廣泛,除了要考慮測試結果的正確性以外,還應關(guān)心程序的效率、可適用性、維護性、可擴充性、安全性、可靠性、系統性能、系統容量、可伸縮性、服務(wù)可管理性、兼容性等等因素。隨著(zhù)人們對軟件測試更廣泛,深刻的認識,可以說(shuō)對軟件質(zhì)量的判斷決不只限于程序本身,而是整個(gè)軟件研制過(guò)程。 不管怎么定義軟件測試,基本的結論足一致的,即軟件測試是為了發(fā)現軟件產(chǎn)品所存在的任何意義上的軟件缺陷(bug),從而糾正(fix)這些軟件缺陷,使軟件系統更好地滿(mǎn)足用戶(hù)的需求。那么,什么是軟件缺陷呢?
軟件缺陷的定義和種類(lèi)
對于軟件存在的各種問(wèn)題,我們都用“軟件缺陷”這個(gè)詞,在英文中人們喜歡用個(gè)不貼切但已經(jīng)專(zhuān)用的詞“bug(臭蟲(chóng))”,實(shí)際和“缺陷(bug)”詞相近的詞還有很多·如
缺點(diǎn)(defeet) 偏差(variance)
謬誤(fault) 失敗(failure)
問(wèn)題(problem) 矛盾(inconsistency)
錯誤(error) 毛病(incident)
但大家都習慣使用“bug—一軟件缺陷”這個(gè)詞,它包含了一些偏差、謬誤或錯誤,更多地表現在功能上的失敗(failure)和實(shí)際需求的不一致,即矛盾(inconsistency)。
軟件缺陷(bug),即計算機系統或者程序中存在的任何一種破壞正常運行能力的問(wèn)題、錯誤,或者隱藏的功能缺陷、瑕疵。缺陷會(huì )導致軟件產(chǎn)品在某種程度上不能滿(mǎn)足用戶(hù)的需要。在IEEEl983 ofIEEE Standard 729中對軟件缺陷下了一個(gè)標準的定義。
. 從產(chǎn)品內部看,軟件缺陷是軟件產(chǎn)品開(kāi)發(fā)或維護過(guò)程中所存在的錯誤、毛病等各種問(wèn)題。
. 從外部看,軟件缺陷是系統所需要實(shí)現的某種功能的失效或違背。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/