【軟體工程】軟體測試
前言
軟體測試,相當於建築立面的監工,監工要比干活的知識面要廣。
一、(一)軟體測試的內容
軟體測試不光是測試我們程式設計師所編寫的軟體,還有我們寫的文件,程式的介面,執行的環境等。
(二)軟體測試的目的
1、軟體測試是程式的執行過程,目的在於發現錯誤
2、好的測試用例是能夠發現新的錯誤
3、一個成功的測試是發現了至今未發現的錯誤的測試
(三)測試的原則
1、測試前要認定被測試的軟體有錯,不要認為軟體沒有錯
2、要預先確定被測試軟體的測試結果
3、要儘量避免測試自己編寫的程式
4、測試要兼顧合理輸入與不合理的輸入資料
5、測試要以軟體需求規格說明書為標準
6、測試是相對的,不能窮盡所有測試
7、測試用例留作測試報告與以後的反覆測試用
(四)測試的方法
1、黑盒測試(資料驅動)
黑盒測試就是不管內部的資料結構,主要測試的就是功能,以資料作為驅動,輸入一個數據,同時還會輸出一個數據,觀察輸出的資料是否滿足你的需求!
(1)等價類劃分法:
等價類分為有效等價類和無效等價類
無效等價類和有效等價類相反,無效等價類是指對於軟體規格說明而言,沒有意義的,不合理的輸入資料集合。利用無效等價類,可以找出程式異常說明情況,檢查程式的功能和效能的實現是否有不符合規格說明要求的地方。
有效等價類指輸入完成滿足程式輸入的規格說明,有效、有意義的輸入資料所構成的集合。利用有效等價類可以檢驗程式是否滿足規格說明所規定的功能和效能。
(2)邊界值法
邊界值法是對等價類分析方法的一種補充,由長期的測試工作經驗得知,大量的錯誤是發生在輸入或輸出的邊界上。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。
2、白盒測試(邏輯驅動)
對邏輯路徑進行測試,所有的關鍵路徑(相互獨立的路徑)都要測試,白盒測試又稱結構測試、透明盒測試、邏輯驅動測試或基於程式碼的測試。白盒測試工具是對原始碼進行的測試,測試的主要內容包括詞法分析與語法分析、靜態錯誤分析、動態監測等。但是對於不同的開發語言,測試工具實現的方式和內容差別是較大的。測試工具主要支援的開發語言包括:標準C、C++、Visual C++ 、Java和Visual J++等
總結:黑盒測試與白盒測試都是測試用例的一種方法,期中黑盒測試用的較多,白盒測試的難度比較大,需要測試者有較高的水平,測試者必須熟悉高階餘元,白盒測試需要藉助專門的測試工具,對程式設計師編寫的程式碼進行一個一個的邏輯測試,過程非常繁瑣,像單元測試一般都用白盒測試,整合測試一般採用黑盒測試!
(五)測試的步驟
如圖,測試的過程如下,單元測試,整合測試,確認測試,系統測試
1、單元測試(模組測試)
測試的內容:路徑、邊界、區域性資料、模組結構、出錯的處理
如圖所示,由於單元模組都是孤零零的一個模組,我們在設計軟體的時候,有很大的時候這個模組的功能是與其他的模組是有很大的聯絡的,如被測的單元模組用到的資料很有可能是它的上一個模組產出的資料,這時候我們就需要輔助模組了,輔助模組分別是樁模組,與驅動模組,樁模組與驅動模組使我們的測試者虛擬出來的。
2、整合測試(組裝測試)
實踐表明,一些模組雖然能夠單獨地工作,但並不能保證連線起來也能正常的工作。一些區域性反應不出來的問題,在全域性上很有可能暴露出來,於是整合測試出來的,它是非常重要的,建立在單元測試之上。
3、確認測試(有效性測試)
確認測試是對通過組合測試的軟體進行的,這些軟體已經存與系統目標裝置的介質上。確認測試的目的是要表明軟體是可以工作的,並且符合軟體需求說明書中規定的全部功能和效能要求。確認測試是按照這些要求定出的確認測試計劃進行的。測試工作由一個獨立的組織進行。而且測試要從使用者觀點出發。
4、系統測試
軟體除錯是在進行了成功的測試之後才開始的工作,它與軟體測試不同,除錯的任務是進一步診斷和改正程式中潛在的錯誤。測試的分析報告由此而產生。