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

下載本文檔

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

文檔簡介

第7章測試項目管理7.1測試項目管理概述7.2測試文檔7.3軟件測試計劃7.4測試的組織與人員管理7.5軟件測試過程管理7.6軟件測試風險管理7.7軟件測試成本管理7.8軟件測試配置管理

7.1測試項目管理概述

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

測試項目一般具有如下一些基本特性:

1)獨特性

2)組織性

3)生命周期

4)資源消耗特性

5)目標沖突性

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

2.測試項目管理

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

測試項目管理有以下基本特征:

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

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

①有了“項目組織”的概念,項目管理的突出特點是以項目本身作為一個組織單元,圍繞項目來組織資源;

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

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

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

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

7.1.2測試項目的范圍管理

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

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

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

7.2測試文檔

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

7.2.1測試文檔的作用

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

(1)促進項目組成員之間的交流溝通。

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

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

(4)檢驗測試資源。

(5)明確任務(wù)的風險。

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

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

7.2.2主要軟件測試文檔

1.軟件測試文檔

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

2.軟件測試計劃文檔

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

圖7.2軟件測試計劃文檔模板

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

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

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

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

5.測試規(guī)程

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

6.測試日志

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

7.軟件缺陷報告

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

圖7.6軟件缺陷報告模板

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

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

7.3軟件測試計劃

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

2.促進項目參加人員彼此的溝通

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

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

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

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

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

7.3.2制訂測試計劃的原則

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

2.保持測試計劃的靈活性

3.保持測試計劃簡潔和易讀

4.盡量爭取多渠道評審測試計劃

5.計算測試計劃的投入

7.3.3制訂測試計劃時面對的問題

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

2.缺乏測試工具

3.培訓不夠

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

5.缺乏用戶的參與

6.測試時間不足

7.過分依賴測試人員

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

9.不得不說“不”

7.3.4制訂測試計劃

1.測試計劃標識符

2.簡要介紹

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

3.測試項目

測試項目包括所測試軟件的名稱及版本,需要列出所有測試單項、外部條件對測試特性的影響和軟件缺陷報告的機制等,具體要點如下:

(1)功能測試。

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

(3)整體測試。

IEEE標準中指出,可以參考下面的文檔來完成測試項目:

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

(2)用戶指南;

(3)操作指南;

(4)安裝指南。

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

4.測試對象

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

5.不需要測試的對象

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

6.測試方法(策略)

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

7.測試項通過/失敗的標準

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

隨著測試等級的不同和測試組織的不同,所采用的確切標準也會不同,下面是一些常見指標:

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

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

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

(4)文檔的完整性。

(5)是否達到性能標準。

8.中斷測試和恢復測試的判斷準則

常用的判斷測試中斷的標準如下:

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

(2)大量的缺陷;

(3)嚴重的缺陷;

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

(5)資源短缺。

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

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

10.測試任務(wù)

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

11.測試所需的資源

測試所需的資源如下:

(1)人員;

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

(3)辦公或?qū)嶒灴臻g;

(4)軟件;

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

(6)特殊測試工具。

12.測試人員的工作職責

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

13.人員安排與培訓需求

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

14.進度表

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

作為測試計劃的一部分,完成測試進度計劃安排,可以為項目管理員提供信息,以便更好地安排整個項目的進度。

15.潛在的問題和風險

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

16.審批

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

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

7.3.5如何做好測試計劃

1.明確測試的目標,增強測試計劃的實用性

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

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

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

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

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

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

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

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

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

3.采用評審和更新機制,保證測試計劃滿足實際需求

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

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

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

5.測試階段的劃分

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

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

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

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

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

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

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

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

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

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

(4)計算回歸測試包含的時間:

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

7.變更控制

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

變更來源于以下幾個方面:

(1)項目計劃的變更。

(2)需求的變更。

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

(4)測試資源的變更。

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

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

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

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

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

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

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

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

(1)盡快落實責任。

(2)減少接口

(3)責任明確、均衡。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

③提出問題時不要將其復雜化。

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

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

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

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

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

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

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

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

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

軟件測試員找出的軟件缺陷有時會被認為不重要、不用修復,這時要善于表達觀點,表明軟件缺陷必須修復,并通過實際演示來證明自己的觀點。

7.5軟件測試過程管理

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

7.5.2測試項目的過程管理

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

1.測試項目啟動

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

2.制訂測試計劃

確定測試范圍、測試策略和測試方法,以及對風險、日程表、資源等進行分析和估計。

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

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

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

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

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

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

7.6軟件測試風險管理

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

2.軟件風險分類

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

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

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

(2)對產(chǎn)品認識的風險:對產(chǎn)品質(zhì)量需求或產(chǎn)品特性理解不準確,造成測試范圍分析誤差,出現(xiàn)測試盲區(qū)或驗證標準錯誤。

(3)質(zhì)量目標風險:質(zhì)量標準不是很清晰,如適用性測試、易用性測試等。

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

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

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

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

3.軟件風險分析

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

風險分析包括兩個部分。

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

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

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

(1)風險標識(ID):表示風險事件的唯一標識;

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

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

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

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

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

4.軟件測試風險

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

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

1)風險評估

風險評估是在風險識別的基礎(chǔ)上,對識別出來的風險進行評估,主要從下面四個方面入手:

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

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

(3)確定風險評估的正確性,要對每個風險的表現(xiàn)、范圍、時間做出盡量準確的判斷;

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

2)風險控制

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

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

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

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

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

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

7.7軟件測試成本管理

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

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

1.測試費用有效性

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

2.測試成本控制

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

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

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

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

3.質(zhì)量成本

企業(yè)為了獲取利潤,需花費大量的資金進行測試。在質(zhì)量方面的投資會產(chǎn)生利潤。測試是一種帶有風險性的管理活動,可以使企業(yè)減少因為軟件產(chǎn)品質(zhì)量低劣而花費的不必要的成本。

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

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

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

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

4.缺陷探測率

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

7.7.3軟件測試項目成本管理的基本原則和措施

1.軟件測試項目成本的控制原則

1)堅持成本最低化原則

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

2)堅持全面成本控制原則

全面成本管理是整個測試團隊、全體測試人員和測試全過程的管理,亦稱“三全”管理。

3)堅持動態(tài)控制原則

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

4)堅持項目目標管理原則

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

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

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

2.軟件測試項目成本控制措施

1)組織措施

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

2)技術(shù)措施

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

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

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

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

3)經(jīng)濟措施

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

一是人工費控制管理;

二是材料費控制管理;

三是軟件測試工具費控制管理。

7.8軟件測試配置管理

一般來說,軟件測試配置管理包括5個最基本的活動。

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

2.版本控制

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

3.變更控制

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

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

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

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

5.配置審計

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

其主要任務(wù)是:

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

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

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

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

(5)檢查每項配置項更改是否按配置更改規(guī)程或有關(guān)標準進行;

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

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

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

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

8.2軟件自動化測試的概念

軟件自動化測試是一項讓計算機代替測試人員進行軟件測試的技術(shù),是指編寫軟件去測試其他軟件。自動化測試的目標是對被測試系統(tǒng)進行自動測試。總的來說,自動化測試的目標是通過較少的開銷,得到更徹底的測試,并提高產(chǎn)品的質(zhì)量。

軟件自動化測試有如下特點:

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

(2)可以執(zhí)行一些手工測試困難或不可能進行的測試;

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

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

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

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

8.3軟件自動化測試的意義

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

1.手工測試的局限性

手工測試是不可替代的,因為人具有很強的判斷能力。

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

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

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

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

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

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

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

2.軟件自動化測試所帶來的好處

自動化測試有很強的優(yōu)勢,即借助計算機的計算能力可以重復、不知疲倦地運行。

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

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

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

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

(1)需求定義的改進;

(2)性能測試的改進;

(3)負載/壓力測試的改進;

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

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

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

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

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

(1)改進多平臺兼容性測試;

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

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

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

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

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

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

3)減少測試工作量并加快測試進度

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

3.自動化測試的局限性

1)自動化測試不能取代手工測試

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

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

(2)進度非常緊張的項目。

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

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

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

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

自動化測試主要是進行重復測試。一般情況下,自動化測試進行的工作是以前進行過的,因此被測試軟件在自動化測試中暴露的故障要少得多。

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

3)自動化測試不能提高測試的有效性

自動化測試僅用于提高測試的效率,即減少測試的開銷和時間。

4)自動化測試不具有想象力

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

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

8.4開展自動化測試的方法

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

2.自動化測試介入的時機

過早的自動化測試會帶來維護成本的增加,因為早期的程序界面一般不夠穩(wěn)定,處于頻繁更改的狀態(tài),這時候進行自動化測試往往得不償失,疲于應(yīng)付“動蕩”的界面。

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

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

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

4.自動化測試的成本

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

8.5軟件自動化測試的原理和方法

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

2.捕獲和回放

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

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

3.腳本技術(shù)

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

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

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

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

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

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

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

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

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

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

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

8.6軟件自動化測試工具

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

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

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

2)黑盒測試工具

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

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

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

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

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

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

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

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

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

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

4.按測試工具的收費方式分類

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

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

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

2)開源測試工具

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

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

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

市場對于測試工具的接受程度在不斷提高,人們對測試工具的認識不斷加強和深入,對測試工具原理的理解不斷提高。

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

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

1)?LoadRunner

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

LoadRunner主要功能如下:

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

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

(3)創(chuàng)建真實的負載。

(4)定位性能問題。

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

2)?WinRunner

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

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

其主要功能包括:

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

(2)插入檢查點;

(3)檢驗數(shù)據(jù);

(4)增強測試;

(5)運行測試;

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

(7)維護測試。

3)?TestDirector

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

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

過程。

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

(1)需求管理。

(2)測試計劃的制訂。

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

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

(5)缺陷管理。

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

4)?QTP

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

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

1)?RationalTestmanager

RationalTestManager是一個開放的可擴展的架構(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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論