· 測試時間。類測試可以在開發過程的不同位置進行。在一個遞增的、反復的開發過程中,一個類的說明,實現可能會發生變化,所以應該在軟件其他部使用該類之前執行類的測試。每當一個類的實現發生變化時,就應該執行 歸測試。所以類的測試要和類的設計、開發保持同步,因為確定早期測試用例有助于對類說明的理解保持一致,也有助于獲得獨立代碼檢查的反饋。若 一個類的開發人員不能設計充分和準確的測試用例,其測試結果會給人一個 錯覺——即該類通過了所有測試。但是當該類被集成到某個較大的系統時, 將會導致嚴重的問題。
· 測試過程。類的測試通常要借助測試驅動程序,這個驅動程序創建類的實例,并為那些實例創造適當的環境以便運行一個測試用例。驅動程序向測試用例指定的一個實例發送一個或多個消息,然后根據參數、響應值、實例發生的變化來檢查 那些消息產生的結果。如果編程語言(例如c___)具有程序員管理存儲分配的機 制,那么測試驅動程序需要刪除它所創建的那些實例。
· 測試程度。町以根據已經測試丁多少婁實現和多少類說明來衡量測試的充分性。對于類測試來說,要測試操作和狀態轉換的各種組合情況,但有時窮舉法是不能的,此時就應該選擇配對系列的組合情況,如果能結臺風險分析進行選擇,效果會明顯些。
3構建測試用例
首先看怎樣從類說明申確定測試用例,然后根據類實現引進的邊界值來擴充附加的試用例。類說明通?梢杂枚喾N方式進行描述,如自然語言和狀態圖等,假如要測試類的說明不存在,那么就可通過“逆向工程法”產生一個說明,并在開始測試之前讓開發人員對之進行檢查。
根據前置條件和后置條件來構建測試用倒的總體思想是:為所有可能出現的組合情況確定測試用倒需求。在這些可能出現的組合情況F,uJ以滿足前置條件,也能夠達到后置條件。接下來創建測試用倒來表達這些需求,根據這些需求還可以創建擁有特定輸入值(包括常見值和邊界值)的測試用例,并確定它們的正確輸出。最后,還可以增加測試用例來闡述違反前置條件所發生的情況。
4類測試系列的充分性
在某些情況下。司以使用窮舉法來測試每個類,即用所有可能的值來測試,以確保每一個類都符合它的說明。在這種情況下,窮舉測試法所帶來的好處就超過了編寫測試驅動程序以運行更多測試用例所花的代價。
但是窮舉測試法一般是不可能實現的,如果不能使用窮舉測試法時,就不能保證個類的每一方面都符合它的說明,但能夠運用某個充分性的標準來使我們對測試系列的質量抱有高度的信心。充分性的3個常用標準是:基于狀態的覆蓋率、基于限制的覆蓋率、基于代碼的覆蓋率。最低限度地符合這些標準將會產生若十不同的測試系列。將所有3個標準用于測試系列,將會提高我們對測試充分性的信任度。
· 基于狀態的覆蓋率。咀測試覆蓋了多少個狀態轉換為依據。假如測試沒有覆 蓋一個或一個以上的狀態轉換,那么其類的測試就不充分。即使測試用例對所有的狀態部覆蓋了一次,測試的允分性仍值得懷疑,因為狀態通常包含了各種對象屬性的值域。這樣,必須測試這些值域里的所有值,包括典型值和
邊界值。
· 基于約束的覆蓋率。與基于狀態轉換的充分性類似,還可以根據有多少對前置條件和后置條件被覆蓋來表示充分性。例如,如糶一個操作的前置條件是prcl或者pre2,而后置條件足postl或者pon2,充分的測試則需要包含所有有效的組合 況(即prel=【nle,pre2一false,postl=訂ue,post2一false;prcl=false,pre22nⅥe,postl2mle,Don2=false等)的測試用例。假如生成的測試用例滿足了每一個需求,那么就符合這個充分性的標準。
· 基于代碼的覆蓋率。當所有的測試用例都執行結束時,確定實現一個類的每一行
代碼,或代碼通過的每一條路徑至少執行了一次,這是一種很好的崽想。文章來源于領測軟件測試網 http://www.kjueaiud.com/