1 軟件測(cè)試技術(shù)與測(cè)試實(shí)訓(xùn)教程講座(1 ) 第1章 軟件測(cè)試基礎(chǔ)知識(shí)概述 v1 6學(xué)時(shí)_第1頁
已閱讀1頁,還剩79頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件測(cè)試技術(shù)與測(cè)試實(shí)訓(xùn)教程黎連業(yè) 王華 李龍 黎照北京:機(jī)械工業(yè)出版社 2012.05,,軟件測(cè)試課程是計(jì)算機(jī)軟件專業(yè)、計(jì)算機(jī)應(yīng)用專業(yè)、計(jì)算機(jī)信息管理專業(yè)高年級(jí)學(xué)生重要的一門專業(yè)課。是計(jì)算機(jī)軟件開發(fā)與測(cè)試、軟件測(cè)試專業(yè)高年級(jí)學(xué)生必修的一門專業(yè)課。軟件測(cè)試課程是一門實(shí)踐性、應(yīng)用性很強(qiáng)的課程,主要任務(wù)是使學(xué)生掌握目的是使學(xué)生在學(xué)習(xí)“軟件工程”、“程序設(shè)計(jì)語言”和“軟件

2、測(cè)試與測(cè)試技術(shù)”等課程的基礎(chǔ)上,通過實(shí)訓(xùn),從而進(jìn)一步鞏固和消化所學(xué)的專業(yè)知識(shí)、熟悉軟件測(cè)試的崗位工作職責(zé)、軟件測(cè)試的方法和原則、規(guī)范以及管理等技能,掌握軟件測(cè)試工作流程、測(cè)試技能。培養(yǎng)學(xué)生的實(shí)際動(dòng)手操作能力和專業(yè)實(shí)踐能力,為就業(yè)打下扎實(shí)的基礎(chǔ)。,,《軟件測(cè)試技術(shù)與測(cè)試實(shí)訓(xùn)教程》一書分別從理論、實(shí)踐的角度介紹了軟件測(cè)試與測(cè)試技術(shù)。介紹的是當(dāng)前軟件測(cè)試行業(yè)所使用的技術(shù),他基于軟件測(cè)試和測(cè)試技術(shù)所需要的知識(shí)而展開的。本書所敘述的內(nèi)容是新鮮的,

3、基本上反映了當(dāng)前軟件測(cè)試技術(shù),是作者測(cè)試的總結(jié)。作者認(rèn)為:測(cè)試人員在掌握軟件測(cè)試的基本概念、技術(shù)基礎(chǔ)上,測(cè)試大綱、測(cè)試計(jì)劃、測(cè)試用例設(shè)計(jì)、測(cè)試文檔寫作是重要的,是具有獨(dú)立承擔(dān)實(shí)施測(cè)試項(xiàng)目能力的基礎(chǔ)。本書分四部分:第一部分 軟件測(cè)試的基本知識(shí)。詳細(xì)介紹:軟件測(cè)試的基本知識(shí); 軟件測(cè)試的質(zhì)量要求;自動(dòng)化測(cè)試技術(shù);軟件測(cè)試工作概述和測(cè)試工作指南。第二部分 軟件測(cè)試的核心技術(shù)。詳細(xì)介紹:白盒測(cè)試的實(shí)用技術(shù);黑盒測(cè)試技術(shù);測(cè)試用例設(shè)計(jì)方法。

4、第三部分 軟件測(cè)試的實(shí)用技術(shù)與測(cè)試實(shí)訓(xùn)。詳細(xì)介紹: 對(duì)本書測(cè)試模型的介紹;數(shù)值計(jì)算程序測(cè)試的實(shí)訓(xùn);單元測(cè)試和測(cè)試實(shí)訓(xùn);功能測(cè)試和功能測(cè)試實(shí)訓(xùn);性能測(cè)試和性能測(cè)試實(shí)訓(xùn);集成測(cè)試的實(shí)用技術(shù);系統(tǒng)測(cè)試的實(shí)用技術(shù);驗(yàn)收測(cè)試的實(shí)用技術(shù);回歸測(cè)試的實(shí)用技術(shù);軟件的其他測(cè)試技術(shù);配置測(cè)試的實(shí)用技術(shù);軟件缺陷測(cè)試和測(cè)試評(píng)估;軟件測(cè)試管理。第四部分 軟件測(cè)試文檔寫作與測(cè)試所需的常用模板。詳細(xì)介紹:測(cè)試文檔的寫作;軟件測(cè)試所需的常用模板。,,掌握軟件測(cè)

5、試的基本概念;掌握軟件測(cè)試相關(guān)技術(shù)、工具、方法;掌握關(guān)鍵實(shí)施技巧的技術(shù)、方法;具有獨(dú)立承擔(dān)實(shí)施測(cè)試項(xiàng)目的能力。軟件開發(fā)人員可快速加入到測(cè)試行業(yè), 成為一名合格的軟件測(cè)試工程師。 內(nèi)容上系統(tǒng)全面、重點(diǎn)突出;敘述由淺入深、循序漸進(jìn);概念上清楚易懂;實(shí)用性強(qiáng)。測(cè)試用例、實(shí)訓(xùn)部分、測(cè)試文檔部分和管理部分的內(nèi)容,方便讀者,直接參考使用。作者認(rèn)為:這是一本國內(nèi)外非常好的、實(shí)用的教學(xué)書籍。,第一部分 軟件測(cè)試的基本知識(shí),第1講:第1章

6、 軟件測(cè)試基礎(chǔ)知識(shí)概述 軟件測(cè)試是信息系統(tǒng)開發(fā)中不可缺少的一個(gè)重要步驟,隨著軟件變得日益復(fù)雜,軟件測(cè)試也變得越來越重要。 軟件的基礎(chǔ)知識(shí),軟件測(cè)試的概念(方法、目標(biāo)和任務(wù)),軟件測(cè)試的術(shù)語定義是軟件測(cè)試的基礎(chǔ)。本章重點(diǎn)討論以下內(nèi)容:★ 軟件的基本知識(shí)概述;★ 軟件測(cè)試的概念、方法和任務(wù);★ 軟件測(cè)試的流程;★ 軟件測(cè)試的組織結(jié)構(gòu)和人員的要求;★ 軟件測(cè)試的前景;★ 軟件測(cè)試的術(shù)語定義。,,1.1 軟件的基本

7、知識(shí)概述 軟件測(cè)試的對(duì)象就是軟件,為了進(jìn)行軟件測(cè)試,我們應(yīng)了解什么是軟件?它的基本知識(shí)。1.1.1 軟件的概念、特點(diǎn)和分類1. 軟件的概念軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的一部分,它是包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。其中,程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā),維護(hù)和使用有關(guān)的圖文材料。,,2. 軟件的特點(diǎn) 軟件具有

8、8個(gè)特點(diǎn):(1) 軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體。因而它具有抽象性。(2) 軟件的生產(chǎn)與硬件不同,它沒有明顯的制造過程。對(duì)軟件的質(zhì)量控制,必須著重在軟件開發(fā)方面下功夫。(3) 在軟件的運(yùn)行和使用期間,沒有硬件那樣的機(jī)械磨損,老化問題。然而它存在退化問題,必須要對(duì)其進(jìn)行多次的修改與維護(hù)。(4) 軟件的開發(fā)和運(yùn)行常常受到計(jì)算機(jī)系統(tǒng)的制約,對(duì)計(jì)算機(jī)系統(tǒng)有著不同程度的依賴性。為了解除這種依賴性,在軟件開發(fā)中提出了軟件移植的問題

9、。(5) 軟件的開發(fā)至今尚未擺脫人工的開發(fā)方式。(6) 軟件本身是復(fù)雜的。軟件的復(fù)雜性可能來自它所反映的實(shí)際問題的復(fù)雜性,也可能來自程序邏輯結(jié)構(gòu)的復(fù)雜性。(7) 軟件成本相當(dāng)昂貴。軟件的研制工作需要投入大量的、復(fù)雜的、高強(qiáng)度的腦力勞動(dòng),它的成本是比較高的。(8) 相當(dāng)多的軟件工作涉及到社會(huì)因素。許多軟件的開發(fā)和運(yùn)行涉及機(jī)構(gòu)、體制及管理方式等問題,它直接影響到項(xiàng)目的成敗。,,3.軟件的分類方法 軟件的分類方法有如下 4種:

10、(1)按軟件的功能分類(2)按軟件服務(wù)對(duì)象的范圍分類(3)按軟件規(guī)模分類(4)按軟件工作方式分類,1.1.2 軟件的內(nèi)容、目標(biāo)和問題,軟件工程研究的主要內(nèi)容是軟件開發(fā)技術(shù)和軟件開發(fā)管理兩個(gè)方面。在軟件開發(fā)技術(shù)中,主要研究軟件工程方法、軟件工程過程、軟件開發(fā)工具和環(huán)境。其中:(1)軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù)。它包括了多方面的任務(wù),如項(xiàng)目計(jì)劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計(jì)、算法的設(shè)計(jì)、編碼、

11、測(cè)試以及維護(hù)等。軟件工程方法常采用某種特殊的語言或圖形的表達(dá)方法,及一套質(zhì)量保證標(biāo)準(zhǔn)。,,(2)軟件工程過程是將軟件工程的方法和工具綜合起來以達(dá)到合理、及時(shí)地進(jìn)行計(jì)算機(jī)軟件開發(fā)的目的。過程定義了方法使用的順序、要求交付的文檔資料,為保證質(zhì)量和協(xié)調(diào)變更所需要的管理。(3)軟件開發(fā)工具和環(huán)境為軟件工程方法提供了自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境。目前,已經(jīng)開發(fā)出了許多軟件工具,已經(jīng)能夠支持上述的軟件工程方法。而且已經(jīng)有人把諸多軟件工具集成起來,

12、使得一種工具產(chǎn)生的信息可以為其他的工具所使用,這樣建立起一種稱之為計(jì)算機(jī)輔助軟件工程(CASE)的軟件開發(fā)支撐系統(tǒng)。CASE將各種軟件工具、開發(fā)機(jī)器和一個(gè)存放開發(fā)過程信息的工程數(shù)據(jù)庫組合起來形成一個(gè)軟件工程環(huán)境。,,軟件工程項(xiàng)目的目標(biāo) 軟件工程項(xiàng)目是一門工程性學(xué)科,目的是成功地建造一個(gè)大型軟件系統(tǒng),所謂成功是要達(dá)到以下幾個(gè)目標(biāo):★ 付出較低的開發(fā)成本;★ 達(dá)到要求的軟件功能;★ 取得較好的軟件性能;★ 開發(fā)的軟件易于移植;

13、★ 需要較低的維護(hù)費(fèi)用;★ 能按時(shí)完成開發(fā)任務(wù),及時(shí)交付使用;★ 開發(fā)的軟件可靠性高。,,在實(shí)際開發(fā)的具體項(xiàng)目中,要想讓以上幾個(gè)目標(biāo)都達(dá)到理想的程度往往是非常困難的,而且上述目標(biāo)很可能是互相沖突的,若只降低開發(fā)成本,很可能同時(shí)也降低了軟件的可靠性。另一方面,如果過于追求提高軟件的性能,可能造成開發(fā)出的軟件對(duì)硬件有較大的依賴,從而直接影響到軟件的可移植性。,,軟件工程項(xiàng)目之間的相互關(guān)系如圖1-1 所示。,,★ 易于維護(hù)和高可靠性之間

14、,低開發(fā)成本與按時(shí)交付之間為互補(bǔ)關(guān)系;★ 低開發(fā)成本和易于維護(hù)、低開發(fā)成本和高可靠性、低開發(fā)成本和高性能、高可靠性和高性能、高性能和按時(shí)交付之間為互斥關(guān)系。,,軟件工程面臨的問題 軟件工程面臨的問題有:軟件費(fèi)用、軟件可靠性、軟件可維護(hù)性、軟件生產(chǎn)率和軟件重用等。軟件費(fèi)用 軟件是知識(shí)高度密集的技術(shù)的綜合產(chǎn)物,軟件人力資源不能適應(yīng)軟件迅速增長的社會(huì)要求;因此,軟件費(fèi)用上升是必然趨勢(shì)。軟件可靠性 軟件

15、可靠性是指軟件系統(tǒng)能否在既定的環(huán)境條件下運(yùn)行并實(shí)現(xiàn)所期望的結(jié)果。在軟件開發(fā)中,通常要花費(fèi)40%的代價(jià)進(jìn)行測(cè)試和排錯(cuò),為了提高軟件可靠性,就要付出足夠的代價(jià)。軟件維護(hù) 軟件維護(hù)費(fèi)用占整個(gè)軟件系統(tǒng)費(fèi)用的2/3,而軟件開發(fā)費(fèi)用只占整個(gè)軟件系統(tǒng)費(fèi)用的1/3。這是因?yàn)橐呀?jīng)運(yùn)行的軟件還需排除隱含的錯(cuò)誤,新增加的功能要加入進(jìn)去,維護(hù)工作又是非常困難的,效率較低。因此,如何提高軟件的可維護(hù)性,減少軟件維護(hù)的工作量,也是軟件工程面臨的主要問題

16、之一。軟件生產(chǎn)率 計(jì)算機(jī)的廣泛應(yīng)用使得軟件的需求量大幅度上升,而軟件的生產(chǎn)又處于手工開發(fā)的狀態(tài),軟件生產(chǎn)率低下,使得軟件開發(fā)人員嚴(yán)重不足,所以,如何提高軟件生產(chǎn)率是軟件工程又一重要問題。軟件重用 提高軟件的重用性,對(duì)于提高軟件生產(chǎn)率、降低軟件成本有重要意義。當(dāng)前的軟件開發(fā)存在著大量重復(fù)的勞動(dòng),耗費(fèi)了不少的人力資源。軟件重用有各種級(jí)別,軟件規(guī)格說明、軟件模塊、軟件代碼、軟件文檔等都可以是軟件重用的單位。軟件重用

17、是軟件工程中一個(gè)重要研究課題。,1.1.3 軟件的生存周期,軟件的生存周期是指一個(gè)軟件從提出開發(fā)要求開始直到該軟件報(bào)廢為止的整個(gè)時(shí)期,軟件生存周期概念的出現(xiàn)可以幫助我們較為全面地認(rèn)識(shí)軟件開發(fā)。在1998年制訂和公布的國家標(biāo)準(zhǔn)《GB8566-88計(jì)算機(jī)軟件開發(fā)規(guī)范》中,將軟件生存周期劃分為八個(gè)階段,即:可行性研究和計(jì)劃、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)、組裝測(cè)試、確認(rèn)測(cè)試、使用和維護(hù)。該標(biāo)準(zhǔn)為每個(gè)階段規(guī)定了任務(wù)、實(shí)施步驟、實(shí)施要求以及完

18、成的標(biāo)志。 20世紀(jì)90年代初提出了軟件工程過程的概念。軟件工程過程規(guī)定了獲取、供應(yīng)、開發(fā)、操作和維護(hù)軟件時(shí),要實(shí)施的過程、活動(dòng)和任務(wù)。其目的是為各種人員提供一個(gè)公共的框架,以便用相同的語言進(jìn)行交流。這框架由幾個(gè)重要的過程組成,這些主要過程含有用來獲取、供應(yīng)、開發(fā)、操作和維護(hù)軟件所用的基本的、一致的要求。該框架還有用來控制和管理軟件過程。各種組織和開發(fā)機(jī)構(gòu)可以根據(jù)具體情況進(jìn)行選擇和剪裁??稍谝粋€(gè)機(jī)構(gòu)的內(nèi)部或外部實(shí)施。,,1995年國際

19、標(biāo)準(zhǔn)化組織在此基礎(chǔ)上對(duì)生存期過程作了調(diào)整,公布了新的國際標(biāo)準(zhǔn),即《ISO/IEC 12207信息技術(shù)----軟件生存期過程》。該標(biāo)準(zhǔn)全面、系統(tǒng)地闡述了軟件生存期的過程、活動(dòng)和任務(wù)。標(biāo)準(zhǔn)定義的17個(gè)過程分別屬于:主要過程,支持過程和組織過程。我們可以通過圖1-2 看出它的結(jié)構(gòu)。,,,,軟件生存期過程的主要活動(dòng)和任務(wù)描述如表1-1所示。 請(qǐng)參見機(jī)械工業(yè)出版社《軟件測(cè)試技術(shù)與測(cè)試實(shí)訓(xùn)教程》( 2012.01)第1版第1 章表1-1的內(nèi)容

20、,,在表1-1中給出了17個(gè)過程的主要活動(dòng)和任務(wù)的描述。以下對(duì)該標(biāo)準(zhǔn)提出的軟件生存期過程給予簡(jiǎn)要說明。 主要生存期過程(primary process)主要生存期包括5個(gè)過程,這些過程供各主要當(dāng)事方(如需方、供方、開發(fā)者、運(yùn)行者和維護(hù)者)在參與或完成軟件產(chǎn)品開發(fā)、運(yùn)行或維護(hù)時(shí)使用,它們是:獲取過程:需方獲取系統(tǒng)、軟件產(chǎn)品或軟件服務(wù)的活動(dòng)。供應(yīng)過程:供方向需方提供系統(tǒng)、軟件產(chǎn)品或軟件服務(wù)的活動(dòng)。開發(fā)過程:開發(fā)者定義并開發(fā)軟

21、件產(chǎn)品的活動(dòng)。運(yùn)行過程:運(yùn)行者在規(guī)定的環(huán)境中為其用戶提供計(jì)算機(jī)系統(tǒng)服務(wù)的活動(dòng)。維護(hù)過程:維護(hù)者提供維護(hù)軟件產(chǎn)品服務(wù)的活動(dòng)。,,支持生存期過程(supporting process) 支持生存期包括8個(gè)過程,其每個(gè)過程均有明確的目的支持其他過程,幫助軟件項(xiàng)目獲得成功及良好的產(chǎn)品質(zhì)量。它們是:文檔編制過程:記錄生存期過程中產(chǎn)生的信息所需的活動(dòng)。配置管理過程:實(shí)施配置管理活動(dòng)。質(zhì)量保證過程:為確保軟件產(chǎn)品和軟件過程符合

22、規(guī)定的需求并能堅(jiān)持既定計(jì)劃所需的活動(dòng)。聯(lián)合評(píng)審、審核、驗(yàn)證與確認(rèn)可作為質(zhì)量保證技術(shù)使用。驗(yàn)證過程:為確保一個(gè)活動(dòng)的產(chǎn)品滿足前一活動(dòng)對(duì)它的要求和條件的活動(dòng)。確認(rèn)過程:為確保最終產(chǎn)品滿足預(yù)期使用要求的活動(dòng)。聯(lián)合評(píng)審過程:評(píng)審方與被評(píng)審方共同對(duì)某一活動(dòng)的狀態(tài)和產(chǎn)品進(jìn)行評(píng)審的活動(dòng)。審核過程:審核項(xiàng)目是否按要求、計(jì)劃、合同完成的活動(dòng)。問題解決過程:分析和解決在開發(fā)、運(yùn)行、維護(hù)或其他過程中出現(xiàn)的總是不論其性質(zhì)和來源如何的活動(dòng)。,,組織生存

23、期過程(organizational process) 組織生存期包括4個(gè)過程,這些過程被某個(gè)機(jī)構(gòu)用來建立和實(shí)現(xiàn)與生存期過程相關(guān)的基礎(chǔ)結(jié)構(gòu),甚至人事制度,并使其不斷得到改進(jìn)。它們是:管理過程:規(guī)定生存期過程中的基本管理活動(dòng),包括項(xiàng)目管理?;A(chǔ)設(shè)施過程:建立生存期過程基礎(chǔ)結(jié)構(gòu)的基本活動(dòng)。改進(jìn)過程:某一機(jī)構(gòu)(需用、供方、開發(fā)者、運(yùn)行者、維護(hù)者或其他過程的管理者)為建立、測(cè)量、控制和改進(jìn)其生存期過程需開展的基本活動(dòng)。培訓(xùn)

24、過程:對(duì)人員進(jìn)行適當(dāng)培訓(xùn)所需的活動(dòng)。,1.2 軟件測(cè)試的概念、方法和任務(wù),1.2.1 軟件測(cè)試的概念軟件測(cè)試是軟件工程中的一個(gè)環(huán)節(jié),是開發(fā)項(xiàng)目整體的一部分。軟件測(cè)試是有計(jì)劃有組織的,是保證軟件質(zhì)量的一種手段,它是軟件工程中一個(gè)非常重要的環(huán)節(jié)。因此,可以認(rèn)為它是伴隨軟件工程的誕生而誕生的,伴隨著軟件復(fù)雜程度的增加、規(guī)模的增大,軟件測(cè)試作為一種能夠保證軟件質(zhì)量的有效手段,越來越受到人們的重視,軟件測(cè)試最終目的是使產(chǎn)品達(dá)到完美。軟件測(cè)試方

25、法沒有完全標(biāo)準(zhǔn)化和統(tǒng)一化,因?yàn)檐浖a(chǎn)業(yè)的產(chǎn)品到軟件測(cè)試有各式各樣的軟件,這里介紹的軟件測(cè)試方法可用于多數(shù)應(yīng)用軟件的測(cè)試。軟件測(cè)試可分人工測(cè)試和自動(dòng)化測(cè)試工具測(cè)試。軟件測(cè)試不是萬能的,不可能發(fā)現(xiàn)全部的軟件缺陷,而且軟件的功能和性能不是由測(cè)試決定的,軟件測(cè)試是有局限性的。軟件測(cè)試是在完成程序設(shè)計(jì)階段工作后,經(jīng)程序編碼員測(cè)試已初步奠定了基礎(chǔ),進(jìn)一步完成的測(cè)試工作。我們都知道軟件要投入運(yùn)行是否正確無誤,這一點(diǎn)極其重要,所以軟件要在投入運(yùn)行前

26、施行測(cè)試。未經(jīng)周密測(cè)試的軟件貿(mào)然投入運(yùn)行,將會(huì)造成難以想象的后果。盡管各個(gè)程序在設(shè)計(jì)完畢以后都一一作過調(diào)試,但能否發(fā)揮整個(gè)系統(tǒng)的功能尚不清楚。例如:某一程序運(yùn)行與后續(xù)的程序運(yùn)行是否矛盾?能否順利連續(xù)?整個(gè)系統(tǒng)的總測(cè)試要等全部程序設(shè)計(jì)結(jié)束且能連續(xù)測(cè)試時(shí)才可進(jìn)行。,,由于軟件錯(cuò)誤的復(fù)雜性,長期以來,人們對(duì)軟件測(cè)試的認(rèn)識(shí)一直是模糊的。許多科學(xué)家從不同的角度給出了軟件測(cè)試的不同定義,但總體來看,都是不全面的。給軟件帶來錯(cuò)誤的原因很多,具體地說

27、,主要有如下幾點(diǎn): ★ 交流不夠、交流上有誤解或者根本不進(jìn)行交流;★ 應(yīng)用需求不清晰的情況下進(jìn)行開發(fā);   ★ 軟件復(fù)雜性    軟件復(fù)雜性(圖形用戶界面,客戶/服務(wù)器結(jié)構(gòu),分布式應(yīng)用,數(shù)據(jù)通信,關(guān)系型數(shù)據(jù)庫使得軟件及系統(tǒng)的復(fù)雜性呈指數(shù)增長); ★ 程序設(shè)計(jì)錯(cuò)誤 ; ★ 需求變化 ;  ★ 代碼文檔貧乏等 。 軟件測(cè)試可認(rèn)為:★ 軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程;★ 使用人工或自動(dòng)手段來運(yùn)行或測(cè)定某

28、個(gè)系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清楚預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別;★ 測(cè)試是為了證明程序有錯(cuò),而不是證明程序無錯(cuò)誤;★ 一個(gè)好的測(cè)試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;★ 一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試;★ 測(cè)試是以查找錯(cuò)誤為中心,而不是演示軟件的正確功能;★ 測(cè)試并不僅僅是為了要找出錯(cuò)誤,而是通過錯(cuò)誤分析錯(cuò)誤產(chǎn)生的原因和錯(cuò)誤的分布特征,可以幫助項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前所采用的軟件過程的缺陷,以便

29、改進(jìn)。,,測(cè)試為軟件工程師提供了一個(gè)既興奮又擔(dān)心的問題,興奮的是將軟件工程師們的抽象概念提出的構(gòu)造軟件,現(xiàn)在得以實(shí)現(xiàn),并且到了測(cè)試階段。擔(dān)心的是,軟件在測(cè)試過程會(huì)出現(xiàn)哪些問題?尤其是自己編制的那一部份會(huì)不會(huì)給整個(gè)系統(tǒng)帶來影響?如果別人編的程序都沒有問題,就是“我”編的程序出了問題,那又是多么的難看等等。其實(shí)系統(tǒng)測(cè)試不是針對(duì)哪一個(gè)人的,而是從整個(gè)系統(tǒng)出發(fā),考查設(shè)計(jì)是否合理,任何一個(gè)人都不能把所有問題考慮得面面俱到,總是或多或少地發(fā)生差錯(cuò)。

30、對(duì)系統(tǒng)而言,就不能有差錯(cuò)。所以測(cè)試是非常重要的。測(cè)試可以說就是“尋找錯(cuò)誤”,特點(diǎn)是尋找不經(jīng)常出現(xiàn)的錯(cuò)誤。盡量把系統(tǒng)中隱藏著的錯(cuò)誤消滅在調(diào)試期間,測(cè)試還要對(duì)系統(tǒng)的容錯(cuò)能力、操作錯(cuò)誤進(jìn)行測(cè)試。通過測(cè)試要達(dá)到這樣的一個(gè)目的,尋找問題,發(fā)現(xiàn)問題,糾正錯(cuò)誤,提高系統(tǒng)技術(shù)能力,使系統(tǒng)早日投入運(yùn)行。,1.2.2 軟件測(cè)試的目的,軟件測(cè)試的不同機(jī)構(gòu)會(huì)有不同的測(cè)試目的,相同的機(jī)構(gòu)也可能有不同測(cè)試目的?! ≤浖y(cè)試的目的決定了如何去組織測(cè)試。如果測(cè)試的

31、目的是為了盡可能多地找出錯(cuò)誤,那么測(cè)試就應(yīng)該直接針對(duì)軟件比較復(fù)雜的部分或是以前出錯(cuò)比較多的位置。如果測(cè)試目的是為了給最終用戶提供具有一定可信度的質(zhì)量評(píng)價(jià),那么測(cè)試就應(yīng)該直接針對(duì)在實(shí)際應(yīng)用中會(huì)經(jīng)常用到的商業(yè)假設(shè)?!?測(cè)試可視為分析、設(shè)計(jì)和編碼3個(gè)階段的"最終復(fù)審",在軟件質(zhì)量保證中具有重要地位。為了確保軟件的質(zhì)量,較理想的做法應(yīng)該是對(duì)軟件的開發(fā)過程,按軟件工程各階段形成的結(jié)果,分別進(jìn)行嚴(yán)格的審查。,,軟件測(cè)試的目的

32、可認(rèn)為:★ 幫助開發(fā)人員、測(cè)試工程師,發(fā)現(xiàn)問題、分析問題;★ 減少軟件的缺陷數(shù)目或者降低軟件的缺陷密度;★ 提高軟件的可靠性;★ 評(píng)估軟件的性能指標(biāo);★ 增加用戶對(duì)軟件的信心;★ 測(cè)試的最終目的是為了避免錯(cuò)誤的發(fā)生,確保應(yīng)用程序能夠正常高效的運(yùn)行。,,對(duì)于軟件測(cè)試目的,Grenford J.Myers提出以下觀點(diǎn):1) 軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程; 2) 測(cè)試是為了證明程序有錯(cuò),而不是證明程序無錯(cuò)誤。

33、3) 一個(gè)好的測(cè)試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤; 4) 一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。這種觀點(diǎn)可以提醒人們測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。但是僅憑字面意思理解這一觀點(diǎn)可能會(huì)產(chǎn)生誤導(dǎo),認(rèn)為發(fā)現(xiàn)錯(cuò)誤是軟件測(cè)試的唯一目,查找不出錯(cuò)誤的測(cè)試就是沒有價(jià)值的,事實(shí)并非如此。首先,測(cè)試并不僅僅是為了要找出錯(cuò)誤。通過分析錯(cuò)誤產(chǎn)生的原因和錯(cuò)誤的分布特征,可以幫助項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前所采用的軟件過程的缺陷

34、,以便改進(jìn)。同時(shí),這種分析也能幫助我們?cè)O(shè)計(jì)出有針對(duì)性地檢測(cè)方法,改善測(cè)試的有效性。其次,沒有發(fā)現(xiàn)錯(cuò)誤的測(cè)試也是有價(jià)值的,完整的測(cè)試是評(píng)定測(cè)試質(zhì)量的一種方法。詳細(xì)而嚴(yán)謹(jǐn)?shù)目煽啃栽鲩L模型可以證明這一點(diǎn)。例如 Bev Littlewood發(fā)現(xiàn)一個(gè)經(jīng)過測(cè)試而正常運(yùn)行了n小時(shí)的系統(tǒng)有繼續(xù)正常運(yùn)行n小時(shí)的概率。,1.2.3 軟件測(cè)試過程V模型,V模型是在快速應(yīng)用開發(fā) (RAD,Rap Application Development)模型基礎(chǔ)上演變

35、而來,由于將整個(gè)開發(fā)過程構(gòu)造成一個(gè)V字形而得名,如圖1-3 所示。V模型強(qiáng)調(diào)軟件開發(fā)的協(xié)作和速度,主要反映測(cè)試活動(dòng)與分析設(shè)計(jì)關(guān)系,將軟件實(shí)現(xiàn)和驗(yàn)證有機(jī)地結(jié)合起來,在保證較高的軟件質(zhì)量情況下縮短開發(fā)周期。,,,圖1—3從水平對(duì)應(yīng)關(guān)系看:左邊是策劃測(cè)試活動(dòng);右邊是對(duì)左邊的測(cè)試結(jié)果。需求分析對(duì)應(yīng)驗(yàn)收測(cè)試:說明在做需求分析的同時(shí),測(cè)試人員就可以閱讀、審查需求分析的結(jié)果,從而了解產(chǎn)品的設(shè)計(jì)特性、用戶的真正需求,確定測(cè)試目標(biāo),準(zhǔn)備測(cè)試用例并策劃測(cè)

36、試活動(dòng);系統(tǒng)設(shè)計(jì)對(duì)應(yīng)系統(tǒng)測(cè)試,說明在做系統(tǒng)設(shè)計(jì)的同時(shí),測(cè)試人員可以了解系統(tǒng)是如何實(shí)現(xiàn)的,設(shè)計(jì)系統(tǒng)的測(cè)試方案和測(cè)試計(jì)劃,并事先準(zhǔn)備系統(tǒng)的測(cè)試環(huán)境;詳細(xì)設(shè)計(jì)對(duì)應(yīng)集成測(cè)試,說明在做詳細(xì)設(shè)計(jì)的同時(shí),測(cè)試人員可以參與設(shè)計(jì),對(duì)詳細(xì)設(shè)計(jì)進(jìn)行評(píng)審,設(shè)計(jì)測(cè)試用例;編碼對(duì)應(yīng)單元測(cè)試,說明在編碼的同時(shí),設(shè)計(jì)測(cè)試用例,進(jìn)行單元測(cè)試,盡快找出程序中的錯(cuò)誤。,,V模型的價(jià)值在于他很明確地標(biāo)明了測(cè)試過程中存在的不同級(jí)別,并且清楚地描述了這些測(cè)試階段和研發(fā)過程期

37、間各階段的對(duì)應(yīng)關(guān)系。V模型適合企業(yè)級(jí)的軟件開發(fā),它清楚地揭示了軟件開發(fā)過程的特性及其本質(zhì):★ 單元和集成測(cè)試應(yīng)檢測(cè)程序的執(zhí)行是否滿足軟件設(shè)計(jì)的要求;★ 系統(tǒng)測(cè)試應(yīng)檢測(cè)系統(tǒng)功能、性能的質(zhì)量特性是否達(dá)到系統(tǒng)要求的指標(biāo);★ 驗(yàn)收測(cè)試確定軟件的實(shí)現(xiàn)是否滿足用戶需要或合同的要求。但V模型存在一定的局限性,它僅僅把測(cè)試作為在編碼之后的一個(gè)階段,是針對(duì)程序進(jìn)行的尋找錯(cuò)誤的活動(dòng),而忽視了測(cè)試活動(dòng)對(duì)需求分析、系統(tǒng)設(shè)計(jì)等活動(dòng)的驗(yàn)證和確認(rèn)的功能。軟

38、件測(cè)試過程V模型特點(diǎn):非常明確地表明測(cè)試的不同過程要寫作的文檔,清晰地展示了軟件測(cè)試與開發(fā)之間的關(guān)系。,1.2.4 軟件測(cè)試的基本原則,為了提高測(cè)試的質(zhì)量,軟件測(cè)試需要遵循下面的原則: (1) 應(yīng)當(dāng)把“盡早地和不斷地進(jìn)行軟件測(cè)試”作為軟件開發(fā)者的座右銘。由于原始問題的復(fù)雜性,軟件的復(fù)雜性和抽象性,軟件開發(fā)各個(gè)階段工作的多樣性,以及參加開發(fā)各種層次人員之間工作的配合關(guān)系等因素,使得開發(fā)的每個(gè)環(huán)節(jié)都可能產(chǎn)生錯(cuò)誤。所以不應(yīng)把軟件測(cè)試僅僅

39、看作是軟件開發(fā)的一個(gè)獨(dú)立階段,而應(yīng)當(dāng)把它貫穿到軟件開發(fā)的各個(gè)階段中。堅(jiān)持在軟件開發(fā)的各個(gè)階段的技術(shù)評(píng)審,這樣才能在開發(fā)過程中盡早發(fā)現(xiàn)和預(yù)防錯(cuò)誤,把出現(xiàn)的錯(cuò)誤克服在早期,杜絕某些隱患,提高軟件質(zhì)量。,,(2) 測(cè)試用例應(yīng)由測(cè)試輸入數(shù)據(jù)和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。測(cè)試以前應(yīng)當(dāng)根據(jù)測(cè)試的要求選擇在測(cè)試過程中使用的測(cè)試用例(Test case)。測(cè)試用例主要用來檢驗(yàn)程序員編制的程序,因此不但需要測(cè)試的輸入數(shù)據(jù),而且需要針對(duì)這些輸入數(shù)

40、據(jù)的預(yù)期輸出結(jié)果。如果對(duì)測(cè)試輸入數(shù)據(jù)沒有給出預(yù)期的程序輸出結(jié)果,那么就缺少了檢驗(yàn)實(shí)測(cè)結(jié)果的基準(zhǔn),就有可能把一個(gè)似是而非的錯(cuò)誤結(jié)果當(dāng)成正確結(jié)果。,,(3) 程序員應(yīng)避免測(cè)試自己的程序。測(cè)試工作需要嚴(yán)格的作風(fēng),客觀的態(tài)度和冷靜的情緒。人們常由于各種原因具有一種不愿否定自己工作的心理,認(rèn)為揭露自己程序中的問題總不是一件愉快的事。這一心理狀態(tài)就成為測(cè)試自己程序的障礙。另外,程序員對(duì)軟件規(guī)格說明理解錯(cuò)誤而引入的錯(cuò)誤則更難發(fā)現(xiàn)。如果由別人來測(cè)試程

41、序員編寫的程序,可能會(huì)更客觀,更有效,并更容易取得成功。要注意的是,測(cè)試不能與程序的調(diào)試相混淆。調(diào)試由程序員自己來做。,,(4) 在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。合理的輸入條件是指能驗(yàn)證程序正確的輸入條件,而不合理的輸入條件是指異常的,臨界的,可能引起問題異變的輸入條件。在測(cè)試程序時(shí),人們常常傾向于過多地考慮合法的和期望的輸入條件,以檢查程序是否做了它應(yīng)該做的事情,而忽視了不合法的和預(yù)想不到的輸入條件。事實(shí)

42、上,軟件在投入運(yùn)行以后,用戶的使用往往不遵循事先的約定,使用了一些意外的輸入,如用戶在鍵盤上按錯(cuò)了鍵或打入了非法的命令。如果開發(fā)的軟件遇到這種情況時(shí)不能做出適當(dāng)?shù)姆磻?yīng),給出相應(yīng)的信息,那么就容易產(chǎn)生故障,輕則給出錯(cuò)誤的結(jié)果,重則導(dǎo)致軟件失效。因此,軟件系統(tǒng)處理非法命令的能力也必須在測(cè)試時(shí)受到檢驗(yàn)。用不合理的輸入條件測(cè)試程序時(shí),往往比用合理的輸入條件進(jìn)行測(cè)試能發(fā)現(xiàn)更多的錯(cuò)誤。,,(5) 制定嚴(yán)格的測(cè)試計(jì)劃 制定嚴(yán)格的測(cè)試計(jì)劃,并把測(cè)

43、試時(shí)間安排得盡量寬松,不要希望在極短的時(shí)間內(nèi)完成一個(gè)高水平的測(cè)試。測(cè)試計(jì)劃應(yīng)包括:測(cè)試軟件的功能、輸入和輸出,各項(xiàng)測(cè)試的進(jìn)度安排,資源要求,測(cè)試資料,測(cè)試工具,測(cè)試用例的選擇等。,,(6) 嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性測(cè)試計(jì)劃應(yīng)包括:所測(cè)軟件的功能,輸入和輸出,測(cè)試內(nèi)容,各項(xiàng)測(cè)試的進(jìn)度安排,資源要求,測(cè)試資料,測(cè)試工具,測(cè)試用例的選擇,測(cè)試的控制方式和過程,系統(tǒng)組裝方式,跟蹤規(guī)程,調(diào)試規(guī)程,以及回歸測(cè)試的規(guī)定等以及評(píng)價(jià)標(biāo)準(zhǔn)。對(duì)于

44、測(cè)試計(jì)劃,要明確規(guī)定,不要隨意解釋。,,(7) 應(yīng)當(dāng)對(duì)每一個(gè)測(cè)試結(jié)果做全面檢查這是一條最明顯的原則,但常常被忽視。有些錯(cuò)誤的征兆在輸出實(shí)測(cè)結(jié)果時(shí)已經(jīng)明顯地出現(xiàn)了,但是如果不仔細(xì)地全面地檢查測(cè)試結(jié)果,就會(huì)使這些錯(cuò)誤被遺漏掉。所以必須對(duì)預(yù)期的輸出結(jié)果明確定義,對(duì)實(shí)測(cè)的結(jié)果仔細(xì)分析檢查,抓住征候,暴露錯(cuò)誤。(8) 妥善保存測(cè)試計(jì)劃,測(cè)試用例,測(cè)試過程文檔,出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。(9) 應(yīng)盡可能早地開始測(cè)試在軟件生

45、命周期中,1個(gè)錯(cuò)誤發(fā)現(xiàn)的越晚,修復(fù)錯(cuò)誤的費(fèi)用越高。如表1-2所示。,,(10) 測(cè)試應(yīng)從“小規(guī)?!遍_始,逐步轉(zhuǎn)向“大規(guī)?!薄W畛醯臏y(cè)試通常把焦點(diǎn)放在單個(gè)程序模塊上,進(jìn)一步測(cè)試的焦點(diǎn)則轉(zhuǎn)向在集成的模塊簇中尋找錯(cuò)誤,最后在整個(gè)系統(tǒng)中尋找錯(cuò)誤。(11) 測(cè)試用例應(yīng)由測(cè)試輸入數(shù)據(jù)、測(cè)試執(zhí)行步驟和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果三部分組成。(12) 按照組件和功能特征的優(yōu)先級(jí)從高到低的順序進(jìn)行測(cè)試 (13) 重點(diǎn)放在處理多語言字符串的直接

46、或間接的輸入/輸出(I/O) (14) 對(duì)測(cè)試錯(cuò)誤結(jié)果一定要有一個(gè)確認(rèn)的過程(15) 回歸測(cè)試的關(guān)聯(lián)性回歸測(cè)試的關(guān)聯(lián)性一定要引起充分的注意,修改一個(gè)錯(cuò)誤而引起更多錯(cuò)誤出現(xiàn)的現(xiàn)象并不少見。(16) 在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。合理的輸入條件是指能驗(yàn)證程序正確的輸入條件,不合理的輸入條件是指異常的,臨界的,可能引起問題異變的輸入條件。軟件系統(tǒng)處理非法命令的能力必須在測(cè)試時(shí)受到檢驗(yàn)。用不合理的輸

47、入條件測(cè)試程序時(shí),往往比用合理的輸入條件進(jìn)行測(cè)試能發(fā)現(xiàn)更多的錯(cuò)誤。,,1.2.5 軟件測(cè)試步驟區(qū)分軟件測(cè)試步驟,并明確定義其資源(人/物/時(shí)間)的安排,是保障軟件測(cè)試工作有序開展、有效管理的關(guān)鍵。軟件測(cè)試步驟一般可按表1-3方式進(jìn)行。,,1.2.6軟件錯(cuò)誤的分類軟件錯(cuò)誤存在于軟件生存期的各個(gè)階段,凡是和預(yù)期的狀態(tài)或行為不相符合的統(tǒng)稱為軟件錯(cuò)誤。例如,制定的計(jì)劃和實(shí)際不相符合的、需求說明書有問題的、設(shè)計(jì)說明書有問題的、程序編碼有問題的

48、、測(cè)試有問題的、運(yùn)行結(jié)果不正確的、維護(hù)有問題的等等,都是軟件錯(cuò)誤。軟件的錯(cuò)誤是非常復(fù)雜的,凡是人們能夠想到的軟件錯(cuò)誤都是可能發(fā)生的。到目前為止,人們對(duì)軟件錯(cuò)誤的認(rèn)識(shí)尚停留在表面上,其內(nèi)在規(guī)律有待進(jìn)一步研究。這也是目前軟件測(cè)試技術(shù)發(fā)展比較緩慢的原因之一。,,(1) 軟件的錯(cuò)誤按性質(zhì)分類 軟件的錯(cuò)誤按性質(zhì)可分為: 功能錯(cuò)誤 系統(tǒng)錯(cuò)誤 加工錯(cuò)誤 數(shù)據(jù)錯(cuò)誤 代碼錯(cuò)誤,,(2) 軟

49、件的錯(cuò)誤按生存期階段分類軟件在生存期的每個(gè)階段都可能存在錯(cuò)誤,即計(jì)劃錯(cuò)誤、需求分析錯(cuò)誤、設(shè)計(jì)錯(cuò)誤、編碼錯(cuò)誤、測(cè)試錯(cuò)誤、運(yùn)行與維護(hù)錯(cuò)誤。由于生存期的每一個(gè)階段又是下一個(gè)階段的先導(dǎo),也就是說,前一個(gè)階段正確的設(shè)計(jì)是保證下一個(gè)階段設(shè)計(jì)正確的必要條件。因此,要求一旦發(fā)現(xiàn)某個(gè)階段存在錯(cuò)誤,就要盡快將其排除。軟件的錯(cuò)誤按軟件生存期階段可分為:需求分析錯(cuò)誤,規(guī)格說明錯(cuò)誤,設(shè)計(jì)錯(cuò)誤,編碼錯(cuò)誤等。1)需求分析錯(cuò)誤2) 規(guī)格說明錯(cuò)誤 3)設(shè)計(jì)錯(cuò)誤

50、4) 編碼錯(cuò)誤,,軟件的錯(cuò)誤百分比如表1-4所示。,,1.2.7 軟件測(cè)試的任務(wù)軟件測(cè)試階段有幾方面的任務(wù): (1) 制定測(cè)試大綱; (2) 制作測(cè)試數(shù)據(jù); (3) 單元測(cè)試(程序測(cè)試);(4)功能測(cè)試;(5)性能測(cè)試;(6)集成測(cè)試(子系統(tǒng)測(cè)試);(7)系統(tǒng)測(cè)試;(8)驗(yàn)收測(cè)試;(9)寫出測(cè)試報(bào)告書;(10)向下階段工作提交系統(tǒng)運(yùn)行、維護(hù)手冊(cè)的草案。,,制定測(cè)試大綱測(cè)試大綱是測(cè)試工作的依據(jù),

51、主要有:檢查每個(gè)模塊在程序設(shè)計(jì)中是否已測(cè)試過,測(cè)試的數(shù)據(jù)和輸出結(jié)果是否正確?檢查每個(gè)子系統(tǒng)和功能在程序設(shè)計(jì)中是否已測(cè)試過,測(cè)試的數(shù)據(jù)和輸出結(jié)果是否正確?檢查上一階段交來的工作文檔是否齊全?確定本階段測(cè)試目標(biāo)。制定本階段測(cè)試內(nèi)容。編寫向下階段工作提交的文檔資料。,,制作測(cè)試數(shù)據(jù)數(shù)據(jù)制作好壞,直接影響系統(tǒng)測(cè)試的結(jié)果,制作測(cè)試數(shù)據(jù)時(shí)應(yīng)注意:由用戶和程序管理組的人員制作,程序編碼人員不應(yīng)介入。要盡可能多的提供數(shù)據(jù),供檢測(cè)。尤

52、其是交接口數(shù)據(jù)。提供的數(shù)據(jù)應(yīng)分三類:★ 沒有錯(cuò)誤的數(shù)據(jù),以檢查功能實(shí)現(xiàn)?!?各種各機(jī)關(guān)報(bào)錯(cuò)誤數(shù)據(jù),以檢查程序?qū)﹀e(cuò)誤數(shù)據(jù)處理能力。★ 提供程序與程序交接口數(shù)據(jù)(正確的、不正確的),以檢查交接口情況。,1.2.8軟件測(cè)試的方法,軟件的測(cè)試方法分為人工測(cè)試和軟件測(cè)試自動(dòng)化工具測(cè)試,人工測(cè)試即用試題測(cè)試、用新舊兩個(gè)系統(tǒng)作平行處理測(cè)試、人工測(cè)試。用試題檢查法此方法是先建立輸入數(shù)據(jù)的模型,并事先用人工求得其預(yù)計(jì)輸出,然后送入模型,與新系統(tǒng)

53、所得結(jié)果進(jìn)行核對(duì),進(jìn)行測(cè)試。用新舊兩個(gè)系統(tǒng)作平行處理檢查通過舊系統(tǒng)的處理結(jié)果與新系統(tǒng)的結(jié)果相比較進(jìn)行檢查。3.軟件自動(dòng)化測(cè)試工具測(cè)試,1.2.9 軟件測(cè)試工具,軟件測(cè)試工具是提高軟件測(cè)試效率的重要手段,是軟件理論和技術(shù)發(fā)展的重要標(biāo)志。目前,應(yīng)用比較廣泛的軟件測(cè)試工具有下列幾種類型:(1)測(cè)試設(shè)計(jì)工具測(cè)試設(shè)計(jì)工具有助于準(zhǔn)備測(cè)試輸入或測(cè)試數(shù)據(jù)。測(cè)試設(shè)計(jì)工具包括邏輯設(shè)計(jì)工具和物理設(shè)計(jì)工具。邏輯設(shè)計(jì)工具涉及到說明、接口或代碼邏輯,有時(shí)

54、也叫做測(cè)試用例生成器。物理設(shè)計(jì)工具操作已有的數(shù)據(jù)或產(chǎn)生測(cè)試數(shù)據(jù)。如可以隨機(jī)從數(shù)據(jù)庫中抽取記錄的工具就是物理設(shè)計(jì)工具。從說明中獲取測(cè)試數(shù)據(jù)的工具就是邏輯設(shè)計(jì)工具。(2)測(cè)試管理工具測(cè)試管理工具是指幫助完成測(cè)試計(jì)劃,跟蹤測(cè)試運(yùn)行結(jié)果等的工具。這類工具還包括有助于需求、設(shè)計(jì)、編碼測(cè)試及缺陷跟蹤的工具。(3)靜態(tài)分析工具靜態(tài)分析工具直接對(duì)代碼進(jìn)行分析,不需要運(yùn)行代碼,也不需要對(duì)代碼編譯鏈接,生成可執(zhí)行文件。靜態(tài)分析工具一般是對(duì)代碼進(jìn)行語

55、法掃描,找出不符合編碼規(guī)范的地方,根據(jù)某種質(zhì)量模型評(píng)價(jià)代碼的質(zhì)量,生成系統(tǒng)的調(diào)用關(guān)系圖等。(4)動(dòng)態(tài)分析工具動(dòng)態(tài)分析工具與靜態(tài)分析工具不同,動(dòng)態(tài)測(cè)試工具的一般采用“插樁”的方式,向代碼生成的可執(zhí)行文件中插入一些監(jiān)測(cè)代碼,用來統(tǒng)計(jì)程序運(yùn)行時(shí)的數(shù)據(jù)。其與靜態(tài)分析工具最大的不同就是動(dòng)態(tài)分析工具要求被測(cè)系統(tǒng)實(shí)際運(yùn)行。(5)覆蓋測(cè)試工具覆蓋工具評(píng)估通過一系列的測(cè)試,測(cè)試軟件被測(cè)試執(zhí)行的程度。覆蓋工具大量的用于單元測(cè)試中。例如,對(duì)于安全性要

56、求高或與安全有關(guān)的系統(tǒng),則要求的覆蓋程度也較高。覆蓋工具還可以度量設(shè)計(jì)層次結(jié)構(gòu),如調(diào)用樹結(jié)構(gòu)的覆蓋率。(6)負(fù)載和性能測(cè)試工具性能測(cè)試工具檢測(cè)每個(gè)事件所需要的時(shí)間。例如,性能測(cè)試工具可以測(cè)定典型或負(fù)載條件下的響應(yīng)時(shí)間。負(fù)載測(cè)試可以產(chǎn)生系統(tǒng)流量。例如產(chǎn)生許多代表典型情況或最大情況下的事物。這種類型的測(cè)試工具用于容量和壓力測(cè)試。(7)GUI測(cè)試驅(qū)動(dòng)和捕獲/回放工具這類測(cè)試工具可使測(cè)試自動(dòng)執(zhí)行,然后將測(cè)試輸出結(jié)果與期望輸出進(jìn)行比較。此

57、類測(cè)試工具可在任何層次中執(zhí)行測(cè)試:?jiǎn)卧獪y(cè)試、集成測(cè)試、系統(tǒng)測(cè)試或驗(yàn)收測(cè)試。捕獲回放工具是目前使用的測(cè)試工具中最流行的一種。 (8)基于故障的測(cè)試工具首先給出軟件的故障模型,在此故障模型下,給出基于該故障模型的軟件測(cè)試工具。這是目前一種有很好發(fā)展前景的軟件測(cè)試工具。隨著人們對(duì)軟件故障認(rèn)識(shí)的不斷深入,軟件的故障模型也會(huì)越來越完備,并更加符合實(shí)際。基于故障的軟件測(cè)試工具有三個(gè)需要研究的問題:一是故障模型的準(zhǔn)確程度,二是測(cè)試的準(zhǔn)確程度,三是

58、測(cè)試的自動(dòng)化程度。,1.3 軟件測(cè)試的流程,1.3.1 軟件測(cè)試 軟件測(cè)試實(shí)際是由確認(rèn)、驗(yàn)證、測(cè)試三個(gè)方面組成。確認(rèn):是評(píng)估將要開發(fā)的軟件產(chǎn)品是否是正確無誤、可行和有價(jià)值的。驗(yàn)證:是檢測(cè)軟件開發(fā)的每個(gè)階段、每個(gè)步驟的結(jié)果是否正確無誤,是否與軟件開發(fā)各階段的要求或期望的結(jié)果相一致。驗(yàn)證意味著確保軟件是會(huì)正確無誤的實(shí)現(xiàn)軟件的需求,開發(fā)過程是沿著正確的方向在進(jìn)行。 測(cè)試:通常是經(jīng)過單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試等。軟件測(cè)試的流程

59、分為測(cè)試流程和測(cè)試階段流程。,,1. 3.2 軟件測(cè)試流程軟件測(cè)試流程是組織領(lǐng)導(dǎo)軟件測(cè)試的管理方案。軟件測(cè)試流程分測(cè)試項(xiàng)目整體流程、測(cè)試項(xiàng)目確認(rèn)流程、測(cè)試執(zhí)行流程、測(cè)試策劃流程、問題跟蹤與測(cè)試關(guān)閉流程、嵌入式軟件測(cè)試流程、軟件整體測(cè)試流程。,,1. 測(cè)試項(xiàng)目整體流程測(cè)試項(xiàng)目整體流程如圖1-5示。,,測(cè)試項(xiàng)目確認(rèn)流程測(cè)試項(xiàng)目確認(rèn)流程如圖1-6所示。,,測(cè)試執(zhí)行流程測(cè)試執(zhí)行流程如圖1-7所示。,,測(cè)試策劃流程測(cè)試策劃流程如圖1

60、-8所示。,,問題跟蹤與測(cè)試關(guān)閉流程問題跟蹤與測(cè)試關(guān)閉流程如圖1-9所示。,,嵌入式軟件測(cè)試流程嵌入式軟件測(cè)試流程如圖1-10所示。,,軟件整體測(cè)試流程軟件整體測(cè)試流程圖如圖1-11所示。,1.3.3 測(cè)試階段流程,測(cè)試階段流程是針對(duì)軟件在實(shí)際測(cè)試時(shí)的階段執(zhí)行方案。軟件測(cè)試階段流程分為軟件測(cè)試階段總體流程圖、需求階段測(cè)試流程、設(shè)計(jì)與編碼階段測(cè)試流程、集成測(cè)試和系統(tǒng)測(cè)試階段流程圖。如圖1-12,圖1-13,圖1-14,圖1-15所

61、示。,,集成測(cè)試是將已經(jīng)分別通過測(cè)試的單元按設(shè)計(jì)要求組合起來再進(jìn)行測(cè)試,以檢查這些單元接口是否存在問題。系統(tǒng)測(cè)試一般由若干個(gè)不同測(cè)試組成,目的是充分運(yùn)行系統(tǒng),驗(yàn)證系統(tǒng)各部件能否正常工作并完成所賦予的任務(wù)。,,軟件測(cè)試的各個(gè)階段有著密切的聯(lián)系, 如圖1-16所示。,,1.4 軟件測(cè)試的組織結(jié)構(gòu)和人員的要求軟件測(cè)試是在有關(guān)測(cè)試組織領(lǐng)導(dǎo)下進(jìn)行的具體工作,對(duì)組織結(jié)構(gòu)和人員有具體的要求。,,1.4.1 軟件測(cè)試的組織結(jié)構(gòu)軟件測(cè)試的具體組織

62、結(jié)構(gòu)如圖1-17所示。,,1.4.2 系統(tǒng)測(cè)試組的人員結(jié)構(gòu)組成軟件測(cè)試的時(shí)候人員分配如圖1-18所示。圖1-18軟件測(cè)試的時(shí)候人員分配圖,,軟件測(cè)試人員最好具有軟件開發(fā)經(jīng)驗(yàn),理解軟件工程的知識(shí)。軟件測(cè)試過程中,必須要合理地組織人員。將軟件測(cè)試的人員分成三部分。一部分上機(jī)測(cè)試人員(測(cè)試執(zhí)行者),一部分測(cè)試結(jié)果檢查核對(duì)人員(測(cè)試工具軟件開發(fā)工程師),還有一部分是制作測(cè)試數(shù)據(jù)制作人員(高級(jí)軟件測(cè)試工程師)。這三方面人員應(yīng)該緊密配合,互相

63、協(xié)調(diào),保證軟件測(cè)試工作的順利進(jìn)行?!?上機(jī)測(cè)試人員 負(fù)責(zé)理解產(chǎn)品的功能要求,然后根據(jù)測(cè)試規(guī)范和測(cè)試案例對(duì)其進(jìn)行測(cè)試,檢查軟件有沒有錯(cuò)誤,決定軟件是否具有穩(wěn)定性,屬于最低級(jí)的執(zhí)行角色?!?測(cè)試結(jié)果檢查核對(duì)人員 負(fù)責(zé)寫測(cè)試工具代碼,并利用測(cè)試工具對(duì)軟件進(jìn)行測(cè)試;或者開發(fā)測(cè)試工具為軟件測(cè)試工程師服務(wù)?!?制作測(cè)試數(shù)據(jù)制作人員 要具備寫程序的技術(shù)?!耙?yàn)椴煌a(chǎn)品的特性不一樣,對(duì)測(cè)試工具要求也是不同的,就像Windows的測(cè)試工具不能用于O

64、ffice,office的也不能用于SQLserver,微軟很多測(cè)試工程師就是負(fù)責(zé)專門為某個(gè)產(chǎn)品寫測(cè)試程序的?!餃y(cè)試經(jīng)理 測(cè)試經(jīng)理主要負(fù)責(zé)測(cè)試內(nèi)部管理以及與其他外部人員,客戶的交流等,測(cè)試經(jīng)理需要具有項(xiàng)目經(jīng)理的知識(shí)和技能。同時(shí)測(cè)試工作開始前項(xiàng)目經(jīng)理需要書寫《測(cè)試計(jì)劃書》,測(cè)試結(jié)束需要書寫《測(cè)試總結(jié)報(bào)告》?!?測(cè)試文檔審核師 測(cè)試文檔審核師主要負(fù)責(zé)前置測(cè)試,包括在需求期與設(shè)計(jì)期間產(chǎn)生的文檔進(jìn)行審核,如《需求規(guī)格說明書》,《概要設(shè)計(jì)

65、書》,《詳細(xì)設(shè)計(jì)書》等等。審核需要進(jìn)行書寫審核報(bào)告。當(dāng)文檔確定后,需要整理文檔報(bào)告,并且反映介紹給測(cè)試工程師。★ 測(cè)試工程師 測(cè)試工程師主要根據(jù)需求期與設(shè)計(jì)期間產(chǎn)生的文檔設(shè)計(jì)制作測(cè)試數(shù)據(jù)和各個(gè)測(cè)試階段的測(cè)試用例。(測(cè)試文檔審核師,測(cè)試工程師可以有一人相同的一組人來完成)按照測(cè)試用例,來完成測(cè)試工作?!?操作人員,1.4.3 軟件測(cè)試需要的知識(shí)結(jié)構(gòu),軟件測(cè)試不是很快入門的職業(yè),門檻高,需要的知識(shí)多,具有編程經(jīng)驗(yàn)的程序員不一定是一名

66、優(yōu)秀的測(cè)試工程師。軟件測(cè)試已經(jīng)形成了一個(gè)獨(dú)立的技術(shù)學(xué)科,軟件測(cè)試技術(shù)不斷更新和完善,新工具,新流程,新測(cè)試設(shè)計(jì)方法都在不斷更新,沒有一個(gè)合格的測(cè)試人員,測(cè)試是不可能實(shí)現(xiàn)高質(zhì)高效的。軟件測(cè)試人員需要的知識(shí)結(jié)構(gòu):★ 需要具有懂得計(jì)算機(jī)的基本理論,又有一定開發(fā)經(jīng)驗(yàn)的人員;★ 需要具有了解軟件開發(fā)的基本過程和特征,對(duì)軟件有良好的理解能力,掌握軟件測(cè)試相關(guān)理論及技術(shù)的人員;★ 需要具有軟件業(yè)務(wù)經(jīng)驗(yàn)的人員;★ 需要根據(jù)測(cè)試計(jì)劃和方案進(jìn)行軟件

67、測(cè)試;針對(duì)軟件需求開發(fā)測(cè)試模型,制定測(cè)試方案,安排測(cè)試計(jì)劃,搭建測(cè)試環(huán)境, 進(jìn)行基本測(cè)試,設(shè)計(jì)簡(jiǎn)單的測(cè)試用例?!?需要具有規(guī)劃設(shè)計(jì)環(huán)境;編制測(cè)試大綱并設(shè)計(jì)測(cè)試用例;對(duì)軟件進(jìn)行全面測(cè)試工作的人員★ 需要具有編制測(cè)試計(jì)劃;評(píng)審測(cè)試方案,規(guī)范測(cè)試流程及測(cè)試文檔;分析測(cè)試結(jié)果,管理測(cè)試項(xiàng)目。★ 需要會(huì)操作軟件測(cè)試工具的人員。,1.4.4 軟件測(cè)試人員需要的能力素質(zhì),1. 溝通能力 2. 技術(shù)能力 3. 自信心 4. 洞察力5.做測(cè)

68、試時(shí)要細(xì)心,6.測(cè)試人員測(cè)試的時(shí)間分配應(yīng)該是, 30%讀程序,20%寫測(cè)試程序,50%寫Test Cases和運(yùn)行Test Cases. 好的測(cè)試員的工作重點(diǎn)應(yīng)該放在理解要求,理解客戶需要,思考在什么條件下程序會(huì)出錯(cuò),而不是思考如何去自動(dòng)化。 7. 探索精神8. 不懈努力9. 創(chuàng)造性10. 追求完美11. 判斷準(zhǔn)確12. 老練穩(wěn)重和說服力,1.5 軟件測(cè)試的前景,1.軟件測(cè)試學(xué)科 軟件測(cè)試一門非常嶄新的學(xué)科,目前仍然還

溫馨提示

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

評(píng)論

0/150

提交評(píng)論