余先榮 羅婷婷
【摘要】 在軟件項目的開發利用進程中對設計出的軟件做應用的測試工作至關重要,其不僅有利于將軟件所需運用的開發時間縮短,而且還能在減小成本投入的基礎上將軟件的應用質量做有效的提高,因此進行這樣的工作十分重要。在文中主要對軟件面向對象測試的有關內容做簡介。
【關鍵詞】 面向對象 軟件測試 技術研究
一、前言
上世紀的80年代對軟件測試的定義有,應用人工運行方式、軟件自動工作方式或者對固定系統運作過程來對軟件進行測試,而檢測的主要內容就是為了查看其是否能夠達到規定的要求,軟件實際應用的結果和預測的結果是否有較大差距。由此可見軟件在開發和生產的過程中必須要伴隨著軟件的測試來進行才能順利的完成。
軟件測試被廣泛的應用是因為軟件在開發和生產中存在很多的危機性。而目前的軟件測試早已不是軟件開發進程里的一個伴隨者,而是轉變成軟件開發全程中的重要過程,被看做是產品質量監控的主要執行者。因此軟件測試從伴隨者的地位上升至軟件產品質量監管的執行者時,此項技術的要求也越來越高,測試過程中所需要面對的難點也越來越多,所以加強軟件測試的技術研究非常緊迫[1]。
二、面向對象技術和軟件測試的內容
具有新型開發方式的面向對象擁有一些獨特的內容。比如:要將軟件在開發全程中的各個時期整合思考;注意到整個時期中軟件開展階段都具有持續性;軟件的開發可以劃分為面向對象的分析程序、面向對象的設計程序、面向對象的編輯程序、面向對象的測試程序。
在軟件系統被定義為是面向對象時,首先應該是由對象、類、繼承、通信來組合完成。在所有程序里的組成成分都應該是對象,而軟件的計算需要應用到對象和對象的相互通信來實現[2]。類抽象性的定義是面向對象技術的本質要求,從而才能把變量和作用在其身上的運作安置在一起。而對象系統的組成需要通過不一樣的類及方法來完成。在相對傳統的軟件基礎上把極具復雜的過程或方法改變成對象相互間的交換就是面向對象軟件。面向對象語言自身的特性在軟件測試中的作用有以下內容:
(1)封裝給測試造成的作用。能夠在詞法單位上對既定名字的可見性控制訪問體系是封裝的定義。對信息的模塊化和隱藏性都能起相應的支持作用,對全程的訪問變量可產生有效的控制。但另一方便會對軟件的測試引來一些麻煩。在對象的內在形態中,封裝是起隱藏的作用,存取的函數在表達相應的對象時,不能滿足其內部狀態的的存在方式就會對類的數據隱藏體系造成測試的困擾[3]。
(2)繼承對測試造成的作用。繼承機制的應用是可以完成提升和分享主要程序的重要通道。由于函數在被封裝的過程中不是在一個固定的子類中,又因為子類還能夠把繼承的本質做重新的制定,因此被重新定義的繼承就需要再做一次檢測,且新應用的語境也要做新的檢測。如果子類對繼承的方法做新的定義后也要將其放在新的語境中做新的檢測。如果是處在多繼承的環境中,不能只對父類的方法做新的定義,還需要對相關聯的其他子類、應用類做新的檢測。
(3)動態或者多態的綁定形式會給測試造成的作用。面向對象方法的重要特性是由動態和多態性的綁定來組成,因此當同一個信息在傳送的過程中可以應用不同的方式發送到應用的對象。多態性的運作方式是指按照已有的指示來操作信息的傳送,而且在信息傳輸的過程中系統可以自行對沒有進行定義的信息挑選適合的代碼,如此就為程序員帶來一定的方便。但其又存在一些不確定的因子,就造成在相對落后的檢測中做靜態的分析時沒辦法按要求完成,系統在運行時的運作途徑被增多,而且檢測的數量和數量也被增大。
能夠將一個引用鏈接綁定到多個對象的功用就是多態性的表達。動態綁定方式的實現和代碼規模及復雜性的減弱是多態性的一種能力。如果將動態的綁定工作執行到不規則的類層次中時,將會出現一些意想不到的可能。但并非是能夠正確工作的綁定就可以確保全部的綁定也可以按規定的程序來運行。被執行綁定的對象在發送信息的過程中也可能轉送到別的類上,并且完成不正確的作用,以此禍及到相應的信息狀態和序列的安排上[4]。
(4)狀態信息給測試造成的作用。面向系統的基礎結構是由被封裝起來的數據和方法的類及對象來組成,并非是可以完成既定作用的結構。不同的對象都會有不同狀態和生存期,不同對象之間的合作和請示由信息來完成,同時也是他處獲悉對象狀態和方法的一個途徑。在信息的作用下對象的功用需要被定義的方法和相應的對象一起進行,而且在不一樣的情況中信息的反映也會不一樣。軟件測試時,一定要把對象的方法和數據看做是整體,在顧慮到對象的變化形態時也要查看數據生成的結果和預期的是否一致。所以在做軟件的測試時應該要將狀態和方法一起進行。
三、面向對象軟件測試的類型檢測方法
(1)封裝測試方法。此種測試和單元模塊的測試相呼應,是比較成熟的單元測試。如果數據和方法被同時封裝到一個類時,再由對象傳輸信息,就會把運作的進程和對象的狀態聯系在一起,給對象造成一定的影響。所以在測試時一定要掌握好對象的初始狀態,才能保證信息能被傳送到劃定的目的地中。
(2)類的測試方法。將狀態和對象聯系起來的測試就是類的測試,而這里的對象狀態行為的測試可以被分成根植于響應狀態的測試類型和根植于狀態的測試類型。根植于響應狀態的測試類型。站在對象和類的角度上,從外界傳送既定的信息到對象之后再執行對象的測試。根植于程序和規約的測試是比較有影響力的測試。站在規約的基石上,測試在進行時就能夠半自動或者全自動產生測試,而能否生成十足的代碼覆蓋就沒法預測。站在程序的基石上,測試在進行時是站在傳統的技術上做推廣,雖然擁有一些實際意義的應用能力,但是因為方法比較復雜,因而測試的效率并不高[5]。
根植于狀態的測試類型。此方法的運用能夠將較為成熟狀態的自動理論進行有效的借鑒,但在運作時還存在一定的困難。原因是狀態的空間性比較大,因此較難既定出相應的類的狀態框架,在狀態的轉化和對象識別上也不具規范性,從而檢測對象的觀察和控制也不能完備。
(3)系統檢測方法。將系統中全部的程序和類做測試就是系統的測試,不僅能夠檢查軟件的性能和系統運作的正確性,其檢測的內容還要囊括功能、性能測試,與傳統的系統測試同出一路。
四、面向對象軟件測試的覆蓋原則
軟件的測試是否能充分的進行是以測試的覆蓋率為基準,只有站在一定的標準上才能對測試的成果做既定的工作。在面向對象的軟件測試中代碼的覆蓋功能只會作用到方法級的測試,設定新的覆蓋目標就是為了避免面向對象程序的運作體系所引發的風險性。繼承就是需要滿足全程的覆蓋,而多態性的覆蓋是為了滿足任何一切有可能的信息進行綁定工作。系統的檢測就必須滿足全部狀態和轉換的覆蓋。
五、結語
面向對象軟件測試在和傳統測試做對比時,前者的技術和方法具有不一樣的方式,而測試的內容囊括有方法的測試和類的測試。面向對象測試的重點也從模塊進入到類的測試中,因此類層的測試就被當做最基本的單元來進行檢測。
參 考 文 獻
[1] 郭滔. 面向對象軟件測試技術研究[J]. 科技信息,2011,4(1):76-77.
[2] 徐舒. 面向對象軟件測試技術研究[J]. 今日科苑,2010,50(1):301-303.
[3] 宋春秀. 面向對象軟件測試技術的研究[J]. 信息安全與技術,2010,31(11):59-63.
[4] 王海燕,吳曉燕. 面向對象軟件測試在氣象數據采集系統中的應用[J]. 網絡安全技術與應用,2009,41(9):223-224.
[5] 周娟,錢稷,劉揚. 基于面向對象的軟件測試技術研究[J]. 微計算機信息,2009.15(7):46-49.