本站小編為你精心準備了面向對象軟件測試技術設想參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
摘要:軟件測試在整個軟件項目開發過程中有著舉足輕重的地位,測試技術的發展對于縮短測試周期、降低成本、提高質量都有著十分重要的意義。本文介紹了軟件測試的關鍵技術,并對面向對象軟件測試技術進行了深入研究。關鍵詞:軟件測試;關鍵技術;軟件項目開發一、引言軟件測試是伴隨著軟件的產生而產生的。軟件危機的頻繁出現促使了軟件測試的地位得到了大幅提升。軟件測試已經不僅僅是局限于軟件開發過程中的一個階段,它已經開始貫穿于整個軟件開發過程,成為軟件產品質量控制與質量管理的重要手段之一。軟件測試技術作為軟件工程學科的一個分支,是保證軟件質量和可靠性的關鍵,因此它也是軟件開發過程中的一個重要環節。它的核心思想是:對于輸入域的特定輸入,觀察軟件的執行結果,驗證該結果與期望結果是否一致,然后根據結果作相應的糾錯和調整。在測試過程中,測試用例的選擇決定測試的有效性,這也就直接影響到成本,是軟件測試的關鍵和難點。目前,軟件測試技術的發展還不是很成熟,測試人員在選擇測試用例時通常根據直覺和經驗進行,給測試帶來很大的盲目性,最終導致的后果是使軟件后期維護的費用在成本中居高不下??茖W生成測試用例對提高軟件質量不僅重要而且必要。隨著面向對象軟件開發技術的廣泛應用和軟件測試自動化的要求,特別是基于的軟件開發技術的逐漸普及,基于模型的軟件測試逐漸得到了軟件開發人員和軟件測試人員的認可和接受。它是一種新興的測試用例生成技術。有優于以前的測試技術的方面。其中模型以其定義良好、功能強大、普遍適用的優點,為基于模型的測試提供了非常好的契機。二、面向對象特征對軟件測試的影響面向對象技術是一個全新的開發模式,具有以下特點:(1)它要綜合考慮軟件開發過程所有階段。(2)在軟件開發的整個生存周期中,每個階段之間是連續的。(3)開發過程分為面向對象分析(00A)、面向對象設計(OOD)、面向對象編程(OOP)、面向對象測試(OOT)四個連續的部分。Coad和Yourdon給面}向對象的概念下了一個定義:面向對象=對象+類+繼承+通信如果一個軟件系統是使用這樣4個概念設計和實現的,則認為這個軟件系統是面向對象的。一個而向對象的程序的每一個組成部分都是對象,計算是通過對象和對象之間的通信來執行的。面向對象技術的本質是定義了類的抽象,將變量和與作用于它的操作封裝到一塊。然后用不同的類和方法組合成一個對象系統。面向對象軟件將傳統軟件中的一個過程或一個方法內的復雜性轉移到對象之間的交互中。面向對象語言一些本質特征形成了如下的一些新的故障、錯誤風險。1、基本功能模塊在面向對象系統中,系統的基本構造單元是封裝了數據和方法的類和對象,而不再是一個個能完成特定功能的功能模型。每個對象有自己的生存期,有自己的狀態。消息是對象之間相互請示或協作的途徑,是外界使用對象方法及獲取對象狀態的唯一方式。對象的功能是在消息的觸發下,由對象所屬類中定義的方法與相關對象的合作共同完成,并且對象在不同狀態下對消息的響應可能完全同。工作過程中,對象的狀態可能被改變,產生新的狀態,即發生狀態的轉移。對象中的數據和方法是一個有機的整體,在軟件測試過程中,不能僅僅檢查輸入數據產生的輸出結果是否與預期結果相吻合,還要考慮對象的狀態變化。因此,除了要對對象的狀態與方法間的相互影響進行測試,還要進行狀態測試。2、系統的功能實現在面向對象系統中,系統的功能體現在對象間的協作上,而不再是簡單的過程調用關系。面向對象程序的執行實際上是執行一個由消息連接起來的方法序列,方法的實現與所屬對象本身的狀態有關,各方法之間可能有相互作用。為實現某一特定的功能,可能要激活調用屬于不同對象類的多個成員函數,形成成員函數的啟用鏈。因此,基于功能分解的自頂向下或自底向上的集成測試策略不適用于面向對象軟件系統的測試。3、封裝對測試的影響封裝是指在詞法單位之中或之間決定名字可見性的訪問控制機制。它支持信息的隱蔽和模塊化,有助于防止全局變量訪問的問題。盡管封裝不會直接促成錯誤的發生,它卻給測試帶來了障礙。封裝使對象的內部狀態隱蔽,如果類中未提供足夠的存取函數來表明對象的實現方式和內部狀態,則類的信息隱蔽機制將給測試帶來困難。
4、繼承對測試的影響繼承也是面向對象語言中的一個本質特征。繼承可用于一般與特殊關系,并目方便編碼。但繼承削弱了封裝性,產生了類似于非面向對象語言中全局數據的錯誤風險。由于繼承的作用,一個函數可能被封裝在具有繼承關系的多個類中,子類中還可以對繼承的特征進行覆蓋或重定義。5、多態對測試的影響多態性是指一個引用可以與多個對象綁定的能力。多態能減少代碼的復雜性和規模,同時還可以實現動態綁定。但依賴于不規則的類層次的動態綁定可能產生編程人員沒有想到的結果。某些綁定能正確的工作但并不能保證所有的綁定都能正確地運行。以后綁定的對象可能很容易將消息發送給錯誤的類,執行錯誤的功能,還可能導致一些與消息序列和狀態相關的錯誤。三、面向對象軟件測試的層次劃分及內容面向對象軟件測試的測試工作過程與傳統的測試一樣,分為以下幾個階段:制定測試計劃、產生測試用例、執行測試和評價。目前,面向對象軟件測試劃分方法是:方法測試、類測試、類簇測試、系統測試。1、方法測試方法測試主要考察封裝在類中的一個方法對數據進行的操作,它與傳統的單元模塊測試相對應,可以將傳統成熟的單元測試方法。但是,方法與數據一起被封裝在類中,并通過向所在對象發送消息來驅動,它的執行與對象狀態有關,也有可能會改變對象的狀態。因此,設計測試用例時要考慮設置對象的初態,使它收到消息時執行指定的路徑。2、類測試主要考察封裝在一個類中的方法與數據之間的相互作用。一個對象有它自己的狀態和依賴于狀態的行為,對象操作既與對象狀態有關,又反過來可能改變對象的狀態。普遍認為這一級別的測試是必須的。類測試時要把對象與狀態結合起來,進行對象狀態行為的測試。類測試可分以下兩個部分:(1)基于狀態的測試考察類的實例在其生命期各個狀態下的情況。這類方法的優勢是可以充分借鑒成熟的有限狀態自動機理論,但執行起來還很困難。一是狀態空間可能太大,二是很難對一些類建立起狀態模型,沒有一種好的規則來識別對象狀態及其狀態轉換,三是可能缺乏對被測對象的控制和觀察機制的支持。(2)基于響應狀態的測試從類和對象的責任出發,以外界向對象發送特定的消息序列來測試對象。較有影響的是基于規約的測試方法,和基于程序的測試?;谝幖s的測試往往可以根據規約自動或半自動地生成測試用例,但未必能提供足夠的代碼覆蓋率。基于程序的測試大都是在傳統的基于程序的測試技術的推廣,有一定的實用性但方法過于復雜且效率不高。3、系統測試系統測試是對所有類和主程序構成的整個系統進行整體測試,以驗證軟件系統的正確性和性能指標等滿足需求式樣說明書和任務書所指定的要求。它與傳統的系統測試一樣,包括功能測試、性能測試、余量測試等,可套用傳統的系統測試方法。四、面向對象軟件測試的覆蓋準則測試覆蓋標準是對軟件測試充分性的度量,任何測試策略都應該有相對應的覆蓋標準,在此基礎上選擇測試用例,通過覆蓋率來說明測試結果的可信性。傳統的軟件測試的覆蓋標準對基于代碼的測試而言,主要是代碼覆蓋,可細分為語句覆蓋、路徑覆蓋、分支覆蓋、判定分支覆蓋,其中判定分支是最強的覆蓋標準。對于面向對象軟件的測試而言代碼的覆蓋只對方法級測試適用,為了測試面向對象程序設計機制帶來的錯誤風險,必須引入新的覆蓋標準。對于繼承而言,要求達到繼承的上下文覆蓋;多態性要求覆蓋所有可能的消息綁定;基于代數規約的測試要求能達到公理的覆蓋;基于狀態的測試要求能覆蓋所有的狀態和轉換。參考文獻[1]朱少民,軟件測試方法和技術,北京:清華大學出版社2005[2]徐中偉,軟件測試質量的度量,計算機工程與應用,2002[3]張雪萍,類測試技術研究,計算機工程與應用,2002