繼承是指子類自動共享父類中定義的數據和操作的機制,多態是指當同一個消息被不同的對象接受時,可以導致完全不同的行為。繼承與多態機制,是面向對象程序實現重用的主要手段,同時也給面向對象軟件的測試提出了一些新的問題。目前關于面向對象軟件測試的研究,大多集中在類和對象狀態的測試方面。雖有文獻提及繼承及動態綁定對軟件測試的影響,但現有的面向對象軟件測試方法大都忽略了動態綁定的作用和影響,而且尚無普遍接受的面向對象軟件測試的充分性準則。對這些問題的深入研究將會對軟件測試的理論與實踐起到積極的指導作用。
4.軟件測試工具
為了提高軟件測試效率,加快軟件開發過程,許多公司和大學、科研機構開發了軟件測試工具。我國在軟件測試工具研發方面也做了大量工作。它們大致可分為靜態分析工具、測試數據生成工具、測試評估工具以及將多種測試工具融為一體的集成化測試系統等。
· 靜態分析工具
靜態分析工具是在不執行程序的情況下,分析軟件的特性。靜態分析主要集中在需求文檔、設計文檔以及程序結構上,可以進行類型分析、接口分析、輸入輸出規格說明分析等。
· 測試數據生成工具
測試數據生成工具可以為被測程序自動生成測試數據,減輕人們在生成大量測試數據時付出的勞動,同時還可避免測試人員對一部分測試數據的偏見。
· 測試評估工具
測試評估工具用來評估程序結構元素被覆蓋的程度,從而確定測試運行的充分性。這是使用測試數據生成工具生成測試數據之后必須使用的工具。
· 集成化測試系統
集成化測試系統將多種測試工具融為一體,是一種功能較強的測試工具。
一般地說,針對一類特定軟件的測試工具,可以是相當有效的。而要想開發對所有軟件系統都有效的軟件測試工具,幾乎是不可能的。并且,經驗表明,走查,即由測試工程師認真閱讀源程序以發現錯誤,仍不失為一種靠得住的測試方法,雖然這不屬于自動測試方法。
5.程序切片技術
對于大型的復雜軟件系統的測試,應該提到程序切片技術。它是一種分析和理解程序的技術,廣泛應用于程序調試、測試、逆向工程及軟件維護中。它以切片標準為準則,從被測程序中抽取滿足切片標準要求的有關語句,忽略許多與此無關的語句,有利于故障原因的定位分析。
程序切片是一個可執行的程序部分,由可能影響程序某個興趣點處變量值的所有語句和謂詞組成。
程序切片分為靜態切片和動態切片。
靜態切片考慮了程序所有可能的執行路徑。通過分析源程序代碼,獲得有關信息,可以計算程序的靜態切片。對于程序的某個變量而言,靜態切片計算出的該變量值與源程序計算出的該變量值在任何輸入下都是相同的。
動態切片只考慮某個具體輸入下程序的執行路徑,由路徑上影響或間接影響程序某個興趣點處變量值的所有語句和謂詞組成。根據實際輸入執行產生的精確數據流信息,即在特定執行過程中產生的數據依賴,計算程序的動態切片。
文章來源于領測軟件測試網 http://www.kjueaiud.com/