软件集成、确认和系统测试方法
引言
軟件測(cè)試按測(cè)試用例設(shè)計(jì)(TEST CASE DESIGN)方法分為白盒測(cè)試(WHITE-BOX TESTING)和黑盒測(cè)試(BLACK-BOX TESTING)。 按測(cè)試過程或測(cè)試策略,軟件測(cè)試分為單元測(cè)試(UNIT TESTING),集成測(cè)試(INTEGRATION TESTING〕,確認(rèn)測(cè)試(VALIDATION TESTING〕和系統(tǒng)測(cè)試(SYSTEM TESTING〕。在以前的有關(guān)文檔中,我們已經(jīng)對(duì)白盒和黑盒測(cè)試中的測(cè)試用例設(shè)計(jì)方法進(jìn)行了詳細(xì)的講解。同時(shí)也對(duì)單元測(cè)試進(jìn)行了講解和培訓(xùn)。本文將從測(cè)試策略方面講解軟件測(cè)試中的集成測(cè)試,確認(rèn)測(cè)試和系統(tǒng)測(cè)試策略。
軟件測(cè)試的 策略方法
測(cè)試是一系列有計(jì)劃地系統(tǒng)性的活動(dòng)。為了實(shí)行測(cè)試活動(dòng),人們提出了許多測(cè)試策略方法。
一個(gè)軟件測(cè)試策略不僅要包括低層測(cè)試(LOW LEVEL TESTING〕而且要包含高層測(cè)試〔HIGH LEVEL TESTING〕。低層測(cè)試是為了驗(yàn)證原代碼的正確性。高層測(cè)試是為了證實(shí)主要系統(tǒng)功能滿足用戶需求性。
驗(yàn)證與確認(rèn)(VERFICATION AND VALIDATION〕
在廣義上,軟件測(cè)試是驗(yàn)證和確認(rèn)VERFICATION AND VALIDATION (V﹠V〕。驗(yàn)證指保證軟件正確地實(shí)現(xiàn)了一特定功能的一系列活動(dòng)。確認(rèn)是指保證所生產(chǎn)的軟件可追溯到用戶需求的一系列活動(dòng)。BOEHM對(duì)V﹠V的解釋是:
VEIFICATION:“Are we building the product right?”
VALIDATION: “ Are we building the right product?”
V&V的定義包含了許多活動(dòng),即軟件質(zhì)量保證SQA。圖2-1 示出實(shí)現(xiàn)軟件質(zhì)量的這些活動(dòng)。軟件工程方法提供了質(zhì)量建立的基礎(chǔ)。分析、設(shè)計(jì)和編碼方法通過提供統(tǒng)一的技術(shù)和可預(yù)測(cè)的結(jié)果來提高質(zhì)量。正規(guī)檢視和評(píng)審有助于保證軟件工程各個(gè)階段產(chǎn)品的質(zhì)量。度量和控制被應(yīng)用到軟件配置的每一個(gè)部件中。標(biāo)準(zhǔn)和過程有助于保證開發(fā)的一致性。一個(gè)正規(guī)的 SQA過程加強(qiáng)整體質(zhì)量。測(cè)試是保證質(zhì)量的最后一道措施。但是不能把測(cè)試看作一個(gè)安全網(wǎng)。質(zhì)量是貫穿于軟件過程的每一個(gè)階段。因此盡管測(cè)試在V&V中起著非常重要的作用,但是許多其它活動(dòng)也是必要的。為了提高軟件的全員質(zhì)量,應(yīng)該重視V&V中的每一個(gè)活動(dòng).
軟件集成、確認(rèn)和系統(tǒng)測(cè)試方法 www.51testing.com
博為峰軟件制作 BWF SOFTWARE
軟件質(zhì)量
軟件工程
方法
標(biāo)準(zhǔn)和步驟
正規(guī)檢視與評(píng)審
度量
測(cè)試
SQA
SCM
圖2-1 實(shí)現(xiàn)軟件質(zhì)量的活動(dòng)
軟件測(cè)試策略
軟件工程過程可以看成一螺旋狀。軟件測(cè)試策略也可以看成一螺旋狀。如圖2-2示測(cè)試策略圖。
從圖2-2可看出軟件測(cè)試策略: 起始于代碼階段的單元測(cè)試,然后是向外延伸到設(shè)計(jì)階段的集成測(cè)試,再擴(kuò)展到需求分析階段的確認(rèn)測(cè)試,最后是系統(tǒng)工程階段的系統(tǒng)測(cè)試。從系統(tǒng)過程的角度看,測(cè)試策略有四個(gè)步驟:?jiǎn)卧獪y(cè)試,集成測(cè)
試,確認(rèn)測(cè)試和系統(tǒng)測(cè)試。圖2-3示軟件測(cè)試步驟。
軟件集成、確認(rèn)和系統(tǒng)測(cè)試方法 www.51testing.com
博為峰軟件制作 BWF SOFTWARE
單元測(cè)試
測(cè)試方向
代碼
集成測(cè)試
高階測(cè)試
High-order Test
Integration Test 設(shè)計(jì)
需求
圖2-3 軟件測(cè)試步驟
從圖2-3可看出,初始測(cè)試集中在每個(gè)模塊上,由于每個(gè)模塊完成一個(gè)功能單元,因此該階段的測(cè)試稱為單元測(cè)試。單元測(cè)試主要應(yīng)用白盒測(cè)試方法。接下來是模塊組裝和集成以便組成完整的軟件包。集成測(cè)試集中在證實(shí)和程序構(gòu)成問題上,集成測(cè)試主要采用黑盒測(cè)試方法,附之以白盒測(cè)試方法。軟件集成后,需要完成一系列高階測(cè)試(確認(rèn)和系統(tǒng)測(cè)試〕。確認(rèn)標(biāo)準(zhǔn)必須被測(cè)試。確認(rèn)測(cè)試提供軟件滿足所有功能、性能需求的最后保證。確認(rèn)測(cè)試僅僅應(yīng)用黑盒測(cè)試用例設(shè)
計(jì)方法。
測(cè)試完成的標(biāo)準(zhǔn)
軟件測(cè)試中,人們經(jīng)常會(huì)提出這樣的問題:“什么時(shí)候測(cè)試完成?--怎樣知道測(cè)試足夠充分?”。很遺憾,對(duì)該問題還沒有一個(gè)確定的答案,但是可提供一些統(tǒng)計(jì)和經(jīng)驗(yàn)上的答案或指導(dǎo)。為了確定何時(shí)算測(cè)試進(jìn)行的足夠充分,軟件工程師需要更嚴(yán)格的標(biāo)準(zhǔn)。MUSA和ACKERMAN建議基于統(tǒng)計(jì)準(zhǔn)則來回答這些問題。應(yīng)用統(tǒng)計(jì)模型和軟件可靠性理論,軟件失效/故障(測(cè)試中未發(fā)現(xiàn)的〕的模型可以以執(zhí)行時(shí)間函數(shù)形式建立。例如,一個(gè)軟件故障模型,稱為對(duì)數(shù)泊松執(zhí)行時(shí)間模型。有關(guān)軟件可靠性和軟件測(cè)試強(qiáng)度方面的知識(shí)和模型建立將在以后相關(guān)文檔
中介紹。
單元測(cè)試(UNIT TESTING)
單元測(cè)試是基于程序模塊進(jìn)行正確性驗(yàn)證的測(cè)試。這方面的內(nèi)容,我們已經(jīng)準(zhǔn)備出了充分的資料,并進(jìn)行了多期培訓(xùn)。因此這里將不在講述。
集成測(cè)試(INTEGRATION TESTING〕
集成測(cè)試,也叫組裝測(cè)試或聯(lián)合測(cè)試。在單元測(cè)試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求)如根據(jù)結(jié)構(gòu)圖〕組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測(cè)試。實(shí)踐表明,一些模塊雖然能夠單獨(dú)地工作,但并不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實(shí)現(xiàn)。也就是應(yīng)該考慮以下問題:
(1〕在把各個(gè)模塊連接起來的時(shí)候,穿越模塊接口的數(shù)據(jù)是否會(huì)丟失;
軟件集成、確認(rèn)和系統(tǒng)測(cè)試方法 www.51testing.com
博為峰軟件制作 BWF SOFTWARE
(2〕各個(gè)子功能組合起來,能否達(dá)到預(yù)期要求的父功能;
(3〕一個(gè)模塊的功能是否會(huì)對(duì)另一個(gè)模塊的功能產(chǎn)生不利的影響;
(4)全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問題;
(5〕單個(gè)模塊的誤差積累起來,是否會(huì)放大,從而達(dá)到不可接受的程度。
因此,單元測(cè)試后,有必要進(jìn)行集成測(cè)試,發(fā)現(xiàn)并排除在模塊連接中可能發(fā)生的上述問題,最終構(gòu)成要求的軟件子系統(tǒng)或系統(tǒng)。對(duì)子系統(tǒng),集成測(cè)試也叫部件測(cè)試。任何合理地組織集成測(cè)試,即選擇什么方式把模塊組裝起來形成一個(gè)可運(yùn)行的系統(tǒng),直接影響到模塊測(cè)試用例的形式、所用測(cè)試工具的類型、模塊編號(hào)和測(cè)試的次序、生成測(cè)試用例和調(diào)試的費(fèi)用。通常,有兩種不同的組裝方式:一次性組裝方式和增值式組裝方式。
一次性組裝方式(BIG BANG〕
一次性組裝方式是一種非增值組裝方式(NON-INCREMENTAL INTEGRATION〕,也叫整體拼裝。按這種組裝方式,首先對(duì)每個(gè)模塊分別進(jìn)行模塊測(cè)試,然后再把所有模塊組裝在一起進(jìn)行測(cè)試,最終得到要求的軟件系統(tǒng)。例如,有一塊系統(tǒng)結(jié)構(gòu),如圖4-1(a)所示。其單元測(cè)試和組裝順序如圖4-1(b)所示。
A
B C D
E F
d1 d2 d3 d4 d5
D B C
s1 s2
E F
A A
B C D
F E
s3 s4 s5
(a)
(b)
圖4-1 一次性組裝方式
在圖中,模塊d1,d2,d3,d4,d5是對(duì)各個(gè)模塊做單元測(cè)試時(shí)建立的驅(qū)動(dòng)模塊,s1,s2,s3,s4,s5是為單元測(cè)試而建立的樁模塊。這種一次性組裝方式試圖在輔助模塊的協(xié)助下,在模塊單元測(cè)試的基礎(chǔ)上,將所測(cè)模塊連接起來進(jìn)行測(cè)試。但是由于程序中不可避免地存在模塊間接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)等方面的問題,所以一次試運(yùn)行成功的可能性并不很大。其結(jié)果發(fā)現(xiàn)有錯(cuò)誤,但茫然找不到原因。查錯(cuò)和改錯(cuò)都會(huì)遇到困難。
增殖式組裝方式(Incremental Integration)
軟件集成、確認(rèn)和系統(tǒng)測(cè)試方法 www.51testing.com
博為峰軟件制作 BWF SOFTWARE
增值式組裝方式又稱漸增式組裝。首先是對(duì)一個(gè)個(gè)模塊進(jìn)行模塊單元測(cè)試,然后將這些模塊組裝成較大系統(tǒng),在組裝的過程中邊連接邊測(cè)試,以發(fā)現(xiàn)連接過程中產(chǎn)生的問題。最后增殖逐步組裝成為要求的軟件系統(tǒng)。
自頂向下的增殖方式(Top-Down Integration)
這種組裝方式是將模塊按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進(jìn)行組裝。其步驟如下:
(1)以主模塊為所測(cè)模塊兼驅(qū)動(dòng)模塊,所有直屬于主模塊的下屬模塊全部用樁模塊對(duì)主模塊進(jìn)行測(cè)試。
(2)采用深度優(yōu)先(depth-first)(如圖4-2)或?qū)挾葍?yōu)先(breadth-first)的策略,用實(shí)際模塊替換相應(yīng)樁模塊,再用樁代替它們的直接下屬模塊,與已測(cè)試的模塊或子系統(tǒng)組裝成新的子系統(tǒng)。
(3)進(jìn)行回歸測(cè)試(即重新執(zhí)行以前做過的全部測(cè)試或部分測(cè)試),排除組裝過程中引起的錯(cuò)誤的可能。
(4)判斷是否所有的模塊都已組裝到系統(tǒng)中?是則結(jié)束測(cè)試,否則轉(zhuǎn)到(2)去執(zhí)行。
A A A A
s1 s2 s3
s4
s2 s2 s3 s3 B B B
E E
C s3
測(cè)試A 加入B 加入E 加入C
A
B C D
E s5
A
B C D
E F
加入D 加入F
按深度方向組裝
圖4-2 自頂向下增殖方式(按深度方向組裝)
自頂向下的增殖方式在測(cè)試過程中較早地驗(yàn)證了主要的控制和判斷點(diǎn)。在一個(gè)功能劃分合理的程序模塊結(jié)構(gòu)中,判斷常常出現(xiàn)在較高的層次里,因而較早就能遇到。如果這主要控制有問題,盡早發(fā)現(xiàn)它能夠減少以后的返工,所以這是十分必要的。如果選用按深度方向組裝的方式,可以首先實(shí)現(xiàn)和驗(yàn)證一個(gè)完整的軟件功能,可先對(duì)邏輯輸入的分支進(jìn)行組裝和測(cè)試,檢查和克服潛藏的錯(cuò)誤和缺陷,驗(yàn)證其功能的正確性,就為其后對(duì)主要加工分支的組裝和測(cè)試提供了保證。此外,功能可行性較早得到證實(shí),還能夠給開發(fā)者和用戶帶來成功的信心。自頂各下的組裝和測(cè)試存在一個(gè)邏輯次序問題。在為了充分測(cè)試較高層的處理而需要較低層
處理的信息時(shí),就會(huì)出現(xiàn)這類問題。在自頂向下組裝階段,還需要用樁模塊代替較低層的模塊,
軟件集成、確認(rèn)和系統(tǒng)測(cè)試方法 www.51testing.com
博為峰軟件制作 BWF SOFTWARE
所以關(guān)于樁模塊的編寫,根據(jù)情況可能不同有如下圖4-3所示的幾種選擇。
樁模塊stub 樁模塊stub 樁模塊stub 樁模塊stub
A B C D
顯示跟蹤信息顯示傳遞的信息從一個(gè)表(或外部文件)返回一個(gè)值進(jìn)行一項(xiàng)表查詢以根據(jù)輸入?yún)?shù)返回輸出參數(shù)表示傳遞的數(shù)據(jù)消息
圖4-3 樁模塊的幾種選擇
為了能夠準(zhǔn)確地實(shí)施測(cè)試,應(yīng)當(dāng)讓樁模塊正確而有效地模擬子模塊的功能和合理的接口,不能是只包含返回語句或只顯示該模塊已調(diào)用信息,不執(zhí)行任何功能的啞模塊。如果不能使樁模塊正確地向上傳遞有用的信息,可以采用以下解決辦法。
(1)將很多測(cè)試推遲到樁模塊用實(shí)際模塊替代了之后進(jìn)行;
(2)進(jìn)一步開發(fā)能模擬實(shí)際模塊功能的樁模塊;
(3)自底向上組裝和測(cè)試軟件;
自底向上的增殖方式
這種組裝的方式是從程序模塊結(jié)構(gòu)的最底層的模塊開始組裝和測(cè)試。因?yàn)槟K是自底向上進(jìn)行組裝,對(duì)于一個(gè)給定層次的模塊,它的子模塊(包括子模塊的所有下屬模塊)已經(jīng)組裝并測(cè)試完成,所以不再需要樁模塊。在模塊的測(cè)試過程中需要從子模塊得到的信息可以直接運(yùn)行子模塊得到。自底向上增殖的步驟如下:
(1)由驅(qū)動(dòng)模塊控制最底層模塊的并行測(cè)試;也可以把最底層模塊組合成實(shí)現(xiàn)某一特定軟件功能的簇,由驅(qū)動(dòng)模塊控制它進(jìn)行測(cè)試。
(2)用實(shí)際模塊代替驅(qū)動(dòng)模塊,與它已測(cè)試的直屬子模塊組裝成為子系統(tǒng)。
(3)為子系統(tǒng)配備驅(qū)動(dòng)模塊,進(jìn)行新的測(cè)試。
(4)判斷是否已組裝到達(dá)主模塊。是則結(jié)束測(cè)試,否則執(zhí)行(2)。
軟件集成、確認(rèn)和系統(tǒng)測(cè)試方法 www.51testing.com
博為峰軟件制作 BWF SOFTWARE
以圖4-1(a)所示的系統(tǒng)結(jié)構(gòu)為例,用下圖4-4來說明自底向上組裝和測(cè)試的順序。
d1 d2 d3 d4 d5
E E
C C F D D B B E
F F
A
圖4-4 自底向上增值組裝方式
自底向上進(jìn)行組裝和測(cè)試時(shí),需要為所測(cè)模塊或子系統(tǒng)編制相應(yīng)的驅(qū)動(dòng)模塊。常見的幾種類
型的驅(qū)動(dòng)模塊如圖4-5所示:
驅(qū)動(dòng)程序driver 驅(qū)動(dòng)程序driver 驅(qū)動(dòng)程序driver 驅(qū)動(dòng)程序driver
A B C D
調(diào)用從屬模塊
從表(或外部文件)
中傳送參數(shù)
顯示參數(shù)兼有驅(qū)動(dòng)程序B、
C的功能
圖4-5 驅(qū)動(dòng)模塊的幾種選擇
表示傳送的參數(shù)信息
隨著組裝層次的向上移動(dòng),驅(qū)動(dòng)模塊將大為減少。如果對(duì)程序模塊結(jié)構(gòu)的最上面兩層模塊采
用自頂向下進(jìn)行組裝和測(cè)試,可以明顯地減少驅(qū)動(dòng)模塊的數(shù)目,而且可以大大減少把幾個(gè)系統(tǒng)組
裝起來所需要做的工作。
混合增殖式測(cè)試
自頂向下增殖的方式和自底向上增殖的方式各有優(yōu)缺點(diǎn)。一般來講,一種方式的優(yōu)點(diǎn)是另一
種方式的缺點(diǎn)。
自頂向下增殖方式的缺點(diǎn)是需要建立樁模塊。要使樁模塊能夠模擬實(shí)際子模塊的功能十分困
難,因?yàn)闃赌K在接收了所測(cè)模塊發(fā)送的信息后需要按照它所代替的實(shí)際子模塊功能返回應(yīng)該回
送的信息,這必將增加建立樁模塊的復(fù)雜度,而且導(dǎo)致增加一些附加的測(cè)試。同時(shí)涉及復(fù)雜算法
和真正輸入/輸出的模塊一般在底層,它們是最容易出問題的模塊,到組裝和測(cè)試的后期才遇到這
些模塊,一旦發(fā)現(xiàn)問題,導(dǎo)致過多的回歸測(cè)試,而自頂向下增殖方式的優(yōu)點(diǎn)能夠較早地發(fā)現(xiàn)在主
要控制方面的問題。
自底向上增殖方式的缺點(diǎn)是“程序一直未能作為一個(gè)實(shí)體存在,直到最后一個(gè)模塊加上去后
才形成一個(gè)實(shí)體”。就是說,在自底向上組裝和測(cè)試的過程中,對(duì)主要的控制直到最后才接觸
到。但這種方式的優(yōu)點(diǎn)是不需要樁模塊,而建立驅(qū)動(dòng)模塊一般比建立樁模塊容易,同時(shí)由于涉及
軟件集成、確認(rèn)和系統(tǒng)測(cè)試方法 www.51testing.com
博為峰軟件制作 BWF SOFTWARE
到復(fù)雜算法和真正輸入/輸出的模塊最先得到組裝和測(cè)試,可以把最容易出問題的部分在早期解
決。此外自底向上增殖的方式可以實(shí)施多個(gè)模塊的并行測(cè)試,提高測(cè)試效率。因此,通常是把以
上兩種方式結(jié)合起來進(jìn)行組裝和測(cè)試。下面簡(jiǎn)單介紹三種常見的綜合的增殖方式。
(1)衍變的自頂向下的增殖測(cè)試:它的基本思想是強(qiáng)化對(duì)輸入/輸出模塊的和引入新算法模塊
的測(cè)試,并自底向上組裝成為功能相當(dāng)完整且相對(duì)獨(dú)立的子系統(tǒng),然后由主模塊開始自頂向下進(jìn)
行增殖測(cè)試。
(2)自底向上-自頂向下的增殖測(cè)試:它首先對(duì)含讀操作的子系統(tǒng)自底向上直至根結(jié)點(diǎn)模塊進(jìn)
行組裝和測(cè)試,然后對(duì)含寫操作的子系統(tǒng)做自頂向下的組裝與測(cè)試。
(3)回歸測(cè)試:這種方式采取自頂向下的方式測(cè)試所修改的模塊及其子模塊,然后將這一部
分視為子系統(tǒng),再自底向上測(cè)試,以檢查該子系統(tǒng)與其上級(jí)模塊的接口是否適配。
在組裝測(cè)試時(shí),測(cè)試者應(yīng)當(dāng)確定關(guān)鍵模塊,對(duì)這些關(guān)鍵模塊及早進(jìn)行測(cè)試。關(guān)鍵模塊至少應(yīng)
具有以下幾種特征之一:(1)滿足某些軟件需求;(2)在程序的模塊結(jié)構(gòu)中位于較高的層次(高層控制
模塊);(3)較復(fù)雜、較易發(fā)生錯(cuò)誤;(4)有明確定義的性能要求。
在做回歸測(cè)試時(shí),也應(yīng)該集中測(cè)試關(guān)鍵模塊的功能。
集成測(cè)試的組織和實(shí)施
集成測(cè)試是一種正規(guī)測(cè)試過程,必須精心計(jì)劃,并與單元測(cè)試的完成時(shí)間協(xié)調(diào)起來。在制定
測(cè)試計(jì)劃時(shí),應(yīng)考慮如下因素:
1)是采用何種系統(tǒng)組裝方法來進(jìn)行組裝測(cè)試;
2)組裝測(cè)試過程中連接各個(gè)模塊的順序;
3)模塊代碼編制和測(cè)試進(jìn)度是否與組裝測(cè)試的順序一致
4)測(cè)試過程中是否需要專門的硬件設(shè)備;
解決了上述問題之后,就可以列出各個(gè)模塊的編制、測(cè)試計(jì)劃表,標(biāo)明每個(gè)模塊單元測(cè)試完成的日期、首次集成測(cè)試的日期、集成測(cè)試全部完成的日期、以及需要的測(cè)試用例和所期望的測(cè)試結(jié)果。在缺少軟件測(cè)試所需要的硬件設(shè)備時(shí),應(yīng)檢查該硬件的交付日期是否與集成測(cè)試計(jì)劃一致。例如,若測(cè)試需要數(shù)字化儀和繪圖儀,則相應(yīng)測(cè)試應(yīng)安排在這些設(shè)備能夠投入使用之時(shí),并需要為硬件的安裝和交付使用保留一段時(shí)間,以留下時(shí)間余量。此外,在測(cè)試計(jì)劃中需要考慮測(cè)試所
需軟件(驅(qū)動(dòng)模塊、樁模塊、測(cè)試用例生成程序等)的準(zhǔn)備情況。
集成測(cè)試完成的標(biāo)志
怎樣判定集成測(cè)試過程完成了, 可按以下幾個(gè)方面檢查:
1)成功地執(zhí)行了測(cè)試計(jì)劃中規(guī)定的所有集成測(cè)試;
軟件集成、確認(rèn)和系統(tǒng)測(cè)試方法 www.51testing.com
博為峰軟件制作 BWF SOFTWARE
2)修正了所發(fā)現(xiàn)的錯(cuò)誤;
3)測(cè)試結(jié)果通過了專門小組的評(píng)審。
集成測(cè)試應(yīng)由專門的測(cè)試小組來進(jìn)行,測(cè)試小組由有經(jīng)驗(yàn)的系統(tǒng)設(shè)計(jì)人員和程序員組成。整個(gè)測(cè)試活動(dòng)要在評(píng)審人員出席的情況下進(jìn)行。在完成預(yù)定的組裝測(cè)試工作之后,測(cè)試小組應(yīng)負(fù)責(zé)對(duì)測(cè)試結(jié)果進(jìn)行整理、分析,形成測(cè)試報(bào)告。測(cè)試報(bào)告中要記錄實(shí)際的測(cè)試結(jié)果、在測(cè)試中發(fā)現(xiàn)的問題、解決這些問題的方法以及解決之后再次測(cè)試的結(jié)果。此外還應(yīng)提出目前不能解決、還需要管理人員和開發(fā)人員注意的一些問題,提供測(cè)試評(píng)審和最終決策,以提出處理意見。集成測(cè)試需要提交的文檔有:集成測(cè)試計(jì)劃、集成測(cè)試規(guī)格說明、集成測(cè)試分析報(bào)告。
確認(rèn)測(cè)試(Validation Testing)
確認(rèn)測(cè)試又稱為效性測(cè)試。它的任務(wù)是驗(yàn)證軟件的功能和性能及其特性是否與用戶的要求一致。對(duì)軟件的功能和性能要求在軟件需求規(guī)格說明中已經(jīng)明確規(guī)定。在軟件需求規(guī)格說明中描述了全部用戶可見的軟件屬性,其中有一節(jié)叫做有效性準(zhǔn)則,它包含的信息就是軟件確認(rèn)測(cè)試的基礎(chǔ)。集成測(cè)試完成以后,分散開發(fā)的模塊被聯(lián)接起來,構(gòu)成完整的程序。其中各模塊之間接口存在的種種問題都已消除。于是測(cè)試工作進(jìn)入最后階段--確認(rèn)測(cè)試(Validation testing)。什么是確認(rèn)測(cè)
試,說法眾多,其中最簡(jiǎn)明、最嚴(yán)格的解釋是檢驗(yàn)所開發(fā)的軟件是否能按顧客提出的要求運(yùn)行。若能達(dá)到這一要求,則認(rèn)為開發(fā)的軟件是合格的。因而有的軟件開發(fā)部門把確認(rèn)測(cè)試稱為合格性
測(cè)試(qualification testing)。這里所說的顧客要求通常指的是在軟件規(guī)格說明書中確定的軟件功能和技術(shù)指標(biāo),或是專門為測(cè)試所規(guī)定的確認(rèn)準(zhǔn)則。在確認(rèn)測(cè)試階段需要做的工作如下圖5-1所示。首先要進(jìn)行有效性測(cè)試以及軟件配置復(fù)審,然后進(jìn)行驗(yàn)收測(cè)試和安裝測(cè)試,在通過了專家鑒定之后,才能成為可交付的軟件。選擇測(cè)試人員
構(gòu)造測(cè)試用例
實(shí)際運(yùn)行測(cè)試
軟件計(jì)劃
用戶文檔
開發(fā)文檔
源程序文本
支持環(huán)境
測(cè)試報(bào)告
軟件配置
有效性
測(cè)試
軟件
配置
審查
管理
機(jī)構(gòu)
裁決
專家鑒定會(huì)
交用戶
運(yùn)行維護(hù)
圖5-1 確認(rèn)測(cè)試的步驟
軟件集成、確認(rèn)和系統(tǒng)測(cè)試方法 www.51testing.com
博為峰軟件制作 BWF SOFTWARE
確認(rèn)測(cè)試的準(zhǔn)則
怎樣來判斷被開發(fā)的軟件是成功的?為了確認(rèn)它的功能、性能以及限制條件是否達(dá)到了要求,應(yīng)進(jìn)行怎樣的測(cè)試?在需求規(guī)格說明書中可能作了原則性規(guī)定,但在測(cè)試階段需要更詳細(xì)、更具體地在測(cè)試規(guī)格說明書(Test specification)中作進(jìn)一步說明。例如,制定測(cè)試計(jì)劃時(shí),要說明確認(rèn)測(cè)試應(yīng)測(cè)試哪些方面,并給出必要的測(cè)試用例。除了考慮功能、性能以外,還需檢驗(yàn)其它方面的要求。例如,可移植性、兼容性、可維護(hù)性、人機(jī)接口以及開發(fā)的文件資料等是否符合要求。經(jīng)過確認(rèn)測(cè)試,應(yīng)該為已開發(fā)的軟件作出結(jié)論性評(píng)價(jià)。這也無非是兩種情況之中的一個(gè):
(1)經(jīng)過檢驗(yàn)的軟件功能、性能及其它要求均已滿足需求規(guī)格說明書的規(guī)定,因而可被接受。認(rèn)為是合格的軟件。(2)經(jīng)過檢驗(yàn)發(fā)現(xiàn)與需求說明書有相當(dāng)?shù)钠x,得到一個(gè)各項(xiàng)缺陷清單。對(duì)于第二種情況,往往很難在交付期以前把發(fā)現(xiàn)的問題糾正過來。這就需要開發(fā)部門和顧客進(jìn)行協(xié)商,找出解決的辦法。
進(jìn)行有效性測(cè)試(黑盒測(cè)試)
有效性測(cè)試是在模擬的環(huán)境(可能是就是開發(fā)的環(huán)境)下,運(yùn)用黑盒測(cè)試的方法,驗(yàn)證所測(cè)試件是否滿足需求規(guī)格說明書列出的需求。為此,需要首先制定測(cè)試計(jì)劃,規(guī)定要做測(cè)試的種類,還需要制定一組測(cè)試步驟,描述具體的測(cè)試用例。通過實(shí)施預(yù)定的測(cè)試計(jì)劃和測(cè)試步驟,確定軟件的特性是否與需求相符,確保所有的軟件功能需求都能得到滿足,所有的軟件性能需求能達(dá)到,所有的文檔都是正確且便于使用。同時(shí),對(duì)其他軟件需求,例如可移植性、兼容性,自動(dòng)恢復(fù)、可維護(hù)性等,也都要進(jìn)行測(cè)試,確認(rèn)是否滿足。在全部軟件測(cè)試的測(cè)試用例運(yùn)行完后,所有的測(cè)試結(jié)果可以分為兩類:
1)測(cè)試結(jié)果與預(yù)期的結(jié)果相符。這說明軟件的這部分功能或性能特征與需求規(guī)格說明一致,因此要為它提交一份問題報(bào)告。
2)測(cè)試結(jié)果與預(yù)期的結(jié)果不符。這說明軟件的這部分功能或性能特征與需求規(guī)格說明不一致,因此要為它提交一份問題報(bào)告。
軟件配置審查
軟件配置審查是確認(rèn)測(cè)試過程的重要環(huán)節(jié). 其的目的是保證軟件配置的所有成分都齊全,各方面的質(zhì)量都符合要求,維護(hù)階段所必需的細(xì)節(jié),而且已經(jīng)編排好分類的目錄。除了按合同規(guī)定的內(nèi)容和要求,由工人審查軟件配置之外,在確認(rèn)測(cè)試的過程,應(yīng)當(dāng)嚴(yán)格遵守用戶手冊(cè)和操作手冊(cè)中規(guī)定的使用步驟,以便檢查這些文檔資料的完整性和正確性。必須仔細(xì)記錄發(fā)現(xiàn)的遺漏和錯(cuò)誤,并且適當(dāng)?shù)匮a(bǔ)充和改正。
α測(cè)試和β測(cè)試
在軟件交付使用之后,用戶將如何實(shí)際使用程序,對(duì)于開發(fā)者來說是無法預(yù)測(cè)的。因?yàn)橛脩粼谑褂眠^程中常常會(huì)發(fā)生對(duì)使用方法的誤解、異常的數(shù)據(jù)組合,以及產(chǎn)生對(duì)某些用戶來說似乎是清晰的但對(duì)另一些用戶來說卻難以理解的輸出等等。
軟件集成、確認(rèn)和系統(tǒng)測(cè)試方法 www.51testing.com
博為峰軟件制作 BWF SOFTWARE
當(dāng)軟件是為特定用戶開發(fā)的時(shí)候,需要進(jìn)行一系列的驗(yàn)收,讓用戶驗(yàn)證所有的需求是否已經(jīng)滿足。這些測(cè)試是以用戶為主,而不是以系統(tǒng)開發(fā)者為主進(jìn)行的。驗(yàn)收測(cè)試可以是一次簡(jiǎn)單的非正式的“測(cè)試運(yùn)行”。也可以是一組復(fù)雜的有組織有計(jì)劃的測(cè)試活動(dòng)。事實(shí)上,驗(yàn)收測(cè)試可能持續(xù)幾個(gè)星期到幾個(gè)月。但是如果軟件是為多個(gè)用戶開發(fā)的產(chǎn)品的時(shí)候,讓每個(gè)用戶逐個(gè)執(zhí)行正式的驗(yàn)收測(cè)試是不切
實(shí)際的。很多軟件產(chǎn)品生產(chǎn)者采用一種稱之為a測(cè)試和b測(cè)試的測(cè)試方法,以發(fā)現(xiàn)可能只有最終用戶才能發(fā)現(xiàn)的錯(cuò)誤。
α測(cè)試是由一個(gè)用戶在開發(fā)環(huán)境下進(jìn)行的測(cè)試,也可以是開發(fā)機(jī)構(gòu)枘部的用戶在模擬實(shí)際操作環(huán)境下進(jìn)行的測(cè)試。軟件在一個(gè)自然設(shè)置狀態(tài)下使用。開發(fā)者坐在用戶旁邊,隨時(shí)記下錯(cuò)誤情況和使用中的問題。這是在受控制的環(huán)境下進(jìn)行的測(cè)試,α測(cè)試的目的是班次價(jià)軟件產(chǎn)品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。尤其注重產(chǎn)品的界面和特色。a測(cè)試人員是除開產(chǎn)品開發(fā)人員之外首先見到產(chǎn)品的人,他們提出的功能和修改意見是特別有價(jià)值的。
a測(cè)試可以從軟件產(chǎn)品編碼結(jié)束之時(shí)開始,或在模塊(子系統(tǒng))測(cè)試完成之后開始,也可以在確認(rèn)測(cè)試過程中產(chǎn)品達(dá)到一定的穩(wěn)定和可靠程序之后再開始。有關(guān)的手冊(cè)(草稿)等應(yīng)事先準(zhǔn)備好。
β測(cè)試是由軟件的多個(gè)用戶在一個(gè)或多個(gè)用戶的實(shí)際使用環(huán)境下進(jìn)行的測(cè)試。這些用戶是與公司簽定了支持產(chǎn)品預(yù)發(fā)行合同的外部客戶,他們要求使用該產(chǎn)品,并愿意返回有關(guān)錯(cuò)位錯(cuò)誤信息給開發(fā)者。與α測(cè)試不同的是,開發(fā)者通常不在測(cè)試現(xiàn)場(chǎng)。因而,β測(cè)試是在開發(fā)者無法控制的環(huán)境下進(jìn)行的軟件現(xiàn)場(chǎng)應(yīng)用。在β測(cè)試中,由用戶記下遇到的所有問題,包括真實(shí)的以及主觀認(rèn)定的,定期向開發(fā)者報(bào)告,開發(fā)者在綜合用戶的報(bào)告之后,做出修改,最將軟件產(chǎn)品交付給全
體用戶使用。 β測(cè)試主要衡量產(chǎn)品的FLURPS。著重于產(chǎn)品的支持性,包括文檔、客戶培訓(xùn)和支持產(chǎn)品生產(chǎn)能力。只有當(dāng)α測(cè)試達(dá)到一定的可靠程度時(shí),才能開始β測(cè)試。由于它處在整個(gè)測(cè)試的最后階段,不能指望這時(shí)發(fā)現(xiàn)主要問題。同時(shí),產(chǎn)品的所有手冊(cè)文本也應(yīng)該在此階段完全定稿。
由于β測(cè)試的主要目標(biāo)是測(cè)試可支持性,所以β測(cè)試應(yīng)盡可能由主持產(chǎn)品發(fā)行的人員來管理。
驗(yàn)收測(cè)試(Acceptance Testing)
在通過了系統(tǒng)的有效性測(cè)試及軟件配置審查之后,就應(yīng)開始系統(tǒng)的驗(yàn)收測(cè)試。驗(yàn)收測(cè)試是以用戶為主的測(cè)試。軟件開發(fā)人員和QA(質(zhì)量保證)人員也應(yīng)參加。由用戶參加設(shè)計(jì)測(cè)試用例,使用用戶界面輸入測(cè)試數(shù)據(jù),并分析測(cè)試的輸出結(jié)果,一般使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測(cè)試。在測(cè)試過程中,除了考慮軟件的功能和性能外,還應(yīng)對(duì)軟件的可移植性、兼容性、可維護(hù)性、錯(cuò)誤的恢復(fù)功能等進(jìn)行確認(rèn)。
驗(yàn)收測(cè)試實(shí)驗(yàn)上是對(duì)整個(gè)測(cè)試計(jì)劃進(jìn)行一種“走查(Walkthrough)”。
確認(rèn)測(cè)試的結(jié)構(gòu)
軟件集成、確認(rèn)和系統(tǒng)測(cè)試方法 www.51testing.com
博為峰軟件制作 BWF SOFTWARE
確認(rèn)測(cè)試的結(jié)果有兩種情況:
1)功能和性能與用戶的要求一致,軟件可以接受;
2)功能和性能與用戶的要求有差距。
出現(xiàn)后一種情況,通常與軟件需求分析階段的差錯(cuò)有關(guān)。這時(shí)需要開列一張軟件各項(xiàng)缺陷表或軟件問題報(bào)告,通過與用戶的協(xié)商,解決所發(fā)現(xiàn)的缺陷和錯(cuò)誤。確認(rèn)測(cè)試應(yīng)交付的文檔有:確認(rèn)測(cè)試分析報(bào)告、最終的用戶手冊(cè)和操作手冊(cè)、項(xiàng)目開發(fā)總結(jié)報(bào)告。
系統(tǒng)測(cè)試(System Testing)
系統(tǒng)測(cè)試是將通過確認(rèn)測(cè)試的軟件,作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行(使用)環(huán)境下,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的組裝測(cè)試和確認(rèn)測(cè)試。系統(tǒng)測(cè)試的目的在于通過與系統(tǒng)的需求定義作比較,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與之矛盾的地方。系統(tǒng)測(cè)試的測(cè)試用例應(yīng)根據(jù)需求分析說明書來設(shè)計(jì),并在實(shí)際使用環(huán)境下來運(yùn)行。由于軟件只是計(jì)算機(jī)系統(tǒng)中的一個(gè)組成部分,軟件開發(fā)完成以后,最終還要與系統(tǒng)中其它部分配套運(yùn)行。系統(tǒng)在投入運(yùn)行以前各部分需完成組裝和確認(rèn)測(cè)試,以保證各組成部分不僅能單獨(dú)地受到檢驗(yàn),而且在系統(tǒng)各部分協(xié)調(diào)工作的環(huán)境下也能正常工作。這里所說的系統(tǒng)組成部分除去軟件外,還可能包括計(jì)算機(jī)硬件及其相關(guān)的外圍設(shè)備、數(shù)據(jù)及其收集和傳輸機(jī)構(gòu)、掌握計(jì)算機(jī)系
統(tǒng)運(yùn)行的人員及其操作等,甚至還可能包括受計(jì)算控制的執(zhí)行機(jī)構(gòu)。顯然,系統(tǒng)的確認(rèn)測(cè)試已經(jīng)完全超出了軟件工作的范圍。然而,軟件在系統(tǒng)中畢竟占有相當(dāng)重要的位置,軟件的質(zhì)量如何,軟件的測(cè)試工作進(jìn)行得是否扎實(shí)勢(shì)必與能否順利、成功地完成系統(tǒng)測(cè)試關(guān)系極大。另一方面,系統(tǒng)測(cè)試實(shí)際上是針對(duì)系統(tǒng)中各個(gè)組成部分進(jìn)行的綜合性檢驗(yàn)。盡管每一個(gè)檢驗(yàn)有著特定的目標(biāo),然而所有的檢測(cè)工作都要驗(yàn)證系統(tǒng)中每個(gè)部分均已得到正確的集成,并能完成指定的功能。以下
分別簡(jiǎn)要說明幾種系統(tǒng)測(cè)試:
恢復(fù)測(cè)試
恢復(fù)測(cè)試是要采取各種人工干預(yù)方式使軟件出錯(cuò),而不能正常工作,進(jìn)而檢驗(yàn)系統(tǒng)的恢復(fù)能力。如果系統(tǒng)本身能夠自動(dòng)地進(jìn)行恢復(fù),則應(yīng)檢驗(yàn):重新初始化,檢驗(yàn)點(diǎn)設(shè)置機(jī)構(gòu)、數(shù)據(jù)恢復(fù)以及重新啟動(dòng)是否正確。如果這一恢復(fù)需要人為干預(yù),則應(yīng)考慮平均修復(fù)時(shí)間是否在限定的范圍以內(nèi)。
安全測(cè)試
安全測(cè)試的目的在于驗(yàn)證安裝在系統(tǒng)內(nèi)的保護(hù)機(jī)構(gòu)確定能夠?qū)ο到y(tǒng)進(jìn)行保護(hù),使之不受各種非常的干擾。系統(tǒng)的安全測(cè)試要設(shè)置一些測(cè)試用例謀略實(shí)在系統(tǒng)的安全保密措施,檢驗(yàn)系統(tǒng)是否有安全保密的漏洞。
軟件集成、確認(rèn)和系統(tǒng)測(cè)試方法 www.51testing.com
博為峰軟件制作 BWF SOFTWARE
強(qiáng)度測(cè)試
檢驗(yàn)系統(tǒng)的能力最高實(shí)際限度。進(jìn)行強(qiáng)度測(cè)試時(shí),讓系統(tǒng)的運(yùn)行處于資源的異常數(shù)量、異常頻率和異常批量的條件下。例如,如果正常的中斷平均頻率為每秒一到二次,強(qiáng)度測(cè)試設(shè)計(jì)為每秒10次中斷。又如某系統(tǒng)正常運(yùn)行 可支持10個(gè)終端并行工作,強(qiáng)度測(cè)試則檢驗(yàn)15個(gè)終端并行工作的情況。
性能測(cè)試
性能測(cè)試檢驗(yàn)安裝在系統(tǒng)內(nèi)的軟件運(yùn)行性能。這種測(cè)試常常與強(qiáng)度測(cè)試結(jié)合起來進(jìn)行。為記錄性能需要在系統(tǒng)中安裝必要的量測(cè)儀表或是為度量性能而設(shè)置的軟件(或程序段)。
參考資料:1.《計(jì)算機(jī)軟件測(cè)試技術(shù)》鄭人杰,清華大學(xué)出版社,1992。
2.《Software Engineering--A Practioner’ s Approach》,R. S. Pressman, 1998.
3. 《實(shí)用軟件工程》,鄭人杰,殷人昆,陶永雷,清華大學(xué)出版社,1997。
軟件集成、確認(rèn)和系統(tǒng)測(cè)試方法 www.51testing.com
博為峰軟件制作 BWF SOFTWARE
總結(jié)
以上是生活随笔為你收集整理的软件集成、确认和系统测试方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 几种多数据库表update的方式测试
- 下一篇: 在ABAP debugger里手动tri