基于新信息技術(shù)的軟件測試技術(shù) 課件 第7、8章 測試項(xiàng)目管理、軟件自動(dòng)化測試概述_第1頁
基于新信息技術(shù)的軟件測試技術(shù) 課件 第7、8章 測試項(xiàng)目管理、軟件自動(dòng)化測試概述_第2頁
基于新信息技術(shù)的軟件測試技術(shù) 課件 第7、8章 測試項(xiàng)目管理、軟件自動(dòng)化測試概述_第3頁
基于新信息技術(shù)的軟件測試技術(shù) 課件 第7、8章 測試項(xiàng)目管理、軟件自動(dòng)化測試概述_第4頁
基于新信息技術(shù)的軟件測試技術(shù) 課件 第7、8章 測試項(xiàng)目管理、軟件自動(dòng)化測試概述_第5頁
已閱讀5頁,還剩140頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第7章測試項(xiàng)目管理7.1測試項(xiàng)目管理概述7.2測試文檔7.3軟件測試計(jì)劃7.4測試的組織與人員管理7.5軟件測試過程管理7.6軟件測試風(fēng)險(xiǎn)管理7.7軟件測試成本管理7.8軟件測試配置管理

7.1測試項(xiàng)目管理概述

7.1.1測試項(xiàng)目與測試項(xiàng)目管理1.測試項(xiàng)目測試項(xiàng)目是在一定的組織機(jī)構(gòu)內(nèi),利用有限的人力和財(cái)力等資源,在指定的環(huán)境和要求下,對特定軟件完成特定測試目標(biāo)的階段性任務(wù)。該任務(wù)應(yīng)滿足一定質(zhì)量、數(shù)量和技術(shù)指標(biāo)等要求。

測試項(xiàng)目一般具有如下一些基本特性:

1)獨(dú)特性

2)組織性

3)生命周期

4)資源消耗特性

5)目標(biāo)沖突性

6)結(jié)果的不確定因素

2.測試項(xiàng)目管理

測試項(xiàng)目管理就是以測試項(xiàng)目為管理對象,通過一個(gè)臨時(shí)性的專門的測試組織,運(yùn)用專門的軟件測試知識(shí)、技能、工具和方法,對測試項(xiàng)目進(jìn)行計(jì)劃、組織、執(zhí)行和控制,并在時(shí)間成本、軟件測試質(zhì)量等方面進(jìn)行分析和管理。測試項(xiàng)目管理貫穿整個(gè)測試項(xiàng)目的生命周期。

測試項(xiàng)目管理有以下基本特征:

(1)系統(tǒng)工程的思想貫穿測試項(xiàng)目管理的全過程。

(2)測試項(xiàng)目管理的組織有一定的特殊性。項(xiàng)目管理的一個(gè)最為明顯的特征即是其組織的特殊性。其特殊性表現(xiàn)在以下幾個(gè)方面:

①有了“項(xiàng)目組織”的概念,項(xiàng)目管理的突出特點(diǎn)是以項(xiàng)目本身作為一個(gè)組織單元,圍繞項(xiàng)目來組織資源;

②項(xiàng)目管理的組織是臨時(shí)性的,由于項(xiàng)目是一次性的,而項(xiàng)目的組織是為項(xiàng)目的建設(shè)服務(wù)的,項(xiàng)目終結(jié)了,其組織的使命也就完成了;

③項(xiàng)目管理的組織是柔性的,所謂柔性即是可變的。項(xiàng)目的組織打破了傳統(tǒng)的固定建制的組織形式,而是根據(jù)項(xiàng)目生命周期各個(gè)階段的具體需要適時(shí)地調(diào)整組織的配置,以保障組織的高效、經(jīng)濟(jì)運(yùn)行。

(3)測試項(xiàng)目管理的要點(diǎn)是創(chuàng)造和保持一個(gè)使測試工作順利進(jìn)行的環(huán)境,使置身于這個(gè)環(huán)境中的人員能協(xié)調(diào)工作以完成預(yù)定的目標(biāo)。

(4)測試項(xiàng)目管理的方法、工具和技術(shù)手段具有先進(jìn)性。

7.1.2測試項(xiàng)目的范圍管理

測試項(xiàng)目的范圍管理就是界定項(xiàng)目所必須包含且只需包含的全部工作,并對其他的測試項(xiàng)目管理工作起指導(dǎo)作用,以確保測試工作順利完成。

測試項(xiàng)目的范圍管理從過程上來講,主要包括啟動(dòng)、范圍計(jì)劃、范圍定義、范圍核實(shí)、范圍的變更與控制等內(nèi)容。范圍管理的首要任務(wù)是界定項(xiàng)目包含且只包含所有需要完成的工作,“包含且只包含”的意義至少有以下三個(gè)方面:一是有足夠多的工作必須做;二是不必要的工作不做;三是所做的工作都是為了實(shí)現(xiàn)項(xiàng)目(或項(xiàng)目一部分)的目標(biāo)。在進(jìn)行項(xiàng)目范圍管理時(shí),應(yīng)當(dāng)注意三點(diǎn),即搞清需求、準(zhǔn)確界定范圍、變更控制要嚴(yán)。

工作分解結(jié)構(gòu)跟因數(shù)分解是一個(gè)原理,就是把一個(gè)項(xiàng)目按一定的原則分解,項(xiàng)目分解成任務(wù),任務(wù)再分解成一項(xiàng)項(xiàng)工作,再把一項(xiàng)項(xiàng)工作分配到每個(gè)人的日?;顒?dòng)中,直到分解不下去為止,即:項(xiàng)目→任務(wù)→工作→日?;顒?dòng)。工作分解結(jié)構(gòu)以可交付成果為導(dǎo)向,對項(xiàng)目要素進(jìn)行分組,它歸納和定義了項(xiàng)目的整個(gè)工作范圍,每下降一層代表對項(xiàng)目工作的更詳細(xì)定義。WBS總是處于計(jì)劃過程的中心,也是制訂進(jìn)度計(jì)劃、資源需求、成本預(yù)算、風(fēng)險(xiǎn)管理計(jì)劃和采購計(jì)劃等的重要基礎(chǔ)。

7.2測試文檔

測試文檔(TestingDocumentation)是對要執(zhí)行的軟件測試及測試的結(jié)果進(jìn)行簡述、定義、規(guī)定和報(bào)告的任何書面或圖示信息。測試過程實(shí)施所必備的核心文檔是測試計(jì)劃、測試用例(大綱)和軟件測試報(bào)告。

7.2.1測試文檔的作用

從以下幾個(gè)方面可以說明測試文檔的重要作用。

(1)促進(jìn)項(xiàng)目組成員之間的交流溝通。

(2)便于對測試項(xiàng)目的管理。

(3)決定測試的有效性。

(4)檢驗(yàn)測試資源。

(5)明確任務(wù)的風(fēng)險(xiǎn)。

(6)評價(jià)測試結(jié)果。

(7)驗(yàn)證需求的正確性。

7.2.2主要軟件測試文檔

1.軟件測試文檔

IEEE829-1998給出了軟件測試主要文檔的類型,如圖7.1所示。圖7.1軟件測試文檔模板

2.軟件測試計(jì)劃文檔

軟件測試計(jì)劃主要對軟件測試項(xiàng)目、所需要進(jìn)行的測試工作、測試人員所應(yīng)該負(fù)責(zé)的測試工作、測試過程、測試所需的時(shí)間和資源,以及測試風(fēng)險(xiǎn)等做出預(yù)先的計(jì)劃和安排,如圖7.2所示。

圖7.2軟件測試計(jì)劃文檔模板

3.測試設(shè)計(jì)規(guī)格說明文檔

測試設(shè)計(jì)規(guī)格說明用于每個(gè)測試等級,以指定測試集的體系結(jié)構(gòu)和覆蓋跟蹤,如圖7.3所示。圖7.3軟件測試設(shè)計(jì)規(guī)格說明文檔模板

4.軟件測試用例規(guī)格說明文檔

軟件測試用例規(guī)格說明用于簡述測試用例,如圖7.4所示。圖7.4軟件測試用例規(guī)格說明文檔模板

5.測試規(guī)程

測試規(guī)程用于指定執(zhí)行一個(gè)測試用例集的步驟。

6.測試日志

測試日志是測試過程監(jiān)控、測試結(jié)果和軟件質(zhì)量評估的基礎(chǔ),同時(shí)也是數(shù)據(jù)分析和過程改進(jìn)的重要依據(jù),如圖7.5所示。圖7.5測試日志模板

7.軟件缺陷報(bào)告

軟件缺陷報(bào)告用來簡述出現(xiàn)在測試過程或軟件中的異常情況,這些異常情況可能存在于需求、設(shè)計(jì)、代碼、文檔或測試用例中,如圖7.6所示。

圖7.6軟件缺陷報(bào)告模板

8.測試總結(jié)報(bào)告

測試總結(jié)報(bào)告用于報(bào)告某個(gè)測試完成情況,如圖7.7所示。圖7.7測試總結(jié)報(bào)告模板

7.3軟件測試計(jì)劃

7.3.1制訂測試計(jì)劃的目的 制訂測試計(jì)劃的目的如下:1.使軟件測試工作進(jìn)行更順利軟件測試計(jì)劃明確地將要進(jìn)行的軟件測試采用的模式、方法、步驟以及可能遇到的問題與風(fēng)險(xiǎn)等內(nèi)容都做了考慮和計(jì)劃,這樣會(huì)使測試執(zhí)行、測試分析和撰寫測試報(bào)告的準(zhǔn)備工作更加有效,使軟件測試工作進(jìn)行得更順利。

2.促進(jìn)項(xiàng)目參加人員彼此的溝通

測試過程必須有相應(yīng)的條件才能進(jìn)行。如果程序員只是編寫代碼,而不說明它干什么、如何工作、何時(shí)完成,測試人員就很難執(zhí)行測試任務(wù)。

3.及早發(fā)現(xiàn)和修正軟件規(guī)格說明書的問題

在編寫軟件測試計(jì)劃的初期,首先要了解軟件各個(gè)部分的規(guī)格及要求,這樣就需要仔細(xì)地閱讀、了解規(guī)格說明書。

4.使軟件測試工作更易于管理

制訂測試計(jì)劃的另一個(gè)目的,就是要對整個(gè)軟件測試工作采取系統(tǒng)化的方式來進(jìn)行,這樣會(huì)使軟件測試工作更易于管理。測試計(jì)劃包含兩種主要的管理方式,一是工作分解結(jié)構(gòu),二是監(jiān)督和控制。

7.3.2制訂測試計(jì)劃的原則

1.制訂測試計(jì)劃應(yīng)盡早開始

2.保持測試計(jì)劃的靈活性

3.保持測試計(jì)劃簡潔和易讀

4.盡量爭取多渠道評審測試計(jì)劃

5.計(jì)算測試計(jì)劃的投入

7.3.3制訂測試計(jì)劃時(shí)面對的問題

1.與開發(fā)者意見不一致

2.缺乏測試工具

3.培訓(xùn)不夠

4.管理部門缺乏對測試工作的理解和支持

5.缺乏用戶的參與

6.測試時(shí)間不足

7.過分依賴測試人員

8.測試人員處于進(jìn)退兩難的狀態(tài)

9.不得不說“不”

7.3.4制訂測試計(jì)劃

1.測試計(jì)劃標(biāo)識(shí)符

2.簡要介紹

測試計(jì)劃的簡要介紹部分主要是對測試軟件基本情況的介紹和對測試范圍的概括性簡述。

3.測試項(xiàng)目

測試項(xiàng)目包括所測試軟件的名稱及版本,需要列出所有測試單項(xiàng)、外部條件對測試特性的影響和軟件缺陷報(bào)告的機(jī)制等,具體要點(diǎn)如下:

(1)功能測試。

(2)設(shè)計(jì)測試。

(3)整體測試。

IEEE標(biāo)準(zhǔn)中指出,可以參考下面的文檔來完成測試項(xiàng)目:

(1)需求規(guī)格說明;

(2)用戶指南;

(3)操作指南;

(4)安裝指南。

總的來說,測試需要分析軟件的每一部分,明確其是否需要測試,并說明理由。

4.測試對象

測試計(jì)劃的這一部分需要列出待測的單項(xiàng)功能及功能組合。這部分內(nèi)容與測試項(xiàng)目不同。

5.不需要測試的對象

測試計(jì)劃的這一部分需要列出不測試的單項(xiàng)功能及組合功能,并說明不予測試的理由。

6.測試方法(策略)

這部分內(nèi)容是測試計(jì)劃的核心所在,需要給出有關(guān)測試方法的概述以及每個(gè)階段的測試方法。

7.測試項(xiàng)通過/失敗的標(biāo)準(zhǔn)

這部分需要給出“測試項(xiàng)目”中簡述的每一個(gè)測試項(xiàng)通過或失敗的標(biāo)準(zhǔn)。正如每個(gè)測試用例都需要一個(gè)預(yù)期的結(jié)果一樣,每個(gè)測試項(xiàng)目也同樣都需要一個(gè)預(yù)期的結(jié)果。

隨著測試等級的不同和測試組織的不同,所采用的確切標(biāo)準(zhǔn)也會(huì)不同,下面是一些常見指標(biāo):

(1)通過的測試用例占所有測試用例的比例。

(2)缺陷的數(shù)量、嚴(yán)重程度和分布情況。

(3)測試用例覆蓋情況。

(4)文檔的完整性。

(5)是否達(dá)到性能標(biāo)準(zhǔn)。

8.中斷測試和恢復(fù)測試的判斷準(zhǔn)則

常用的判斷測試中斷的標(biāo)準(zhǔn)如下:

(1)關(guān)鍵路徑存在未完成任務(wù);

(2)大量的缺陷;

(3)嚴(yán)重的缺陷;

(4)測試環(huán)境不完整;

(5)資源短缺。

9.測試完成所提交的材料

測試完成所提交的材料主要包含測試工作中開發(fā)設(shè)計(jì)的所有文檔、工具等。例如,測試計(jì)劃、測試設(shè)計(jì)規(guī)格說明、測試用例、測試日志、測試數(shù)據(jù)、自定義工具、測試缺陷報(bào)告和測試總結(jié)報(bào)告等。

10.測試任務(wù)

測試計(jì)劃中這一部分需要給出測試前的準(zhǔn)備工作以及測試工作所需完成的一系列任務(wù)。

11.測試所需的資源

測試所需的資源如下:

(1)人員;

(2)設(shè)備特性;

(3)辦公或?qū)嶒?yàn)空間;

(4)軟件;

(5)其他資源,如U盤、通信設(shè)備、參考書等;

(6)特殊測試工具。

12.測試人員的工作職責(zé)

測試人員的工作職責(zé)明確指出了測試任務(wù)和測試人員的工作責(zé)任。有時(shí)測試需要定義的任務(wù)類型不容易分清。復(fù)雜的任務(wù)可能有多個(gè)執(zhí)行者,或者由多人共同負(fù)責(zé)。

13.人員安排與培訓(xùn)需求

人員安排與培訓(xùn)需求是指明確測試人員具體負(fù)責(zé)軟件測試的哪些部分、哪些可測試性能,以及他們需要掌握的技能等。

14.進(jìn)度表

測試進(jìn)度是圍繞著包含在項(xiàng)目計(jì)劃中的主要事件(如文檔、模塊的交付日期,接口的可用性等)來構(gòu)造的。

作為測試計(jì)劃的一部分,完成測試進(jìn)度計(jì)劃安排,可以為項(xiàng)目管理員提供信息,以便更好地安排整個(gè)項(xiàng)目的進(jìn)度。

15.潛在的問題和風(fēng)險(xiǎn)

軟件測試人員要明確地指出計(jì)劃過程中的風(fēng)險(xiǎn),并與測試管理員和項(xiàng)目管理員交換意見。這些風(fēng)險(xiǎn)應(yīng)該在測試計(jì)劃中明確指出,在進(jìn)度中予以考慮。

16.審批

審批人應(yīng)該是有權(quán)宣布已經(jīng)為轉(zhuǎn)入下一個(gè)階段做好準(zhǔn)備的某個(gè)人或某幾個(gè)人。

審批人除了在適當(dāng)?shù)奈恢煤炇鹱约旱拿趾腿掌谕?,還應(yīng)該簽署表明他們態(tài)度的評審意見。

7.3.5如何做好測試計(jì)劃

1.明確測試的目標(biāo),增強(qiáng)測試計(jì)劃的實(shí)用性

當(dāng)今任何商業(yè)軟件都包含了豐富的功能,因此,軟件測試的內(nèi)容千頭萬緒,如何在紛亂的測試內(nèi)容之間提煉測試的目標(biāo),是制訂軟件測試計(jì)劃時(shí)首先需要明確的問題。測試目標(biāo)必須是明確的、可以量化和度量的,而不是模棱兩可的宏觀簡述。另外,測試目標(biāo)應(yīng)該相對集中,避免羅列出一系列目標(biāo),從而輕重不分或平均用力。

2.堅(jiān)持“5W1H”規(guī)則

明確內(nèi)容與過程“What(做什么)”“Why(為什么做)”“When(何時(shí)做)”“Where(在哪里)”“Who(誰來做)”“How(如何做)”。

(1)?Why——指為什么要進(jìn)行這些測試;

(2)?What——測試哪些方面,即不同階段的工作內(nèi)容;

(3)?When——測試不同階段的起止時(shí)間;

(4)?Where——相應(yīng)文檔、缺陷的存放位置,測試環(huán)境等;

(5)?Who——項(xiàng)目有關(guān)人員的組成,即安排哪些測試人員進(jìn)行測試;

(6)?How——如何去做,即使用哪些測試工具以及測試方法進(jìn)行測試。

3.采用評審和更新機(jī)制,保證測試計(jì)劃滿足實(shí)際需求

測試計(jì)劃制訂完成后,如果沒有經(jīng)過評審,直接發(fā)送給測試團(tuán)隊(duì),測試計(jì)劃內(nèi)容可能不準(zhǔn)確或遺漏測試內(nèi)容,或者軟件需求變更引起測試范圍增減,而測試計(jì)劃的內(nèi)容沒有及時(shí)更新,誤導(dǎo)測試執(zhí)行人員。

4.分別制訂測試計(jì)劃與測試詳細(xì)規(guī)格、測試用例

編寫軟件測試計(jì)劃要避免一種不良傾向,即測試計(jì)劃的“大而全”,無所不包,篇幅冗長,長篇大論,重點(diǎn)不突出,既浪費(fèi)寫作時(shí)間,也浪費(fèi)測試人員的閱讀時(shí)間?!按蠖钡囊粋€(gè)常見表現(xiàn)就是測試計(jì)劃文檔包含詳細(xì)的測試技術(shù)指標(biāo)、測試步驟和測試用例。

5.測試階段的劃分

就通常軟件項(xiàng)目而言,基本上采用“瀑布型”開發(fā)方式,這種開發(fā)方式下,各個(gè)項(xiàng)目主要活動(dòng)比較清晰,易于操作。整個(gè)項(xiàng)目生命周期為“需求-設(shè)計(jì)-編碼-測試-發(fā)布-實(shí)施-維護(hù)”。

6.系統(tǒng)測試階段日程安排

劃分階段清楚了,隨之而來的問題是測試執(zhí)行需要的時(shí)間長短。標(biāo)準(zhǔn)的工程方法或CMM方式是對工作量進(jìn)行估算,然后得出具體的估算值。但是這種方法過于復(fù)雜,可以另辟專題討論。一個(gè)可操作的簡單方法是:根據(jù)測試執(zhí)行上一階段的活動(dòng)時(shí)間進(jìn)行換算,為上一階段活動(dòng)時(shí)間的1.1~1.5倍。

經(jīng)驗(yàn)評估方法如下:

(1)計(jì)算需求文檔的頁數(shù),得出系統(tǒng)測試用例的頁數(shù):

需求頁數(shù)∶系統(tǒng)測試用例頁數(shù)?≈?1∶1

(2)由系統(tǒng)測試用例頁數(shù)計(jì)算編寫系統(tǒng)測試用例時(shí)間:

編寫系統(tǒng)測試用例時(shí)間?≈?系統(tǒng)測試用例頁數(shù)?×?1小時(shí)

(3)計(jì)算執(zhí)行系統(tǒng)測試用例時(shí)間:

編寫系統(tǒng)用例時(shí)間∶執(zhí)行系統(tǒng)測試用時(shí)?≈?1∶2

(4)計(jì)算回歸測試包含的時(shí)間:

系統(tǒng)測試時(shí)間∶回歸測試用時(shí)?≈?2∶1

7.變更控制

測試計(jì)劃改變了已往根據(jù)任務(wù)進(jìn)行測試的方式,因此,為使測試計(jì)劃得到貫徹和落實(shí),測試組人員必須及時(shí)跟蹤軟件開發(fā)的過程,對產(chǎn)品提交測試做準(zhǔn)備。測試計(jì)劃的目的,本身就是強(qiáng)調(diào)按規(guī)劃的測試戰(zhàn)略進(jìn)行測試,淘汰以往以任務(wù)為主的臨時(shí)性。在這種情況下,測試計(jì)劃中強(qiáng)調(diào)對變更的控制顯得尤為重要。

變更來源于以下幾個(gè)方面:

(1)項(xiàng)目計(jì)劃的變更。

(2)需求的變更。

(3)測試產(chǎn)品版本的變更。

(4)測試資源的變更。

測試階段的風(fēng)險(xiǎn)主要是由上述變更所造成的不確定性,有效地應(yīng)對這些變更就能降低風(fēng)險(xiǎn)發(fā)生的概率。要想計(jì)劃本身不成為空談和空白無用的紙質(zhì)文檔,對不確定因素的預(yù)見和事先防范必須做到心中有數(shù)。

7.4測試的組織與人員管理7.4.1測試的組織與人員管理概述測試項(xiàng)目成功完成的關(guān)鍵因素之一就是要有高素質(zhì)的軟件測試人員,并將他們有效地組織起來,分工合作,形成一支精干的隊(duì)伍,使他們發(fā)揮出最大的工作效率。測試的組織與人員管理是測試項(xiàng)目不可缺少的管理職能,將會(huì)直接影響軟件測試工作的效率和軟件產(chǎn)品的質(zhì)量。在管理人員的經(jīng)驗(yàn)中,常常有這樣的情況:如果問題是屬于技術(shù)方面的,應(yīng)對的方法是多研究,尋找解決方案;如果問題出現(xiàn)在“人”的議題上,則幾乎沒有標(biāo)準(zhǔn)答案可以提供。

測試的組織與人員管理的任務(wù)是:

(1)為測試項(xiàng)目選擇合適的組織結(jié)構(gòu)模式。

(2)確定項(xiàng)目組內(nèi)部的組織形式。

(3)合理配備人員,明確分工和責(zé)任。

(4)對項(xiàng)目成員的思想、心理和行為進(jìn)行有效的管理,充分發(fā)揮他們的主觀能動(dòng)性,密切配合實(shí)現(xiàn)項(xiàng)目的目標(biāo)。

測試的組織與人員管理應(yīng)注意的原則是:

(1)盡快落實(shí)責(zé)任。

(2)減少接口

(3)責(zé)任明確、均衡。

7.4.2軟件測試對組織結(jié)構(gòu)和人員的要求

1.對組織結(jié)構(gòu)的要求

軟件測試是由組織和人員進(jìn)行的測試工作,具體的組織結(jié)構(gòu)如圖7.8所示。圖7.8組織結(jié)構(gòu)圖

測試工作的有關(guān)人員結(jié)構(gòu)如圖7.9所示。圖7.9測試工作的有關(guān)人員結(jié)構(gòu)圖

2.對人員的要求

1)合理地組織人員

軟件測試人員最好具有軟件開發(fā)經(jīng)驗(yàn),理解軟件工程的知識(shí)。軟件測試過程中,必須要合理地組織人員。將軟件測試的人員分成三部分:一部分為上機(jī)測試人員(測試執(zhí)行者);一部分為測試結(jié)果檢查核對人員(測試工具軟件開發(fā)工程師);還有一部分是測試數(shù)據(jù)制作人員(高級軟件測試工程師)。這三部分人員應(yīng)該緊密配合,互相協(xié)調(diào),保證軟件測試工作的順利進(jìn)行。

(1)上機(jī)測試人員。上機(jī)測試人員負(fù)責(zé)理解產(chǎn)品的功能要求,然后根據(jù)測試規(guī)范和測試案例對其進(jìn)行測試,檢查軟件有沒有錯(cuò)誤,確定軟件是否具有穩(wěn)定性,承擔(dān)最低級的執(zhí)行角色。

(2)測試結(jié)果檢查核對人員。測試結(jié)果檢查核對人員負(fù)責(zé)編寫測試工具代碼,并利用測試工具對軟件進(jìn)行測試,或者開發(fā)測試工具為軟件測試工程師服務(wù)。

(3)測試數(shù)據(jù)制作人員。測試數(shù)據(jù)制作人員要具備編寫程序的能力。

(4)測試經(jīng)理。測試經(jīng)理主要負(fù)責(zé)測試內(nèi)部管理以及與其他外部人員、客戶的交流等,測試經(jīng)理需要具備項(xiàng)目經(jīng)理所具備的知識(shí)和技能。

(5)測試文檔審核師。測試文檔審核師主要負(fù)責(zé)前置測試,包括對在需求期與設(shè)計(jì)期間產(chǎn)生的文檔(如“需求規(guī)格說明書”“概要設(shè)計(jì)書”“詳細(xì)設(shè)計(jì)書”等)進(jìn)行審核。審核時(shí)需要書寫審核報(bào)告。當(dāng)文檔確定后,需要整理文檔報(bào)告,并且反映給測試工程師。

(6)測試工程師。測試工程師主要根據(jù)需求期與設(shè)計(jì)期間產(chǎn)生的文檔設(shè)計(jì)制作測試數(shù)據(jù)和各個(gè)測試階段的測試用例。

(7)操作人員。操作人員(測試人員、測試專員)的主要工作就是執(zhí)行測試工程師提供的測試用例,從而發(fā)現(xiàn)Bug。

2)軟件測試人員需要的知識(shí)

軟件測試不是一個(gè)可以很快入門的行業(yè),它的門檻高,需要的知識(shí)多,具有編程經(jīng)驗(yàn)的程序員不一定是一名優(yōu)秀的測試工程師。軟件測試人員需要的知識(shí)結(jié)構(gòu)如下:

(1)懂得計(jì)算機(jī)的基本理論,又有一定的開發(fā)經(jīng)驗(yàn)。

(2)了解軟件開發(fā)的基本過程和特征,對軟件有良好的理解能力,掌握軟件測試相關(guān)理論及技術(shù)。

(3)有軟件業(yè)務(wù)經(jīng)驗(yàn)。

(4)能夠根據(jù)測試計(jì)劃和方案進(jìn)行軟件測試,針對軟件需求開發(fā)測試模型,制定測試方案,安排測試計(jì)劃,搭建測試環(huán)境,進(jìn)行基本測試,設(shè)計(jì)簡單的測試用例。

(5)能夠規(guī)劃設(shè)計(jì)環(huán)境,編制測試大綱并設(shè)計(jì)測試用例,對軟件進(jìn)行全面測試工作。

(6)能夠編制測試計(jì)劃,評審測試方案,規(guī)范測試流程及測試文檔,分析測試結(jié)果,管理測試項(xiàng)目。

(7)會(huì)操作軟件測試工具。

3)軟件測試人員需要的素質(zhì)

(1)溝通能力。在溝通交流時(shí),要注意以下幾點(diǎn):

①設(shè)身處地為客戶著想,從他們的角度去測試系統(tǒng)。

②考慮問題要全面,結(jié)合客戶的需求、業(yè)務(wù)的流程和系統(tǒng)的構(gòu)架等多方面考慮問題。

③提出問題時(shí)不要將其復(fù)雜化。

(2)技術(shù)能力。測試人員應(yīng)該在開發(fā)人員研究的基礎(chǔ)上,更好地理解新技術(shù),讀懂程序。

(3)自信心。開發(fā)者經(jīng)常會(huì)指出測試者的錯(cuò)誤,測試者必須對自己的觀點(diǎn)有足夠的自信心。

(4)洞察力。一個(gè)好的測試工程師會(huì)持有“測試是為了破壞”的觀點(diǎn),具有捕獲用戶觀點(diǎn)的能力,強(qiáng)烈追求高質(zhì)量的意識(shí),對細(xì)節(jié)的關(guān)注能力,對高風(fēng)險(xiǎn)區(qū)的判斷能力,以便將有限的測試聚焦于重點(diǎn)環(huán)節(jié)。

(5)探索精神。軟件測試員不會(huì)害怕進(jìn)入陌生環(huán)境,他們喜歡將新軟件安裝在自己的機(jī)器上,觀察結(jié)果。

(6)不懈努力。軟件測試員總是不停地嘗試。他們可能會(huì)碰到“轉(zhuǎn)瞬即逝”或難以重建的軟件缺陷。他們不會(huì)心存僥幸,而是盡一切可能去尋找缺陷。

(7)創(chuàng)造性。測試顯而易見的結(jié)果,那不是軟件測試員的工作。他們的工作是采取富有創(chuàng)意甚至超常的手段來尋找缺陷。

(8)追求完美。軟件測試員力求完美,但是知道某些目標(biāo)無法企及時(shí),他們不會(huì)去苛求,而是盡力接近目標(biāo)。

(9)判斷準(zhǔn)確。軟件測試員要決定測試內(nèi)容、測試時(shí)間,以及所看到的問題是否是真正的缺陷。

(10)老練穩(wěn)重和說服力。軟件測試員不害怕壞消息。他們必須告訴程序員,你的程序有問題。優(yōu)秀的軟件測試知道怎樣老練地處理這些問題,怎樣和不夠冷靜的程序員合作。

軟件測試員找出的軟件缺陷有時(shí)會(huì)被認(rèn)為不重要、不用修復(fù),這時(shí)要善于表達(dá)觀點(diǎn),表明軟件缺陷必須修復(fù),并通過實(shí)際演示來證明自己的觀點(diǎn)。

7.5軟件測試過程管理

7.5.1測試項(xiàng)目的跟蹤與監(jiān)控項(xiàng)目跟蹤是以項(xiàng)目計(jì)劃為基線,跟蹤項(xiàng)目實(shí)際進(jìn)展。項(xiàng)目跟蹤要回答的問題如下:(1)目前在哪里?(2)要到達(dá)哪里?(3)如何到達(dá)那里?(4)是不是在走向那里?

7.5.2測試項(xiàng)目的過程管理

軟件測試過程管理主要集中在軟件測試項(xiàng)目啟動(dòng)、測試計(jì)劃制訂、測試用例設(shè)計(jì)、測試執(zhí)行、測試結(jié)果審查和分析,以及如何開發(fā)或使用測試過程管理工具,概括起來包括如下基本內(nèi)容:

1.測試項(xiàng)目啟動(dòng)

首先要確定項(xiàng)目組長,只有把項(xiàng)目組長確定下來,就可以組建整個(gè)測試小組,并可以和開發(fā)等部門開展工作。

2.制訂測試計(jì)劃

確定測試范圍、測試策略和測試方法,以及對風(fēng)險(xiǎn)、日程表、資源等進(jìn)行分析和估計(jì)。

3.測試設(shè)計(jì)和測試開發(fā)

制訂測試的技術(shù)方案,設(shè)計(jì)測試用例,選擇測試工具,寫測試腳本等。

4.測試實(shí)施和執(zhí)行

建立或設(shè)置相關(guān)的測試環(huán)境,準(zhǔn)備測試數(shù)據(jù),執(zhí)行測試用例,對發(fā)現(xiàn)的軟件缺陷進(jìn)行報(bào)告、分析、跟蹤等。

5.測試結(jié)果的審查和分析

當(dāng)測試執(zhí)行結(jié)束后,對測試結(jié)果要進(jìn)行整體或綜合分析,以確定軟件產(chǎn)品質(zhì)量的當(dāng)前狀態(tài),為產(chǎn)品的改進(jìn)或發(fā)布提供數(shù)據(jù)和依據(jù)。

7.6軟件測試風(fēng)險(xiǎn)管理

1.風(fēng)險(xiǎn)的基本概念風(fēng)險(xiǎn)可定義為“傷害、損壞或損失的可能性;一種危險(xiǎn)的可能,或一種冒險(xiǎn)事件”。風(fēng)險(xiǎn)涉及一個(gè)事件發(fā)生的可能性,涉及該事件產(chǎn)生的不良后果或影響。軟件風(fēng)險(xiǎn)是指開發(fā)不成功引起損失的可能性,這種不成功事件會(huì)導(dǎo)致公司商業(yè)上的失敗。在軟件測試中,不可能對系統(tǒng)的所有方面進(jìn)行測試,會(huì)存在用戶發(fā)現(xiàn)缺陷的可能性,稱為測試風(fēng)險(xiǎn)。

2.軟件風(fēng)險(xiǎn)分類

不同類型的測試項(xiàng)目有不同的風(fēng)險(xiǎn)。相同類型的項(xiàng)目,測試風(fēng)險(xiǎn)也各不相同,取決于測試環(huán)境、客戶、項(xiàng)目團(tuán)隊(duì)、采用的技術(shù)和工具等。根據(jù)風(fēng)險(xiǎn)出現(xiàn)的情況可分為可避免的風(fēng)險(xiǎn)和不可避免的風(fēng)險(xiǎn)兩種。

在軟件測試過程中經(jīng)常會(huì)遇到的風(fēng)險(xiǎn)主要有以下7類。

(1)時(shí)間進(jìn)度風(fēng)險(xiǎn):用戶需求發(fā)生重大變更及設(shè)計(jì)計(jì)劃的大幅調(diào)整給測試帶來風(fēng)險(xiǎn),導(dǎo)致測試時(shí)間、資金投入增加。

(2)對產(chǎn)品認(rèn)識(shí)的風(fēng)險(xiǎn):對產(chǎn)品質(zhì)量需求或產(chǎn)品特性理解不準(zhǔn)確,造成測試范圍分析誤差,出現(xiàn)測試盲區(qū)或驗(yàn)證標(biāo)準(zhǔn)錯(cuò)誤。

(3)質(zhì)量目標(biāo)風(fēng)險(xiǎn):質(zhì)量標(biāo)準(zhǔn)不是很清晰,如適用性測試、易用性測試等。

(4)人員風(fēng)險(xiǎn):測試開始后,相關(guān)測試人員因故不能及時(shí)到位。

(5)測試環(huán)境的依賴性風(fēng)險(xiǎn):特定測試環(huán)境不到位,包括真實(shí)環(huán)境及仿真環(huán)境。

(6)測試充分性風(fēng)險(xiǎn):測試用例設(shè)計(jì)不到位,忽視了部分邊界條件、深層次的邏輯、用戶場景等;部分軟件缺陷不易重現(xiàn)以及回歸測試一般不運(yùn)行全部測試用例,有選擇性地執(zhí)行。

(7)工具風(fēng)險(xiǎn):能否及時(shí)準(zhǔn)備相關(guān)測試工具,測試人員對新工具無法熟練運(yùn)用等情況也時(shí)有發(fā)生。

3.軟件風(fēng)險(xiǎn)分析

在開發(fā)新的軟件系統(tǒng)過程中,由于存在許多不確定因素,軟件開發(fā)失敗的風(fēng)險(xiǎn)是客觀存在的。因此,風(fēng)險(xiǎn)分析對于軟件項(xiàng)目管理是決定性的。風(fēng)險(xiǎn)分析實(shí)際上就是貫穿在軟件工程過程中的一系列風(fēng)險(xiǎn)管理步驟,其中包括風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)估計(jì)、風(fēng)險(xiǎn)管理策略、風(fēng)險(xiǎn)解決和風(fēng)險(xiǎn)監(jiān)督等。

風(fēng)險(xiǎn)分析包括兩個(gè)部分。

(1)發(fā)生的可能性:發(fā)生問題的可能性有多大。

(2)影響嚴(yán)重性:如果問題發(fā)生了,會(huì)有什么后果。

通常風(fēng)險(xiǎn)分析采用兩種方法,即表格分析法和矩陣分析法。通用的風(fēng)險(xiǎn)分析表包括以下幾項(xiàng)內(nèi)容:

(1)風(fēng)險(xiǎn)標(biāo)識(shí)(ID):表示風(fēng)險(xiǎn)事件的唯一標(biāo)識(shí);

(2)風(fēng)險(xiǎn)問題:問題發(fā)生現(xiàn)象的簡要描述;

(3)發(fā)生的可能性:可能性值從1(低)~10(高);

(4)影響的嚴(yán)重性:嚴(yán)重性值從1(低)~10(高);

(5)風(fēng)險(xiǎn)預(yù)測值:發(fā)生可能性和影響嚴(yán)重性的乘積;

(6)風(fēng)險(xiǎn)優(yōu)先級:風(fēng)險(xiǎn)預(yù)測值從高到低的排序。

4.軟件測試風(fēng)險(xiǎn)

軟件測試風(fēng)險(xiǎn)是軟件測試過程出現(xiàn)的或潛在的問題,造成的原因主要是測試計(jì)劃的不充分、測試方法有誤或測試過程的偏離,造成測試的補(bǔ)充以及結(jié)果不準(zhǔn)確。

軟件測試項(xiàng)目存在著風(fēng)險(xiǎn),在測試項(xiàng)目管理中,預(yù)先重視風(fēng)險(xiǎn)評估,并對可能出現(xiàn)的風(fēng)險(xiǎn)有所防范,就可以最大限度地減少風(fēng)險(xiǎn)的發(fā)生或降低風(fēng)險(xiǎn)所帶來的損失。風(fēng)險(xiǎn)的管理基本的內(nèi)容有兩項(xiàng):風(fēng)險(xiǎn)評估和風(fēng)險(xiǎn)控制。

1)風(fēng)險(xiǎn)評估

風(fēng)險(xiǎn)評估是在風(fēng)險(xiǎn)識(shí)別的基礎(chǔ)上,對識(shí)別出來的風(fēng)險(xiǎn)進(jìn)行評估,主要從下面四個(gè)方面入手:

(1)風(fēng)險(xiǎn)概率分析,即對風(fēng)險(xiǎn)發(fā)生的可能性設(shè)置一個(gè)尺度,如很高、較高、中等、較低、很低等;

(2)簡述風(fēng)險(xiǎn)并預(yù)測風(fēng)險(xiǎn)發(fā)生后,對軟件產(chǎn)品和測試結(jié)果可能產(chǎn)生的影響或造成的損失等;

(3)確定風(fēng)險(xiǎn)評估的正確性,要對每個(gè)風(fēng)險(xiǎn)的表現(xiàn)、范圍、時(shí)間做出盡量準(zhǔn)確的判斷;

(4)根據(jù)損失(影響)和風(fēng)險(xiǎn)概率的乘積,來確定風(fēng)險(xiǎn)的優(yōu)先級別,制定風(fēng)險(xiǎn)應(yīng)對措施。

2)風(fēng)險(xiǎn)控制

風(fēng)險(xiǎn)控制建立在風(fēng)險(xiǎn)評估的結(jié)果上,主要工作原則有:

(1)針對有些可以避免的風(fēng)險(xiǎn),例如測試用例執(zhí)行率未達(dá)到100%,可以通過制定測試規(guī)范,要求測試人員嚴(yán)格按照測試用例執(zhí)行測試,并記錄用例執(zhí)行情況,來避免該類風(fēng)險(xiǎn);

(2)有些不可避免的風(fēng)險(xiǎn),采取措施降低風(fēng)險(xiǎn),尤其是等級較高的風(fēng)險(xiǎn),將其轉(zhuǎn)化為不會(huì)引起嚴(yán)重后果的等級較低的風(fēng)險(xiǎn);

(3)凡事預(yù)則立,事先做好風(fēng)險(xiǎn)管理計(jì)劃,當(dāng)風(fēng)險(xiǎn)成為現(xiàn)實(shí)時(shí),可以更好地避免、轉(zhuǎn)移或降低風(fēng)險(xiǎn);

(4)對風(fēng)險(xiǎn)的處理制定應(yīng)急、高效的解決方案。

要想做好風(fēng)險(xiǎn)管理工作,就必須徹底改變測試項(xiàng)目的管理方式,建立防患于未然的管理意識(shí),并結(jié)合具體的實(shí)踐工作不斷地分析遇到的風(fēng)險(xiǎn),總結(jié)各種風(fēng)險(xiǎn)的應(yīng)對措施,指導(dǎo)實(shí)踐,降低產(chǎn)品質(zhì)量風(fēng)險(xiǎn)。

7.7軟件測試成本管理

7.7.1軟件測試成本管理概述軟件測試項(xiàng)目成本管理就是根據(jù)企業(yè)的情況和軟件測試項(xiàng)目的具體要求,利用公司的資源,在保證軟件測試項(xiàng)目的進(jìn)度、質(zhì)量達(dá)到客戶滿意的情況下,對軟件測試項(xiàng)目成本進(jìn)行有效的組織、實(shí)施、控制、跟蹤、分析和考核等一系列管理活動(dòng),最大限度地降低軟件測試項(xiàng)目的成本,提高項(xiàng)目利潤。

7.7.2軟件測試成本管理中的基本概念

1.測試費(fèi)用有效性

風(fēng)險(xiǎn)承受的確定,從經(jīng)濟(jì)學(xué)的角度考慮就是確定需要完成多少測試,以及進(jìn)行什么類型的測試;確定軟件存在的缺陷是否可以接受,如果可以,能承受多少。測試的策略不再主要由軟件人員和測試人員來確定,而是由商業(yè)的經(jīng)濟(jì)利益來決定的。

2.測試成本控制

成本控制是項(xiàng)目管理中的一個(gè)重點(diǎn),所有的人都在關(guān)心項(xiàng)目成本。一個(gè)美國項(xiàng)目管理教授曾幽默地說:“世界上的人都戴著放大鏡在看錢,尤其是美國人?!辈挥?jì)其數(shù)的項(xiàng)目由于資金問題遭到挫折或夭折,迫使人們不敢有絲毫大意。

測試工作的主要目標(biāo)是使測試產(chǎn)能最大化,也就是要使通過測試找出錯(cuò)誤的能力最大化,而檢測次數(shù)最小化。

測試的成本控制目標(biāo)是使測試開發(fā)成本、測試實(shí)施成本和測試維護(hù)成本最小化。

在軟件產(chǎn)品測試過程中,測試實(shí)施成本主要包括測試準(zhǔn)備成本、測試執(zhí)行成本和測試結(jié)束成本。

3.質(zhì)量成本

企業(yè)為了獲取利潤,需花費(fèi)大量的資金進(jìn)行測試。在質(zhì)量方面的投資會(huì)產(chǎn)生利潤。測試是一種帶有風(fēng)險(xiǎn)性的管理活動(dòng),可以使企業(yè)減少因?yàn)檐浖a(chǎn)品質(zhì)量低劣而花費(fèi)的不必要的成本。

1)質(zhì)量成本要素

質(zhì)量成本要素主要包括一致性成本和非一致性成本。一致性成本是指用于保證軟件質(zhì)量的支出,包括預(yù)防成本和測試預(yù)算,如測試計(jì)劃、測試開發(fā)、測試實(shí)施費(fèi)用。非一致性成本是由出現(xiàn)的軟件錯(cuò)誤和測試過程故障(如延期、劣質(zhì)的發(fā)布)引起的。追加測試時(shí)間和資金就是一種由于內(nèi)部故障引起的非一致性成本。非一致性成本還包括外部故障(軟件遺留錯(cuò)誤影響客戶)引起部分。一般情況下,外部故障非一致性成本要大于一致性成本與內(nèi)部故障非一致性成本之和。

2)質(zhì)量成本計(jì)算

質(zhì)量成本計(jì)算公式如下:

4.缺陷探測率

缺陷探測率是另一個(gè)衡量測試工作效率的軟件質(zhì)量成本的指標(biāo)。

7.7.3軟件測試項(xiàng)目成本管理的基本原則和措施

1.軟件測試項(xiàng)目成本的控制原則

1)堅(jiān)持成本最低化原則

軟件測試項(xiàng)目成本控制的根本目的在于,通過成本管理的各種手段,不斷降低軟件測試項(xiàng)目成本,以達(dá)到可實(shí)現(xiàn)的最低的目標(biāo)成本要求。

2)堅(jiān)持全面成本控制原則

全面成本管理是整個(gè)測試團(tuán)隊(duì)、全體測試人員和測試全過程的管理,亦稱“三全”管理。

3)堅(jiān)持動(dòng)態(tài)控制原則

軟件測試項(xiàng)目是一次性的,成本控制應(yīng)強(qiáng)調(diào)項(xiàng)目的中間控制,即動(dòng)態(tài)控制。

4)堅(jiān)持項(xiàng)目目標(biāo)管理原則

目標(biāo)管理的內(nèi)容包括:①目標(biāo)的設(shè)定和分解;②目標(biāo)的責(zé)任到位和執(zhí)行;③檢查目標(biāo)的執(zhí)行結(jié)果;④評價(jià)目標(biāo)和修正目標(biāo);⑤形成目標(biāo)管理的計(jì)劃、實(shí)施、處理循環(huán)。

5)堅(jiān)持責(zé)、權(quán)、利相結(jié)合的原則

在軟件測試施工過程中,軟件測試項(xiàng)目負(fù)責(zé)人和測試人員在肩負(fù)成本控制責(zé)任的同時(shí),享有成本控制的權(quán)力,同時(shí)要對成本控制中的業(yè)績進(jìn)行定期的檢查和考評,實(shí)行有獎(jiǎng)有罰。只有做到責(zé)、權(quán)、利相結(jié)合的成本控制,才能收到預(yù)期的效果。

2.軟件測試項(xiàng)目成本控制措施

1)組織措施

軟件測試項(xiàng)目負(fù)責(zé)人是項(xiàng)目成本管理的第一責(zé)任人,全面組織軟件測試項(xiàng)目的成本管理工作,應(yīng)及時(shí)掌握和分析盈虧狀況,并迅速采取有效措施;負(fù)責(zé)技術(shù)工作的測試人員應(yīng)在保證質(zhì)量、按期完成任務(wù)的前提下盡量采取先進(jìn)技術(shù),以降低工程成本;負(fù)責(zé)財(cái)務(wù)工作的人員應(yīng)及時(shí)分析項(xiàng)目的財(cái)務(wù)收支情況,合理調(diào)度、控制資金。

2)技術(shù)措施

技術(shù)措施包括三個(gè)方面:

一是制訂先進(jìn)的經(jīng)濟(jì)合理的測試方案,以達(dá)到縮短工期、提高質(zhì)量、降低成本的目的;

二是在軟件測試過程中努力尋求各種降低消耗、提高工效的新工藝、新技術(shù)來降低成本;

三是嚴(yán)把質(zhì)量關(guān),杜絕返工現(xiàn)象。

3)經(jīng)濟(jì)措施

經(jīng)濟(jì)措施包括三個(gè)方面:

一是人工費(fèi)控制管理;

二是材料費(fèi)控制管理;

三是軟件測試工具費(fèi)控制管理。

7.8軟件測試配置管理

一般來說,軟件測試配置管理包括5個(gè)最基本的活動(dòng)。

1.配置標(biāo)識(shí)一般認(rèn)為,軟件生命周期各個(gè)階段活動(dòng)的產(chǎn)物經(jīng)審批后即可稱為軟件配置項(xiàng)。軟件配置項(xiàng)包括:(1)與合同、過程、計(jì)劃和產(chǎn)品有關(guān)的文檔和資料;(2)源代碼、目標(biāo)代碼和可執(zhí)行代碼;(3)相關(guān)產(chǎn)品,包括軟件工具、庫內(nèi)的可重用軟件、外購軟件及顧客提供的軟件等。

2.版本控制

在項(xiàng)目開發(fā)過程中,絕大部分的配置項(xiàng)都要經(jīng)過多次修改才能最終確定下來。對配置項(xiàng)的任何修改都將產(chǎn)生新的版本。由于我們不能保證新版本一定比老版本“好”,所以不能拋棄老版本。版本控制的目的是按照一定的規(guī)則保存配置項(xiàng)的所有版本,避免發(fā)生版本丟失或混淆的現(xiàn)象,并且可以快速準(zhǔn)確地查找到配置項(xiàng)的任何版本。

3.變更控制

變更控制的目的并不是控制變更的發(fā)生,而是對變更進(jìn)行管理,確保變更有序進(jìn)行。對于軟件開發(fā)項(xiàng)目來說,發(fā)生變更的環(huán)節(jié)比較多,因此變更控制顯得格外重要。

項(xiàng)目中引起變更的因素有兩個(gè):一是來自外部的變更要求,如客戶要求修改工作范圍和需求等;二是開發(fā)過程內(nèi)部的變更要求,如為解決測試中發(fā)現(xiàn)的一些錯(cuò)誤而修改源碼甚至設(shè)計(jì)。比較而言,最難處理的是來自外部的需求變更,因?yàn)镮T項(xiàng)目需求變更的概率大,引發(fā)的工作量也大。

4.配置狀態(tài)報(bào)告

配置狀態(tài)報(bào)告是用于記載軟件配置管理活動(dòng)信息和軟件基線內(nèi)容的標(biāo)準(zhǔn)報(bào)告,其目的是及時(shí)、準(zhǔn)確地給出軟件配置項(xiàng)的當(dāng)前狀態(tài),使受影響的組和個(gè)人可以使用它,同時(shí)報(bào)告軟件開發(fā)活動(dòng)的進(jìn)展?fàn)顩r。通過不斷的記錄狀態(tài)報(bào)告可以更好地進(jìn)行統(tǒng)計(jì)分析,便于更好地控制配置項(xiàng),更準(zhǔn)確地報(bào)告開發(fā)進(jìn)展?fàn)顩r。

5.配置審計(jì)

配置審計(jì)是指在配置標(biāo)識(shí)、配置控制、配置狀態(tài)記錄的基礎(chǔ)上對所有配置項(xiàng)的功能及內(nèi)容進(jìn)行審查,以保證軟件配置項(xiàng)的可跟蹤性。

其主要任務(wù)是:

(1)檢查配置項(xiàng)是否完備,特別是關(guān)鍵的配置項(xiàng)是否遺漏;

(2)檢查所有配置項(xiàng)的基線是否存在,基線產(chǎn)生的條件是否齊全;

(3)檢查每份技術(shù)文檔作為某個(gè)配置項(xiàng)版本的簡述是否精確,是否與相關(guān)版本一致;

(4)檢查每項(xiàng)已批準(zhǔn)的更改是否都已實(shí)現(xiàn);

(5)檢查每項(xiàng)配置項(xiàng)更改是否按配置更改規(guī)程或有關(guān)標(biāo)準(zhǔn)進(jìn)行;

(6)檢查每個(gè)配置管理人員的責(zé)任是否明確,是否盡到了應(yīng)盡的責(zé)任;

(7)檢查配置信息安全是否受到破壞,評估安全保護(hù)機(jī)制的有效性。第8章軟件自動(dòng)化測試概述8.1軟件自動(dòng)化測試的產(chǎn)生8.2軟件自動(dòng)化測試的概念8.3軟件自動(dòng)化測試的意義8.4開展自動(dòng)化測試的方8.5軟件自動(dòng)化測試的原理和方法8.6軟件自動(dòng)化測試工具

8.1軟件自動(dòng)化測試的產(chǎn)生

隨著計(jì)算機(jī)日益廣泛的應(yīng)用,計(jì)算機(jī)軟件越來越龐大和復(fù)雜,軟件測試的工作量也越來越大。隨著人們對軟件測試工作的重視,大量的軟件自動(dòng)化測試工具不斷涌現(xiàn)出來,自動(dòng)化測試能夠滿足軟件公司想在最短的進(jìn)度內(nèi)充分測試其軟件的需求,一些軟件公司在這方面的投入,會(huì)對整個(gè)開發(fā)工作的質(zhì)量、成本和周期帶來非常明顯的效果。

8.2軟件自動(dòng)化測試的概念

軟件自動(dòng)化測試是一項(xiàng)讓計(jì)算機(jī)代替測試人員進(jìn)行軟件測試的技術(shù),是指編寫軟件去測試其他軟件。自動(dòng)化測試的目標(biāo)是對被測試系統(tǒng)進(jìn)行自動(dòng)測試??偟膩碚f,自動(dòng)化測試的目標(biāo)是通過較少的開銷,得到更徹底的測試,并提高產(chǎn)品的質(zhì)量。

軟件自動(dòng)化測試有如下特點(diǎn):

(1)可以對程序的新版本自動(dòng)執(zhí)行回歸測試;

(2)可以執(zhí)行一些手工測試?yán)щy或不可能進(jìn)行的測試;

(3)可以更好地利用資源;

(4)測試具有一致性和可重復(fù)性;

(5)可以更快地將軟件推向市場;

(6)可以增加軟件信任度。

8.3軟件自動(dòng)化測試的意義

軟件自動(dòng)化測試就是一項(xiàng)讓計(jì)算機(jī)代替測試人員進(jìn)行軟件測試的技術(shù),相對于手工測試而言,自動(dòng)化測試主要是通過所開發(fā)的軟件測試工具、腳本等來實(shí)現(xiàn)的,具有良好的可操作性、可重復(fù)性和高效率等特點(diǎn)。為了更好地理解自動(dòng)化測試的意義,需要從三個(gè)方面考慮:一是手工測試的局限性;二是軟件自動(dòng)化測試所帶來的好處;三是自動(dòng)化測試的局限性。

1.手工測試的局限性

手工測試是不可替代的,因?yàn)槿司哂泻軓?qiáng)的判斷能力。

(1)通過手工測試無法做到覆蓋所有代碼路徑。

(2)簡單的功能性測試用例在每一輪測試中都不能少,而且具有一定的機(jī)械性、重復(fù)性,工作量往往較大。

(3)許多與時(shí)序、死鎖、資源沖突、多線程等有關(guān)的錯(cuò)誤,通過手工測試很難捕捉到。

(4)進(jìn)行系統(tǒng)負(fù)載、性能測試,需要模擬大量數(shù)據(jù)或大量并發(fā)用戶等各種應(yīng)用場合時(shí),很難通過手工測試來進(jìn)行。

(5)進(jìn)行系統(tǒng)可靠性測試時(shí),需要模擬系統(tǒng)運(yùn)行10年、數(shù)十年,以驗(yàn)證系統(tǒng)能否穩(wěn)定運(yùn)行,這也是手工測試無法模擬的。

(6)如果有大量的測試用例,需要在短時(shí)間內(nèi)(如1天)完成,手工測試幾乎不可能做到。

(7)難以做到回歸測試。

2.軟件自動(dòng)化測試所帶來的好處

自動(dòng)化測試有很強(qiáng)的優(yōu)勢,即借助計(jì)算機(jī)的計(jì)算能力可以重復(fù)、不知疲倦地運(yùn)行。

使用測試工具的目的就是要提高軟件測試的效率和軟件測試的質(zhì)量。通常,自動(dòng)化測試的好處有:產(chǎn)生可靠的系統(tǒng);改進(jìn)測試工作質(zhì)量;減少測試工作量并加快測試進(jìn)度。

1)產(chǎn)生可靠的系統(tǒng)

測試工作的主要目標(biāo)一是找出缺陷,從而減少應(yīng)用中的錯(cuò)誤;二是確保系統(tǒng)的性能滿足用戶的期望。

通過使用自動(dòng)化測試可獲得的效果歸納如下:

(1)需求定義的改進(jìn);

(2)性能測試的改進(jìn);

(3)負(fù)載/壓力測試的改進(jìn);

(4)高質(zhì)量測量與測試最佳化;

(5)改進(jìn)與開發(fā)組人員之間的關(guān)系;

(6)改進(jìn)系統(tǒng)開發(fā)生命周期。

2)改進(jìn)測試工作質(zhì)量

通過使用自動(dòng)化測試工具,可增加測試的深度與廣度,改進(jìn)測試工作質(zhì)量。其具體好處可歸納如下:

(1)改進(jìn)多平臺(tái)兼容性測試;

(2)改進(jìn)軟件兼容性測試;

(3)改進(jìn)普通測試執(zhí)行;

(4)使測試集中于高級測試問題;

(5)可執(zhí)行手工測試無法完成的測試;

(6)可重現(xiàn)軟件缺陷;

(7)測試無需用戶干預(yù)。

3)減少測試工作量并加快測試進(jìn)度

善于使用測試工具來進(jìn)行測試,其節(jié)省時(shí)間并加快測試工作進(jìn)度是毋庸置疑的,這也是自動(dòng)化測試的主要優(yōu)點(diǎn)。

3.自動(dòng)化測試的局限性

1)自動(dòng)化測試不能取代手工測試

自動(dòng)化測試絕不能代替手工測試,下列情況不適合于自動(dòng)化測試:

(1)周期短并且一次性的項(xiàng)目。

(2)進(jìn)度非常緊張的項(xiàng)目。

(3)使用了很多第三方或自定義控件的項(xiàng)目。(4)軟件不穩(wěn)定,如軟件升級版本時(shí),用戶界面和功能頻繁變化,此時(shí)自動(dòng)化測試相應(yīng)部分修改的開銷較大。

(5)結(jié)果很容易通過人驗(yàn)證的測試。

(6)涉及物理交互的測試,如在讀卡機(jī)上劃卡,斷開設(shè)備的物理連接、開關(guān)電源等。

2)手工測試比自動(dòng)測試發(fā)現(xiàn)的故障要多

自動(dòng)化測試主要是進(jìn)行重復(fù)測試。一般情況下,自動(dòng)化測試進(jìn)行的工作是以前進(jìn)行過的,因此被測試軟件在自動(dòng)化測試中暴露的故障要少得多。

自動(dòng)化測試主要用于回歸測試,進(jìn)行正確性驗(yàn)證測試,而不是故障發(fā)現(xiàn)測試。據(jù)經(jīng)驗(yàn)數(shù)據(jù)統(tǒng)計(jì),自動(dòng)化測試只能發(fā)現(xiàn)約15%的故障,而手工測試可以發(fā)現(xiàn)約85%的故障。

3)自動(dòng)化測試不能提高測試的有效性

自動(dòng)化測試僅用于提高測試的效率,即減少測試的開銷和時(shí)間。

4)自動(dòng)化測試不具有想象力

(1)自動(dòng)化測試是通過測試軟件進(jìn)行的,測試過程只是按照運(yùn)行機(jī)制執(zhí)行。手工測試時(shí)可以直接判斷測試結(jié)果的正確性,而自動(dòng)化測試在許多情況下的測試結(jié)果還需要人工干預(yù)判斷。

(2)手工測試可以處理意外事件,如網(wǎng)絡(luò)連接中斷,此時(shí)必須重新建立連接。手工測試時(shí)可以及時(shí)處理該意外,而自動(dòng)化測試時(shí)該意外事件一般都會(huì)導(dǎo)致測試的中止。

8.4開展自動(dòng)化測試的方法

1.選取合適的測試項(xiàng)目來開展自動(dòng)化測試自動(dòng)化測試只有在多次運(yùn)行后,才能體現(xiàn)出自動(dòng)化的優(yōu)勢,只有不斷地運(yùn)行自動(dòng)化測試才能有效預(yù)防缺陷、減輕測試人員手工的回歸測試的工作量。如果一個(gè)項(xiàng)目是短期的并且是一次性的項(xiàng)目,則不適合開展自動(dòng)化測試。

2.自動(dòng)化測試介入的時(shí)機(jī)

過早的自動(dòng)化測試會(huì)帶來維護(hù)成本的增加,因?yàn)樵缙诘某绦蚪缑嬉话悴粔蚍€(wěn)定,處于頻繁更改的狀態(tài),這時(shí)候進(jìn)行自動(dòng)化測試往往得不償失,疲于應(yīng)付“動(dòng)蕩”的界面。

自動(dòng)化測試不應(yīng)該在界面尚未穩(wěn)定的時(shí)候開始,但是,并不意味著不需要計(jì)劃和準(zhǔn)備工作。在項(xiàng)目初期,就要考慮工具的選擇問題。

3.自動(dòng)化測試工程師的基本素質(zhì)和技能要求

自動(dòng)化測試工程師應(yīng)該具備一定的自動(dòng)化測試基礎(chǔ),包括自動(dòng)化測試工具的基礎(chǔ)、自動(dòng)化測試腳本的開發(fā)基礎(chǔ)知識(shí)等;還需要了解各種測試腳本的編寫、設(shè)計(jì)方法,知道在什么時(shí)候選取怎樣的測試腳本開發(fā)方式和如何維護(hù)測試腳本;需要具備一定的編程技巧,熟悉某些測試腳本語言的基本語法和使用方法。

4.自動(dòng)化測試的成本

成功開展自動(dòng)化測試必須考慮自動(dòng)化測試的成本問題。成本包括測試人員、測試設(shè)備、測試工具等。

8.5軟件自動(dòng)化測試的原理和方法

1.代碼分析代碼分析類似于高級編譯系統(tǒng),一般針對不同的高級語言構(gòu)造分析工具,在工具中定義類、對象、函數(shù)、變量等的定義規(guī)則、語法規(guī)則;在分析時(shí)對代碼進(jìn)行語法掃描,找出不符合編碼規(guī)范的地方;根據(jù)某種質(zhì)量模型評價(jià)代碼質(zhì)量,生成系統(tǒng)的調(diào)用關(guān)系圖等。

2.捕獲和回放

代碼分析是一種白盒測試的自動(dòng)化方法,捕獲和回放則是一種黑盒測試的自動(dòng)化方法。

捕獲是將用戶每一步操作都記錄下來。這種記錄的方式有兩種:程序用戶界面的像素坐標(biāo)或程序顯示對象(窗口、按鈕、滾動(dòng)條等)的位置,以及相對應(yīng)的操作、狀態(tài)變化或是屬性變化。所有的記錄轉(zhuǎn)換為一種腳本語言所描述的過程,以模擬用戶的操作。

3.腳本技術(shù)

腳本是一個(gè)特定測試的一系列指令,這些指令可以被自動(dòng)化測試工具執(zhí)行。腳本可以通過錄制測試的操作產(chǎn)生,然后再做修改,這樣可以減少腳本編程的工作量。當(dāng)然,也可以直接用腳本語言編寫腳本。

腳本的產(chǎn)生有兩種方式:一種是通過錄制測試的操作產(chǎn)生;另一種是直接用腳本語言編寫。

腳本技術(shù)可以分為以下幾類:

(1)線性腳本:是錄制手工執(zhí)行的測試用例得到的腳本。

(2)結(jié)構(gòu)化腳本:類似于結(jié)構(gòu)化程序設(shè)計(jì),具有各種邏輯結(jié)構(gòu)(順序、分支、循環(huán)),而且具有函數(shù)調(diào)用功能。

(3)共享腳本:是指某個(gè)腳本可被多個(gè)測試用例使用,即腳本語言允許一個(gè)腳本調(diào)用另一個(gè)腳本。

(4)數(shù)據(jù)驅(qū)動(dòng)腳本:是指將測試輸入存儲(chǔ)在獨(dú)立的數(shù)據(jù)文件中。

(5)關(guān)鍵字驅(qū)動(dòng)腳本:是數(shù)據(jù)驅(qū)動(dòng)腳本的邏輯擴(kuò)展。

4.虛擬用戶技術(shù)

虛擬用戶技術(shù)通過模擬真實(shí)用戶的行為來對被測程序(ApplicationUnderTest,AUT)施加負(fù)載,以測量AUT的性能指標(biāo)值,如事務(wù)的響應(yīng)時(shí)間、服務(wù)器的吞吐量等。

虛擬用戶技術(shù)以真實(shí)用戶的“商務(wù)處理”(用戶為完成一個(gè)商業(yè)業(yè)務(wù)而執(zhí)行的一系列操作)作為負(fù)載的基本組成單位,用“虛擬用戶”(模擬用戶行為的測試腳本)來模擬真實(shí)用戶。

8.6軟件自動(dòng)化測試工具

8.6.1測試工具分類1.按照測試方法分類1)白盒測試工具白盒測試工具一般是針對代碼進(jìn)行測試,常用的白盒測試工具集有Parasoft和Compuware,見表8-1和表8-2。測試中發(fā)現(xiàn)的缺陷可以定位到代碼級,根據(jù)測試工具原理的不同,又可以分為靜態(tài)測試工具和動(dòng)態(tài)測試工具。

(1)靜態(tài)測試工具:直接對代碼進(jìn)行分析,不需要運(yùn)行代碼,也不需要對代碼編譯鏈接,生成可執(zhí)行文件。

(2)動(dòng)態(tài)測試工具:動(dòng)態(tài)測試工具與靜態(tài)測試工具不同,它一般采用“插樁”的方式,向代碼的可執(zhí)行文件中插入一些監(jiān)測代碼,用來統(tǒng)計(jì)程序運(yùn)行時(shí)的數(shù)據(jù)。

2)黑盒測試工具

黑盒測試工具包括功能測試工具和性能測試工具。黑盒測試工具的一般原理是利用腳本的錄制(Record)/回放(Playback),模擬用戶的操作,然后將被測系統(tǒng)的輸出記錄下來同預(yù)先給定的標(biāo)準(zhǔn)結(jié)果比較。

黑盒測試工具的代表有Rational公司的TeamTest、Compuware公司的QACenter。常見的黑盒功能測試工具如表8-3所示。

2.按照測試的對象和目的分類

軟件測試工具按照測試的對象和目的大致可分為單元測試工具、功能測試工具、負(fù)載測試工具、性能測試工具、Web測試工具、數(shù)據(jù)庫測試工具、回歸測試工具、嵌入式測試工具、頁面鏈接測試工具、測試設(shè)計(jì)與開發(fā)工具、測試執(zhí)行和評估工具、測試管理工具等。

3.按測試工具的用途分類

(1)測試管理工具用于管理測試的整個(gè)工作過程以及過程中產(chǎn)生的各種相關(guān)文檔、數(shù)據(jù)、記錄和報(bào)告等。常用的測試管理工具有TestDirector和TestManager等。其中TestDirector的使用率最高。

(2)功能測試工具是指用于自動(dòng)化執(zhí)行功能測試腳本的工具,一般采用基于錄制回放的機(jī)制。

(3)性能測試工具通常指那些用來支持壓力、負(fù)載測試,能夠用來錄制和生成腳本、設(shè)置和部署場景、產(chǎn)生并發(fā)用戶和向系統(tǒng)施加持續(xù)壓力的工具。

(4)單元測試工具一般指用于單元測試的測試框架,這些測試工具提供單元測試的一些接口,管理單元測試的執(zhí)行。常見的單元測試工具有XUnit系列、MSTest等。

(5)測試用例設(shè)計(jì)工具指用于輔助測試用例的設(shè)計(jì)或測試數(shù)據(jù)生成的工具,一般常用的有TD。

4.按測試工具的收費(fèi)方式分類

1)商業(yè)測試工具

商業(yè)測試工具的特點(diǎn)是需要花錢購買,但是會(huì)相對成熟和穩(wěn)定,并且有一定的售后服務(wù)和技術(shù)支持。

商業(yè)測試工具主要集中在GUI功能測試和性能測試方面,目前流行的基于GUI的功能自動(dòng)化測試工具有Robot、QTP、TestComplete等。

2)開源測試工具

開源軟件是指軟件的源代碼是公開發(fā)布的,通常是由自愿者開發(fā)和維護(hù)的軟件。開源測試工具是測試工具的一個(gè)重要分支。

3)自主開發(fā)測試工具

目前,很多軟件測試組織其實(shí)已經(jīng)具備了自己動(dòng)手開發(fā)測試工具的條件。

市場對于測試工具的接受程度在不斷提高,人們對測試工具的認(rèn)識(shí)不斷加強(qiáng)和深入,對測試工具原理的理解不斷提高。

8.6.2目前市場上主流的測試工具

1.MI公司的產(chǎn)品

1)?LoadRunner

LoadRunner是一種預(yù)測系統(tǒng)行為和性能的負(fù)載測試工具。

LoadRunner主要功能如下:

(1)輕松創(chuàng)建虛擬用戶。

(2)使用VirtualUserGenerator,能簡便地創(chuàng)立起系統(tǒng)負(fù)載。

(3)創(chuàng)建真實(shí)的負(fù)載。

(4)定位性能問題。

(5)分析結(jié)果以精確定位問題所在。

2)?WinRunner

2006年以前,MercuryInteractive公司的WinRunner是一種企業(yè)級的功能測試工具,用于檢測應(yīng)用程序是否能夠達(dá)到預(yù)期的功能及正常運(yùn)行。

WinRunner的特點(diǎn)在于:與傳統(tǒng)的手工測試相比,它能快速、批量地完成功能點(diǎn)測試;能針對相同測試腳本,執(zhí)行相同的動(dòng)作,從而消除人工測試所帶來的理解上的誤差;此外,它還能重復(fù)執(zhí)行相同動(dòng)作,因此測試工作中最枯燥的部分可交由機(jī)器完成;它支持程序風(fēng)格的測試腳本,一個(gè)高素質(zhì)的測試工程師能借助它完成流程極為復(fù)雜的測試,通過使用通配符、宏、條件語句、循環(huán)語句等,還能重用測試腳本;它針對于大多數(shù)編程語言和Windows技術(shù),提供了較好的集成、支持環(huán)境,對基于Windows平臺(tái)的應(yīng)用程序?qū)嵤┕δ軠y試帶來了極大的便利。

其主要功能包括:

(1)輕松創(chuàng)建測試;

(2)插入檢查點(diǎn);

(3)檢驗(yàn)數(shù)據(jù);

(4)增強(qiáng)測試;

(5)運(yùn)行測試;

(6)分析結(jié)果;

(7)維護(hù)測試。

3)?TestDirector

TestDirector是全球最大的軟件測試工具提供商MercuryInteractive公司生產(chǎn)的企業(yè)級測試管理工具,也是業(yè)界第一個(gè)基于Web的測試管理系統(tǒng),它可以在公司內(nèi)部或外部

進(jìn)行全球范圍內(nèi)測試的管理。通過在一個(gè)整體的應(yīng)用系統(tǒng)中集成測試管理的各個(gè)部分,包括需求管理、測試計(jì)劃、測試執(zhí)行以及錯(cuò)誤跟蹤等功能,TestDirector極大地加速了測試

過程。

TestDirector將測試過程流水化,從測試需求管理到測試計(jì)劃、測試日程安排、測試執(zhí)行,到出錯(cuò)后的錯(cuò)誤跟蹤,僅在一個(gè)基于瀏覽器的應(yīng)用中便可完成,而不需要每個(gè)客戶端都安裝一套客戶端程序。

(1)需求管理。

(2)測試計(jì)劃的制訂。

(3)人工與自動(dòng)測試的結(jié)合。

(4)安排和執(zhí)行測試。

(5)缺陷管理。

(6)圖形化和報(bào)表輸出。

4)?QTP

QTP(QuickTestProfessional)是一種自動(dòng)測試工具。使用QTP的目的是用它來執(zhí)行重復(fù)的手動(dòng)測試,主要是用于回歸測試和測試同一軟件的新版本。因此在測試前要考慮好如何對應(yīng)用程序進(jìn)行測試,例如要測試哪些功能、操作步驟、輸入數(shù)據(jù)和期望的輸出數(shù)據(jù)等。

2.IBMRational公司的產(chǎn)品

1)?RationalTestmanager

RationalTestManager是一個(gè)開放的可擴(kuò)展的架構(gòu),它統(tǒng)一了所有的工具、制造(Artifacts

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論