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