第1章 軟件測試概述_第1頁
第1章 軟件測試概述_第2頁
第1章 軟件測試概述_第3頁
第1章 軟件測試概述_第4頁
第1章 軟件測試概述_第5頁
已閱讀5頁,還剩114頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件測試基礎(chǔ)

倪鵬:

手機:82821000

辦公室:85118251

郵箱:nipeng@課程安排星期一二三四五1-23-4軟件測試倪鵬20818

軟件測試倪鵬20818

5-67-8軟件測試倪鵬20818課程簡介前導課程:軟件工程后續(xù)課程:軟件測試技術(shù)考試形式:閉卷學時:48學時軟件測試基礎(chǔ)第一章軟件測試概述本章學習內(nèi)容軟件測試背景軟件測試定義、目標和原則軟件測試與質(zhì)量保證傳統(tǒng)軟件測試過程軟件測試的發(fā)展歷程及趨勢軟件測試是伴隨著軟件的產(chǎn)生而產(chǎn)生的,有了軟件的生成和運行就必然有軟件測試。例1:1963年,美國,飛往火星的火箭爆炸,損失$10million.

原因:

FORTRAN循環(huán)DO5I=1,3

誤寫為DO5I=1.3例2:1994-1995年,迪斯尼的獅子王,第一個面向兒童的多媒體光盤游戲,投訴電話被打爆.

原因:未對市場上的各種PC機型進行正確測試,軟件在大眾使用的常見系統(tǒng)中難以運行例3:1991年,美國愛國者導彈防御系統(tǒng)在幾次對抗導彈戰(zhàn)役中失利,多哈戰(zhàn)誤擊斃28名美軍士兵.

原因:一個很小的系統(tǒng)時鐘錯誤積累,可能拖延14小時并造成跟蹤系統(tǒng)失去準確度,多哈戰(zhàn)中系統(tǒng)拖延了100多個小時早期的軟件開發(fā)過程中,測試的含義比較窄,將測試等同于“調(diào)試”目的是糾正軟件中已經(jīng)知道的故障,常常由軟件開發(fā)人員自己完成這部分工作對測試的投入極少,測試介入的也晚,常常是等到形成代碼,產(chǎn)品已經(jīng)基本完成時才進行測試直到1957年,軟件測試才開始與調(diào)試區(qū)別開來,成為一種發(fā)現(xiàn)軟件缺陷的活動。直到20世紀80年代早期,“質(zhì)量”的號角才開始吹響。軟件測試的定義發(fā)生了改變,測試不單純是一個發(fā)現(xiàn)錯誤的過程,而且包含軟件質(zhì)量評價的內(nèi)容。

20世紀90年代,測試工具終于盛行起來。到了2002年,Rich和Stefan在《系統(tǒng)的軟件測試》一書中對軟件測試做了進一步定義:“測試是為了度量和提高被測軟件的質(zhì)量,對測試軟件進行工程設(shè)計、實施和維護的整個生命周期過程”。近20年來,隨著計算機和軟件技術(shù)的飛速發(fā)展,軟件測試技術(shù)的研究也取得了很大的突破,測試專家總結(jié)了很好的測試模型,如著名的V模型,在單元測試、自動化測試等方面涌現(xiàn)了大量優(yōu)秀的軟件測試工具。雖然軟件測試技術(shù)的發(fā)展很快,但是其發(fā)展速度仍落后于軟件開發(fā)技術(shù)的發(fā)展速度,使得軟件測試在今天面臨著很大的挑戰(zhàn),主要體現(xiàn)在以下幾個方面。①軟件在國防現(xiàn)代化、社會信息化和國民經(jīng)濟信息化領(lǐng)域中的作用越來越重要,由此產(chǎn)生的測試任務(wù)越來越繁重。②軟件規(guī)模越來越大,功能越來越復(fù)雜,如何進行充分而有效的測試成為難題。③面向?qū)ο蟮拈_發(fā)技術(shù)越來越普及,但是面向?qū)ο蟮臏y試技術(shù)卻剛剛起步。④對分布式系統(tǒng)的整體性能還不能進行很好的測試。⑤對實時系統(tǒng)缺乏有效的測試手段。⑥隨著安全問題的日益突出,對信息系統(tǒng)的安全性如何進行有效的測試與評估,成為世界性難題。根據(jù)國內(nèi)外軟件測試的發(fā)展現(xiàn)狀,可以看到軟件測試有以下的發(fā)展趨勢。①測試工作將進一步前移。②軟件架構(gòu)師、開發(fā)工程師、QA

(QUALITYASSURANCE

)質(zhì)量保證人員、測試工程師將進行更好的融合。③測試職業(yè)將得到充分的尊重。④設(shè)置獨立的軟件測試部門將成為越來越多的軟件公司的共識。軟件測試部門將和開發(fā)部、質(zhì)量保證部一樣作為一個重要的獨立部門存在。⑤測試外包服務(wù)將快速增長。和軟件開發(fā)外包一樣,軟件測試外包將成為全球化的一種趨勢??梢岳寐殬I(yè)測試專家隊伍與機構(gòu)為自己的產(chǎn)品進行測試,而且可以節(jié)省測試費用。軟件測試職業(yè)與素質(zhì)對軟件測試的誤解

如果發(fā)布的軟件有質(zhì)量問題,那是軟件測試人員的錯。

軟件測試技術(shù)要求不高,至少比編程容易多了。

軟件測試隨便找一個能力差的人就能做。

有時間就多測試一些,來不及就少測試一些。軟件測試是測試人員的事,與開發(fā)人員無關(guān)。

設(shè)計-實現(xiàn)-測試,軟件測試是開發(fā)后期的一個階段。

軟件測試職業(yè)和職位

軟件測試員

軟件測試工程師/程序分析員

高級軟件測試工程師/程序分析員

軟件測試組負責人軟件測試/編程負責人

軟件測試/質(zhì)量保證/項目經(jīng)理

軟件測試人員應(yīng)具備下列基本素質(zhì):1.具有探索精神2.具有創(chuàng)造性3.堅持不懈的精神4.故障排除專家5.判斷準確6.追求完美7.溝通能力軟件測試員工作目標與必備素質(zhì)軟件測試人才的現(xiàn)狀

1、軟件測試人員的合理比例

在軟件產(chǎn)業(yè)發(fā)達的國家:

軟件測試在人員配備和資金投入方面占據(jù)相當?shù)谋戎亍?/p>

微軟為打造Windows2000,1700多個開發(fā)人員,以及3200個測試人員,開發(fā)和測試人員之比約為三比五。

HP公司的測試人員和開發(fā)人員的比例為一比一,這是很多先進軟件企業(yè)通常的人員配比。

在國內(nèi):

企業(yè)往往忽視軟件測試,很多企業(yè)都沒有軟件測試部門,甚至不設(shè)置軟件測試的崗位,造成產(chǎn)品質(zhì)量得不到保證。

測試人員大都不到開發(fā)人員的5%,隨著產(chǎn)業(yè)和企業(yè)的發(fā)展,企業(yè)必然需要大量的測試人員。

軟件測試人才需求快速增長,體現(xiàn)在:

(1)中國軟件產(chǎn)業(yè)正在快速增長,需要大量軟件相關(guān)人才;

(2)軟件企業(yè)的發(fā)展要求測試人才達到一個合適的比例。

近一兩年軟件企業(yè)開始認識到軟件測試對于提高軟件質(zhì)量的重要性,開始重視軟件測試,但由于歷史的原因,找不到合適的軟件測試人員。三個招聘案

慧谷-博為峰軟件測試工作室曾經(jīng)接受企業(yè)委托,招聘二十名軟件測試工程師,結(jié)果收到的簡歷不到十份,合格的只有三份,最后錄用的只有一人;而招聘一名程序員就會收到六十多份簡歷。

上海一位軟件企業(yè)的副總裁說,他們曾招聘8名基于Unix操作系統(tǒng)的測試工程師,但是半年多招不到合適的人。

微軟亞洲工程院院長張宏江博士最近告訴媒體:“過去兩三個月,我最主要的精力都花在雇人上。遺憾的是,1萬多名應(yīng)聘者中,居然找不到足夠合適的人?!蔽④涀罹o缺的人才包括軟件測試人員、軟件項目管理員、軟件架構(gòu)師,1萬多名應(yīng)聘者中最后合格的只有50多人。測試高手是怎樣煉成的大俠江湖閱歷武術(shù)招式內(nèi)功心法高人指點必勝信念測試高手項目經(jīng)驗測試技術(shù)基礎(chǔ)知識名師指點自信問題什么是軟件?計算機中與硬件相結(jié)合的一部分包括程序和文檔什么是Bug?Bug—小蟲子計算機中硬件或軟件的錯誤軟件中(包括程序和文檔)不符合用戶需求的問題判斷軟件問題是否是Bug的唯一標準世界上不存在沒有缺陷的軟件可以通過兩種途徑開發(fā)出沒有錯誤的軟件:在一開始就防止引入錯誤識別潛藏在代碼中的錯誤,找到并消滅它們事實由軟件設(shè)計故障和計算機硬件設(shè)計故障而引發(fā)的系統(tǒng)失效的比例大約是:10:1!!!運行軟件的駐留故障密度(每千行代碼的故障數(shù))要求很高的財務(wù)或財產(chǎn)軟件為:每千行代碼1-10個故障關(guān)鍵的生命軟件為每千行代碼0.01-1個故障1.1軟件錯誤與缺陷軟件與生俱來就有可能存在著缺陷?如何防止和減少這些可能存在的問題?軟件測試!!軟件缺陷與定義軟件缺陷定義軟件未達到產(chǎn)品說明書中已經(jīng)標明的功能軟件出現(xiàn)了產(chǎn)品說明書中指明不會出現(xiàn)的錯誤軟件未達到產(chǎn)品說明書中雖未指出但應(yīng)當達到的目標軟件功能超出了產(chǎn)品說明書中指明的范圍軟件測試人員認為軟件難以理解、不易使用或最終用戶認為該軟件使用效果不好軟件缺陷的特征

“看不到”

——軟件的特殊性決定了缺陷不易看到

“看到但是抓不到”

——發(fā)現(xiàn)了缺陷,但不易找到問題發(fā)生的原因所在

軟件缺陷產(chǎn)生的原因軟件產(chǎn)品說明書(56%)設(shè)計方案(27%)編碼(7%)其他(10%)軟件缺陷修復(fù)的代價IBM的研究結(jié)果表明,缺陷存在放大趨勢由此可見,問題發(fā)現(xiàn)越早,解決問題的代價就越小,這是軟件開發(fā)過程中的黃金法則。圖測試工作量和軟件缺陷數(shù)量之間的關(guān)系軟件測試的定義1979年,Glenford

J.Myers:軟件測試是為了發(fā)現(xiàn)錯誤而運行程序的過程1983年,IEEE(國際電器電子工程師學會)測試是使用人工或自動的手段來運行或檢測某個系統(tǒng)的過程,其目的在于檢測它是否滿足約定的需求或是比較預(yù)期結(jié)果與實際結(jié)果之間的差別1.2什么是軟件測試軟件測試的特性挑剔性提高軟件質(zhì)量,盡可能多的發(fā)現(xiàn)至今仍未發(fā)現(xiàn)的錯誤復(fù)雜性需要考慮全面不徹底性輸入量太大輸出結(jié)果太多軟件實現(xiàn)途徑太多軟件規(guī)格說明沒有客觀標準注:不能證明錯誤不存在經(jīng)濟性軟件測試的目標和原則測試目標尋找錯誤,并且是最大可能的找出最多的錯誤。證明程序中有故障存在,并力求設(shè)計出最能暴露錯誤的測試方案測試不是為了顯示程序是好的,而是應(yīng)該從軟件中包含有缺陷和故障這個假定出發(fā)去測試程序,從中發(fā)現(xiàn)盡可能多的軟件故障。在談到軟件測試時,許多人都引用GrenfordJ.Myers的觀點:①軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;

②測試是為了證明程序有錯,而不是證明程序無錯誤。

③一個好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;

④一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。測試原則軟件測試的原則尚沒有標準的說法,大多是經(jīng)驗之談,一般有下面幾條可作為測試的基本原則。(1)所有的測試都應(yīng)追溯到用戶需求。(2)盡早的和及時的測試,應(yīng)作為軟件開發(fā)人員的座右銘。(3)設(shè)計時應(yīng)完成測試計劃,詳細的測試用例定義可在設(shè)計模型確定后開始,測試可在代碼產(chǎn)生之前進行計劃和設(shè)計。(4)測試用例應(yīng)當由測試數(shù)據(jù)和與之對應(yīng)的預(yù)期結(jié)果組成。(5)在程序提交測試后,應(yīng)當由專門的測試人員進行測試,避免由程序設(shè)計者自行檢查程序。(6)測試用例應(yīng)包括合理的輸入條件和不合理的輸入條件(7)嚴格執(zhí)行測試計劃,排除測試的隨意性。(8)充分注意測試當中的群體和集中現(xiàn)象。(9)避免殺蟲劑現(xiàn)象(10)要對每一個測試結(jié)果做全面的檢查。(11)完全測試是不可能的,測試需要終止。(12)測試無法顯示潛伏的軟件缺陷(13)程序修改后要回歸測試(14)不是所有軟件缺陷都要修復(fù)(15)保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為維護工作提供充分的資料。測試結(jié)果分析改正錯誤可靠性分析軟件配置測試配置測試工具測試結(jié)果錯誤預(yù)期結(jié)果修正的軟件預(yù)測的可靠性回歸測試圖

測試信息流程測試信息流程測試停止的標準(1)測試時間超過了預(yù)定期限,則停止測試。(2)執(zhí)行了所有的測試用例,但并沒有發(fā)現(xiàn)故障,則停止測試。(3)使用特定的測試用例設(shè)計方案,作為判斷測試停止的基礎(chǔ)。(4)正面指出了停止測試的具體要求,即停止測試的標準可定義為查出某一預(yù)定數(shù)目的故障。(5)根據(jù)單位時間內(nèi)查出故障的數(shù)量決定是否停止測試。1.3軟件質(zhì)量保證軟件質(zhì)量的定義——1983年,IEEE軟件系統(tǒng)或軟件產(chǎn)品滿足規(guī)定和隱含的與需求能力有關(guān)的全部特征和特性。軟件產(chǎn)品質(zhì)量滿足用戶要求的程度軟件各種屬性的組合程度用戶對軟件產(chǎn)品的綜合反映程度軟件在使用過程中滿足用戶要求程度①軟件需求是衡量軟件質(zhì)量的基礎(chǔ),不符合需求的軟件就不具備質(zhì)量。設(shè)計的軟件應(yīng)在功能、性能等方面都符合要求,并能可靠地運行。②軟件結(jié)構(gòu)良好,易讀、易于理解,并易于修改、維護。③軟件系統(tǒng)具有友好的用戶界面,便于用戶使用。④軟件生存周期中各階段文檔齊全、規(guī)范,便于配置、管理。McCall等人對軟件的質(zhì)量特性作了如下定義:正確性可靠性易用性效率易維護性可移植性完整性可測試性靈活性復(fù)用性互聯(lián)性質(zhì)量管理的發(fā)展階段

(1)產(chǎn)品質(zhì)量檢驗階段

(2)統(tǒng)計質(zhì)量管理階段

(3)全面質(zhì)量管理階段1900手工操作者專職檢驗員1920過程統(tǒng)計技術(shù)1931全面質(zhì)量管理19602000以顧客為中心階段時間質(zhì)量管理的發(fā)展階段從質(zhì)量管理理論的發(fā)展歷史可以看出:

——質(zhì)量管理從單純的對產(chǎn)品質(zhì)量進行檢驗

發(fā)展到對產(chǎn)品形成過程進行控制

——控制方法從靜態(tài)發(fā)展到動態(tài)的、持續(xù)的

過程改進

——其核心思想已表現(xiàn)為對過程的策劃、控

制和過程能力的持續(xù)改進軟件能力成熟度模型

軟件能力成熟度模型(CMM,CapabilityMaturityModel):是軟件行業(yè)標準模型,用來定義和評價軟件企業(yè)開發(fā)過程的成熟度,提供如何做才能夠提高軟件質(zhì)量的指導。

CMM的基本原理:

CMM將軟件組織的過程能力成熟度分為5個級別,每一個級別定義一組過程能力目標,并描述要達到這些目標應(yīng)該采取的各種實踐活動。CMM的主要作用:

提供了一個軟件過程改進的框架。根據(jù)CMM模型,軟件開發(fā)者(機構(gòu)或組織)能夠大幅度的提高按計劃、高效率、低成本的提交有質(zhì)量保證的軟件產(chǎn)品的能力。1、CMM的基本過程概念

過程:

為達到目的而執(zhí)行的所有步驟的系列。軟件過程:

開發(fā)和維護軟件及其相關(guān)產(chǎn)品的一組活動、方法、實踐和改革。軟件過程結(jié)構(gòu):

對組織標準軟件過程的一種高級別描述,它描述組織標準軟件過程內(nèi)部的過程元素之間的順序、接口、內(nèi)部依賴等關(guān)系,以及與外部過程之間的接口和依賴關(guān)系。

軟件過程元素:

用于描述軟件過程的基本元素,每一個過程元素包含一組定義的、有限的、封閉的相關(guān)任務(wù)。軟件過程定義:

CMM中過程定義的基本概念是定義組織的標準軟件過程。初始級優(yōu)化級已管理級已定義級可重復(fù)級成熟度風險CMM五個等級

2、CMM的5個分級標準

CMM的分級結(jié)構(gòu)和其主要特征:

初始級:其特點是軟件過程無秩序,有時甚至是混亂的。

可重復(fù)級:已建立了基本的項目管理過程,可用于對成本、進度和功能特性進行跟蹤。

已定義級:用于管理的、工程的軟件過程均已實現(xiàn)文檔化、標準化,并形成了整個軟件組織的標準軟件過程。

管理級:軟件過程和產(chǎn)品質(zhì)量有詳細的度量標準,軟件過程和產(chǎn)品質(zhì)量得到了定量的認證和控制。

優(yōu)化級:通過對來自過程、新概念和新技術(shù)等方面各種有用信息的定量分析,能夠不斷地、持續(xù)性地對過程進行改進。

除第一級外,CMM的每一級是按照完全相同的內(nèi)部結(jié)構(gòu)構(gòu)成的。

成熟度等級為頂層,不同的成熟度等級反映了軟件組織的軟件過程能力和該組織可能實現(xiàn)預(yù)期的程度。

ISO9000標準簡介ISO9000標準

——是為制造行業(yè)制定的質(zhì)量管理和質(zhì)量評判的一系列標準

——定義了一套基本達標的做法,有助于企業(yè)能夠一致地交付符合客戶質(zhì)量要求的產(chǎn)品(或服務(wù))ISO9000標準的目標

——在于開發(fā)過程,而不是產(chǎn)品

——關(guān)心的是進行工作的組織方式,而不是工作成果.

ISO9000只決定過程的要求是什么,而不管如何達到。即:ISO9000指出要做什么,但不指出怎樣做。1、ISO9000標準的構(gòu)成

ISO9000系列標準主要由下列標準構(gòu)成:

ISO9000:2000《質(zhì)量管理體系:基礎(chǔ)和術(shù)語》

ISO9000:2000《質(zhì)量管理體系:要求》

ISO9000:2000《質(zhì)量管理體系:業(yè)績改進指南》

2、ISO9000標準的要求(1)開發(fā)詳細的質(zhì)量計劃和程序,控制配置管理、產(chǎn)品驗證、合法性檢查、不規(guī)范行為和修正措施。(2)準備和接受軟件開發(fā)計劃證書,包括項目定義、產(chǎn)品驗證、合法性檢查、不規(guī)范行為和修正措施。

(3)使用客戶容易理解、測試時容易進行合法性檢查的用語來表達說明書。(4)計劃、開發(fā)、編制軟件測試計劃。(5)開發(fā)檢測軟件是否滿足客戶要求的方法。(6)實施軟件合法性檢查和驗收測試。(7)維護測試結(jié)果的記錄。(8)控制調(diào)查研究和解決軟件缺陷的方式。(9)證明產(chǎn)品在發(fā)布前就緒。(10)開發(fā)控制產(chǎn)品發(fā)布過程的程序。

(11)明確指出和規(guī)定應(yīng)該收集的質(zhì)量信息。(12)應(yīng)用統(tǒng)計技術(shù)的方法分析軟件開發(fā)過程。(13)應(yīng)用統(tǒng)計技術(shù)的方法評估產(chǎn)品質(zhì)量。3、ISO9000質(zhì)量管理的八項原則(1)以客戶為關(guān)注的焦點(2)領(lǐng)導的作用(3)企業(yè)全員的參與(4)過程方法(5)管理的系統(tǒng)方法(6)持續(xù)的改進(7)基于事實的決策策略(8)與供方互利的關(guān)系軟件測試管理軟件測試作用軟件測試管理系統(tǒng)的組成建立軟件測試管理體系的步驟測試計劃單元測試集成測試確認測試系統(tǒng)測試驗收測試測試總結(jié)與報告1.4軟件測試過程軟件測試階段組成測試計劃測試設(shè)計測試開發(fā)測試執(zhí)行測試評估待測程序單元測試確認測試驗收測試測試計劃項目啟動初期必須規(guī)劃計劃是“動態(tài)的”什么是單元測試檢查程序的最小單元模塊進行正確性檢驗的測試工作測試模塊在語法、格式和邏輯上的錯誤單元測試目的保證每個模塊單獨運行正確多采用白盒技術(shù)檢查模塊控制結(jié)構(gòu)的某些特殊路徑期望覆蓋盡可能多的出錯點單元?人為規(guī)定的最小功能模塊單元測試主要任務(wù)對各模塊進行測試解決以下5個方面的測試問題模塊接口局部數(shù)據(jù)結(jié)構(gòu)邊界條件獨立的路徑錯誤處理模塊接口測試模塊接受輸入的實際參數(shù)個數(shù)與模塊的形式參數(shù)個數(shù)是否一致。輸入的實際參數(shù)與模塊的形式參數(shù)的類型是否匹配。輸入的實際參數(shù)與模塊的形式參數(shù)所使用單位是否一致調(diào)用其他模塊時,所傳送的實際參數(shù)個數(shù)與被調(diào)用模塊的形式參數(shù)的個數(shù)是否相同。調(diào)用其他模塊時,所傳送的實際參數(shù)與被調(diào)用模塊的形式參數(shù)的類型是否匹配。調(diào)用其他模塊時,所傳送的實際參數(shù)與被調(diào)用模塊的形式參數(shù)的單位一致。調(diào)用內(nèi)部函數(shù)時,參數(shù)的個數(shù)、屬性和次序是否正確在模塊有多個入口的情況下,是否有引用與當前入口無關(guān)的參數(shù)。是否會修改了只讀型參數(shù)。出現(xiàn)全局變量時,這些變量是否在所有引用它們的模塊中都有相同的定義。有沒有把某些約束當做參數(shù)來傳送返回局部數(shù)據(jù)結(jié)構(gòu)測試內(nèi)部數(shù)據(jù)能否保持完整性應(yīng)注意幾類錯誤不正確或不一致的類型說明錯誤的初始化或默認值錯誤的變量名,如拼寫錯誤或縮寫錯誤下溢、上溢或者地址錯誤注意:全程數(shù)據(jù)對模塊的影響返回模塊邊界條件測試數(shù)據(jù)邊界處模塊能否正常工作軟件常在邊界處發(fā)生錯誤(循環(huán)條件)通常為單元測試的最后一步,仔細限制數(shù)據(jù)處理,設(shè)置邊界可能與邊界有關(guān)的數(shù)據(jù)類型數(shù)值、字符、數(shù)量、尺寸等邊界條件設(shè)置注意項首個、最后一個;最大、最小;最長、最短;最高、最矮等特征返回模塊中所有獨立執(zhí)行路徑測試也稱為覆蓋測試常見錯誤誤用或不正確的算術(shù)優(yōu)先級混合類型的運算初始化的錯誤計算的精確度不夠表達式中的不正確符號表示返回各種錯誤處理測試若模塊在工作中發(fā)生錯誤,出錯處理是否有效檢查程序出錯處理時,可能情況對運行發(fā)生的錯誤描述難以理解所報告的錯誤與實際遇到的錯誤不一致出錯后,在錯誤處理之前就引起了系統(tǒng)的干預(yù)異常情況的處理不正確提供的錯誤定位信息不足,以致無法找到出錯的準確原因返回單元測試的執(zhí)行過程程序編寫、復(fù)查和語法正確性驗證后進行單元測試測試用例設(shè)計應(yīng)與復(fù)審工作相結(jié)合根據(jù)設(shè)計信息選取數(shù)據(jù),可增大發(fā)現(xiàn)上述各類錯誤的可能性需設(shè)置若干輔助測試模塊驅(qū)動模塊(Driver)模擬被測試模塊的上級模塊用來接收測試數(shù)據(jù),啟動被測模塊并輸出結(jié)果被調(diào)用模擬子模塊/樁模塊(Sub)模擬被測模塊工作過程中所調(diào)用的模塊圖2-3顯示了一般的單元測試環(huán)境圖

一般單元測試環(huán)境

什么時候進行單元測試?由誰來進行單元測試?單元測試的依據(jù)是什么?單元測試的通過標準是什么?程序員編碼之后,但要做必要準備工作白盒測試工程師或開發(fā)人員源程序(程序和注釋);項目《詳細設(shè)計》文檔不同公司有不同標準例子該程序?qū)崿F(xiàn)如下功能:在主函數(shù)main里面定義了一個含有5個整型元素的數(shù)組,用1個循環(huán)來實現(xiàn)數(shù)組元素的輸入,每次循環(huán)都調(diào)用1次iszero函數(shù),如果輸入的數(shù)組元素不等于0,則打印輸出本身;如果為0,則輸出1。一般步驟編譯運行程序(能否運行)靜態(tài)測試(代碼是否符合規(guī)范)動態(tài)測試(深入檢查代碼正確性、容錯性、邊界值)#include<stdio.h>voidiszero(intm){If(m!=0)printf("%d",m);elseprintf("%d",1);}voidmain(void){inta[5];inti=0;printf("請輸入5個整數(shù)\n");for(i=0,i<=4,i++){scanf("%d",&a[i])iszero(a[i]);}}邊界循環(huán)次數(shù)控制1、編譯運行程序編譯運行程序,輸入輸出2、靜態(tài)測試3、動態(tài)測試邊界值問題非法數(shù)據(jù)的容錯性非法數(shù)據(jù)小數(shù),字符等,Scanf函數(shù)錯誤判斷能力不強驅(qū)動模塊與樁模塊圖驅(qū)動模塊與樁模塊例子:#include<stdio.h>voidmain(void){inta=1;intb=2;intc;c=fun1(a,b);}intfun1(intx,inty){returnx+y;}集成測試概念將通過單元測試的單元模塊組裝成系統(tǒng)或子系統(tǒng)再進行測試集成測試目的驗證組成軟件系統(tǒng)的各模塊的接口和交互作用主要測試軟件結(jié)構(gòu)問題多為黑盒測試適當輔以白盒測試,以便能對主要控制路徑進行測試集成測試主要任務(wù)檢查系統(tǒng)是否符合實際軟件結(jié)構(gòu)發(fā)現(xiàn)與接口有關(guān)的各種錯誤主要解決以下5個方面的測試問題組合后檢查模塊相互調(diào)用時,數(shù)據(jù)經(jīng)過接口是否丟失檢查能否達到預(yù)期要求的各項功能一個模塊的功能是否會對另一個模塊的功能產(chǎn)生不利的影響全局數(shù)據(jù)結(jié)構(gòu)是否有問題,會不會被異常修改單個模塊的誤差積累起來,是否被放大,從而達到不可接受的程度集成測試方法(分類)非增量式集成增量式集成自頂向下集成(top-downintegration)自底向上集成(bottom-upintegration)非增量式測試一步到位方法來進行測試對所有模塊進行個別的單元測試后,按程序結(jié)構(gòu)圖將各模塊連接起來,把連接后的程序當做一個整體進行測試圖2-5給出該集成測試方法的一個經(jīng)典例子被測程序結(jié)構(gòu)圖驅(qū)動模塊樁模塊驅(qū)動模塊樁模塊返回增量式測試逐步實現(xiàn)自頂向下增量式測試逐步集成和逐步測試是按結(jié)構(gòu)圖自上而下進行集成的順序集成主控模塊(主程序)按照軟件控制層次結(jié)構(gòu)向下進行集成自頂向下集成集成測試步驟主控模塊作為測試驅(qū)動器,把對主控模塊進行單元測試時引入的被調(diào)用

溫馨提示

  • 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

提交評論