面向?qū)ο筌浖䴗y(cè)試技術(shù)研究
(作者未知) 2011/6/23
摘要:軟件測(cè)試在整個(gè)軟件項(xiàng)目開(kāi)發(fā)過(guò)程中有著舉足輕重的地位,測(cè)試技術(shù)的發(fā)展對(duì)于縮短測(cè)試周期、降低成本、提高質(zhì)量都有著十分重要的意義。本文介紹了軟件測(cè)試的關(guān)鍵技術(shù),并對(duì)面向?qū)ο筌浖䴗y(cè)試技術(shù)進(jìn)行了深入研究。
關(guān)鍵詞:軟件測(cè)試;關(guān)鍵技術(shù);軟件項(xiàng)目開(kāi)發(fā)
一、引言
軟件測(cè)試是伴隨著軟件的產(chǎn)生而產(chǎn)生的。軟件危機(jī)的頻繁出現(xiàn)促使了軟件測(cè)試的地位得到了大幅提升。軟件測(cè)試已經(jīng)不僅僅是局限于軟件開(kāi)發(fā)過(guò)程中的一個(gè)階段,它已經(jīng)開(kāi)始貫穿于整個(gè)軟件開(kāi)發(fā)過(guò)程,成為軟件產(chǎn)品質(zhì)量控制與質(zhì)量管理的重要手段之一。
軟件測(cè)試技術(shù)作為軟件工程學(xué)科的一個(gè)分支,是保證軟件質(zhì)量和可靠性的關(guān)鍵,因此它也是軟件開(kāi)發(fā)過(guò)程中的一個(gè)重要環(huán)節(jié)。它的核心思想是:對(duì)于輸入域的特定輸入,觀察軟件的執(zhí)行結(jié)果,驗(yàn)證該結(jié)果與期望結(jié)果是否一致,然后根據(jù)結(jié)果作相應(yīng)的糾錯(cuò)和調(diào)整。在測(cè)試過(guò)程中,測(cè)試用例的選擇決定測(cè)試的有效性,這也就直接影響到成本,是軟件測(cè)試的關(guān)鍵和難點(diǎn)。目前,軟件測(cè)試技術(shù)的發(fā)展還不是很成熟,測(cè)試人員在選擇測(cè)試用例時(shí)通常根據(jù)直覺(jué)和經(jīng)驗(yàn)進(jìn)行,給測(cè)試帶來(lái)很大的盲目性,最終導(dǎo)致的后果是使軟件后期維護(hù)的費(fèi)用在成本中居高不下?茖W(xué)生成測(cè)試用例對(duì)提高軟件質(zhì)量不僅重要而且必要。
隨著面向?qū)ο筌浖_(kāi)發(fā)技術(shù)的廣泛應(yīng)用和軟件測(cè)試自動(dòng)化的要求,特別是基于的軟件開(kāi)發(fā)技術(shù)的逐漸普及,基于模型的軟件測(cè)試逐漸得到了軟件開(kāi)發(fā)人員和軟件測(cè)試人員的認(rèn)可和接受。它是一種新興的測(cè)試用例生成技術(shù)。有優(yōu)于以前的測(cè)試技術(shù)的方面。其中模型以其定義良好、功能強(qiáng)大、普遍適用的優(yōu)點(diǎn),為基于模型的測(cè)試提供了非常好的契機(jī)。
二、面向?qū)ο筇卣鲗?duì)軟件測(cè)試的影響
面向?qū)ο蠹夹g(shù)是一個(gè)全新的開(kāi)發(fā)模式,具有以下特點(diǎn):
(1)它要綜合考慮軟件開(kāi)發(fā)過(guò)程所有階段。
(2)在軟件開(kāi)發(fā)的整個(gè)生存周期中,每個(gè)階段之間是連續(xù)的。
(3)開(kāi)發(fā)過(guò)程分為面向?qū)ο蠓治?00A)、面向?qū)ο笤O(shè)計(jì)(OOD)、面向?qū)ο缶幊?OOP)、面向?qū)ο鬁y(cè)試(OOT)四個(gè)連續(xù)的部分。
Coad和Yourdon給面}向?qū)ο蟮母拍钕铝艘粋(gè)定義:
面向?qū)ο?對(duì)象+類(lèi)+繼承+通信
如果一個(gè)軟件系統(tǒng)是使用這樣4個(gè)概念設(shè)計(jì)和實(shí)現(xiàn)的,則認(rèn)為這個(gè)軟件系統(tǒng)是面向?qū)ο蟮。一個(gè)而向?qū)ο蟮某绦虻拿恳粋(gè)組成部分都是對(duì)象,計(jì)算是通過(guò)對(duì)象和對(duì)象之間的通信來(lái)執(zhí)行的。
面向?qū)ο蠹夹g(shù)的本質(zhì)是定義了類(lèi)的抽象,將變量和與作用于它的操作封裝到一塊。然后用不同的類(lèi)和方法組合成一個(gè)對(duì)象系統(tǒng)。面向?qū)ο筌浖䦟鹘y(tǒng)軟件中的一個(gè)過(guò)程或一個(gè)方法內(nèi)的復(fù)雜性轉(zhuǎn)移到對(duì)象之間的交互中。面向?qū)ο笳Z(yǔ)言一些本質(zhì)特征形成了如下的一些新的故障、錯(cuò)誤風(fēng)險(xiǎn)。
1、基本功能模塊
在面向?qū)ο笙到y(tǒng)中,系統(tǒng)的基本構(gòu)造單元是封裝了數(shù)據(jù)和方法的類(lèi)和對(duì)象,而不再是一個(gè)個(gè)能完成特定功能的功能模型。每個(gè)對(duì)象有自己的生存期,有自己的狀態(tài)。消息是對(duì)象之間相互請(qǐng)示或協(xié)作的途徑,是外界使用對(duì)象方法及獲取對(duì)象狀態(tài)的唯一方式。對(duì)象的功能是在消息的觸發(fā)下,由對(duì)象所屬類(lèi)中定義的方法與相關(guān)對(duì)象的合作共同完成,并且對(duì)象在不同狀態(tài)下對(duì)消息的響應(yīng)可能完全同。
工作過(guò)程中,對(duì)象的狀態(tài)可能被改變,產(chǎn)生新的狀態(tài),即發(fā)生狀態(tài)的轉(zhuǎn)移。對(duì)象中的數(shù)據(jù)和方法是一個(gè)有機(jī)的整體,在軟件測(cè)試過(guò)程中,不能僅僅檢查輸入數(shù)據(jù)產(chǎn)生的輸出結(jié)果是否與預(yù)期結(jié)果相吻合,還要考慮對(duì)象的狀態(tài)變化。因此,除了要對(duì)對(duì)象的狀態(tài)與方法間的相互影響進(jìn)行測(cè)試,還要進(jìn)行狀態(tài)測(cè)試。
2、系統(tǒng)的功能實(shí)現(xiàn)
在面向?qū)ο笙到y(tǒng)中,系統(tǒng)的功能體現(xiàn)在對(duì)象間的協(xié)作上,而不再是簡(jiǎn)單的過(guò)程調(diào)用關(guān)系。面向?qū)ο蟪绦虻膱?zhí)行實(shí)際上是執(zhí)行一個(gè)由消息連接起來(lái)的方法序列,方法的實(shí)現(xiàn)與所屬對(duì)象本身的狀態(tài)有關(guān),各方法之間可能有相互作用。為實(shí)現(xiàn)某一特定的功能,可能要激活調(diào)用屬于不同對(duì)象類(lèi)的多個(gè)成員函數(shù),形成成員函數(shù)的啟用鏈。因此,基于功能分解的自頂向下或自底向上的集成測(cè)試策略不適用于面向?qū)ο筌浖到y(tǒng)的測(cè)試。
3、封裝對(duì)測(cè)試的影響
封裝是指在詞法單位之中或之間決定名字可見(jiàn)性的訪問(wèn)控制機(jī)制。它支持信息的隱蔽和模塊化,有助于防止全局變量訪問(wèn)的問(wèn)題。盡管封裝不會(huì)直接促成錯(cuò)誤的發(fā)生,它卻給測(cè)試帶來(lái)了障礙。封裝使對(duì)象的內(nèi)部狀態(tài)隱蔽,如果類(lèi)中未提供足夠的存取函數(shù)來(lái)表明對(duì)象的實(shí)現(xiàn)方式和內(nèi)部狀態(tài),則類(lèi)的信息隱蔽機(jī)制將給測(cè)試帶來(lái)困難。
4、繼承對(duì)測(cè)試的影響
繼承也是面向?qū)ο笳Z(yǔ)言中的一個(gè)本質(zhì)特征。繼承可用于一般與特殊關(guān)系,并目方便編碼。但繼承削弱了封裝性,產(chǎn)生了類(lèi)似于非面向?qū)ο笳Z(yǔ)言中全局?jǐn)?shù)據(jù)的錯(cuò)誤風(fēng)險(xiǎn)。由于繼承的作用,(未完,下一頁(yè))
|