c 代碼的覆蓋深度:從覆蓋源程序語句的詳盡程度分析,邏輯覆蓋標準包括以下不同的覆蓋標準:語句覆蓋、判定覆蓋、條件覆蓋、條件判定組合覆蓋、多條件覆蓋和修正判定條件覆蓋。
·語句覆蓋 為了暴露程序中的錯誤,程序中的每條語句至少應該執行一次。因此語句覆蓋(Statement Coverage)的含義是:選擇足夠多的測試數據,使被測程序中每條語句至少執行一次。語句覆蓋是很弱的邏輯覆蓋。
·判定覆蓋 比語句覆蓋稍強的覆蓋標準是判定覆蓋(Decision Coverage)。判定覆蓋的含義是:設計足夠的測試用例,使得程序中的每個判定至少都獲得一次“真值”或“假值”,或者說使得程序中的每一個取“真”分支和取“假”分支至少經歷一次,因此判定覆蓋又稱為分支覆蓋。
·條件覆蓋 在設計程序中,一個判定語句是由多個條件組合而成的復合判定。為了更徹底地實現邏輯覆蓋,可以采用條件覆蓋(Condition Coverage)的標準。條件覆蓋的含義是:構造一組測試用例,使得每一判定語句中每個邏輯條件的可能值至少滿足一次。
·多條件覆蓋 多條件覆蓋也稱條件組合覆蓋,它的含義是:設計足夠的測試用例,使得每個判定中條件的各種可能組合都至少出現一次。顯然滿足多條件覆蓋的測試用例是一定滿足判定覆蓋、條件覆蓋和條件判定組合覆蓋的。
·修正條件判定覆蓋 修正條件判定覆蓋是由歐美的航空/航天制造廠商和使用單位聯合制定的“航空運輸和裝備系統軟件認證標準”,目前在國外的國防、航空航天領域應用廣泛。這個覆蓋度量需要足夠的測試用例來確定各個條件能夠影響到包含的判定的結果。它要求滿足兩個條件:首先,每一個程序模塊的入口和出口點都要考慮至少要被調用一次,每個程序的判定到所有可能的結果值要至少轉換一次;其次,程序的判定被分解為通過邏輯操作符(and、or)連接的布爾條件,每個條件對于判定的結果值是獨立的。
不同的測試工具對于代碼的覆蓋能力也是不同的,通常能夠支持修正條件判定覆蓋的測試工具價格是極其昂貴的。
嵌入式軟件的測試:對于嵌入式軟件的測試,我們還需要一方面進一步考慮測試工具對于嵌入式操作系統的支持能力,例如DOS、Vxworks、Neculeus、Linux和Windows CE等;另一方面還需要考慮測試工具對于硬件平臺的支持能力,包括是否支持所有64/32/16位CPU 和 MCU,是否可以支持 PCI/VME/CPCI 總線。
測試的可視化:白盒測試是工作量巨大并且枯燥的工作,可視化的設計對于測試來說是十分重要的。在選購白盒測試工具時,應當考慮該款測試工具的可視化是否良好,例如:測試過程中是否可以顯示覆蓋率的函數分布圖和上升趨勢圖,是否使用不同的顏色區分已執行和未執行的代碼段顯示分配內存情況實時圖表等,這些對于測試效率和測試質量的提高是具有很大的作用的。 (B6)
用戶觀點
為了更直接地了解IT測試的應用情況,記者在2005年IT測試技術研討會的現場采訪了9名與會人員,而他們對IT測試的看法可以分為三類。
第一類:有想法,要多了解信息
這種想法在很多中小企業中存在,他們已經意識到了IT測試的重要性,但是限于各種條件,現在還處于收集信息的階段。部分用戶代表希望有價格便宜的第三方測試機構來幫助自己進行測試。
北京青云航空儀表公司 黃迪生
我們目前比較需要網絡測試和軟件測試的設備。但因為此前對測試技術和產品不太熟悉,目前更多地是想了解一下最新的技術和產品。我們希望廠商能有一些具體的演示和應用案例。
北京京能熱點股份有限公司信息中心 夏驥
在此前的IT項目中,我們還沒有使用過專門的測試工具軟件和設備。但我們對新的測試工具軟件和設備比較感興趣,目前我們正在做網絡改造,所以想先了解一下這方面的產品和技術。
某小型軟件企業創始人
公司目前的產品主要面向交通行業,例如公交系統的控制方面。公司自己成立了專門的軟件測試部門,以對產品進行測試。目前,還沒有把產品進行外包測試的想法。
北京圖易得系統工程技術有限公司總經理 葉濤
我們公司所開發的軟件產品主要面向畜牧業、農業等行業的信息化建設。目前,由于應用到項目的程序并不是特別龐大,所以相應的軟件產品的規模也有一定的限度,在這種情況下軟件測試主要還是由自己進行。公司組建了專門的測試部以進行測試。
對于軟件產品的測試,我們也非常重視,只不過由于規模問題,我們還沒有達到更進一步的測試需求。
中國五礦化工進出口商會信息部副主任 劉京嫻
我們作為直接的產品使用者考慮,成本是一個很重要的因素。實際我們最近希望能夠進行網絡測試,因為我們現在常常遇到網絡故障,但又找不到原因。如果以后有專業的第三方測試提供價格合理的測試項目,我們會考慮選用。
第二類:使用過工具,但是價格等因素限制了進一步使用
這類用戶基本都是一些專業的IT公司,他們對測試工具有明顯的渴求,但是現在的條件限制了應用。
中科輔龍計算機技術有限公司技術管理部經理 林志丹
我們用過一些網絡測試和軟件測試的工具軟件,有一些感覺。網絡測試和軟件測試都是工具軟件,它們面臨同樣的問題,就是專業性強,用戶少,而廠商為了盈利就不得不將價格定得較高;其次是這類軟件大多比較難以上手,需要專門的培訓,但這樣的培訓卻往往不是免費的。例如Rational相信就不是人人都用得起,用得好。業界是否可以采用一些新思路,將這類工具軟件采用服務或者租借的形式向用戶提供呢?
長城軟件系統集成公司許哲源
我們平時所做的測試基本上都是功能測試。20個人以下的可以從網上免費下載。
在開發成本可以承受的情況下,項目團隊當然愿意選擇性價比高的測試工具。
第三類:對測試非常了解,同時經常使用IT測試工具
這些用戶每年都會投入一定的費用用于產品運維和新產品購買,他們對于IT測試的認識也是最為深入的。