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

下載本文檔

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

文檔簡介

軟件測試工具由安博測試空間技術(shù)中心/提供第一章概述軟件測試的發(fā)展歷史;軟件測試技術(shù)的分類方法;軟件測試原則;軟件測試的定義;軟件測試同軟件開發(fā)之間的關(guān)系;軟件測試與開發(fā)模型;軟件測試工作流程。1.1軟件測試的發(fā)展歷程及現(xiàn)狀

1.1.1軟件測試的發(fā)展歷程

20世紀(jì)50-60年代,軟件仍然處于次要位置,測試?yán)碚摵头椒ǖ陌l(fā)展比較緩慢。70年代以后,軟件技術(shù)的成熟和完善使得軟件測試的規(guī)模和復(fù)雜度加大,軟件測試也逐漸形成了一套完整的體系,逐漸走向規(guī)范化。

1.1.2軟件測試的現(xiàn)狀與一些發(fā)達(dá)國家相比,國內(nèi)測試工作還存在一定的差距。國內(nèi)測試人員所占比例小,但是,在軟件測試實現(xiàn)方面都是相當(dāng)?shù)?,而且向產(chǎn)業(yè)化方向發(fā)展。1.2什么是軟件測試

1.2.1軟件測試的定義

根據(jù)側(cè)重點的不同,主要有以下三種觀點:

1)1983年IEEE將軟件測試定義為:“使用人工或自動手段運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實際結(jié)果之間的差別”,該定義明確地提出了軟件測試以檢驗是否滿足需求為目標(biāo)。2)Myers認(rèn)為:“是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程”,明確提出了“尋找錯誤”是測試目的。

3)從軟件質(zhì)量保證的角度看:是一種重要的軟件質(zhì)量保證活動,其動機是通過一些經(jīng)濟、高效的方法,捕捉軟件中的錯誤,從而達(dá)到保證軟件內(nèi)在質(zhì)量的目的。

測試過程中的活動包括“分析”軟件(靜態(tài)測試)和“運行”軟件(動態(tài)測試)。也有人認(rèn)為軟件測試(softwaretesting)就是在軟件投入運行前,對軟件需求分析、設(shè)計規(guī)格說明和編碼的最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。

軟件測試有兩個基本職責(zé):即驗證和確認(rèn)。

注意:區(qū)分軟件測試和軟件調(diào)試。

1.2.2軟件測試生命周期測試的生命周期(softwaretestinglifecycle)分為幾個階段(如圖1-1所示)。前三個階段就是引入程序錯誤階段;后三個階段就是清除程序錯誤的階段。

圖1-1測試生命周期1.2.3軟件開發(fā)與測試模型下面我們將介紹幾種典型的軟件開發(fā)與測試模型。一、軟件開發(fā)與測試V模型

在傳統(tǒng)開發(fā)過程中測試不受重視,僅把它作為在需求分析、概要設(shè)計、詳細(xì)設(shè)計及編碼之后的一個階段。尤其在瀑布模型中。如圖1-2所示,在V模型中,描述了一些不同的測試級別,并說明了這些級別所對應(yīng)的生命周期中不同的階段,清楚地描述了這些測試階段和開發(fā)過程期間的對應(yīng)關(guān)系。

圖1-2V模型示意圖

V模型適用于所有類型的開發(fā)過程,但并不一定適用于開發(fā)和測試過程的所有方面。

二、軟件開發(fā)與測試W模型由于各種原因,開發(fā)的每一個環(huán)節(jié)都可能產(chǎn)生錯誤,如果堅持各個階段的技術(shù)評審,就能夠盡早發(fā)現(xiàn)和預(yù)防錯誤。圖1-3為軟件開發(fā)與測試的W模型,形象地說明了軟件測試與開發(fā)的這種同步性。

圖1-3W模型示意圖

應(yīng)用該模型的優(yōu)點在于,每個軟件開發(fā)活動結(jié)束后就可以執(zhí)行相應(yīng)的測試,如:在需求分析結(jié)束后,就可以進(jìn)行需求分析測試。三、軟件開發(fā)與測試H模型

與前兩種模型相比,H模型充分地體現(xiàn)了測試過程。如圖1-4所示的H模型揭示了:1、軟件測試不僅僅指測試的執(zhí)行,還包括很多其他的活動。2、軟件測試是一個獨立的流程,貫穿產(chǎn)品的整個開發(fā)周期,與其它流程并發(fā)進(jìn)行。3、軟件測試要盡早準(zhǔn)備,盡早執(zhí)行。

圖1-4H模型示意圖

4、軟件測試根據(jù)被測物的不同是分層次的.不同層次的測試活動可以是按照某個次序先后進(jìn)行的,但也可能是反復(fù)的。1.2.4與軟件測試相關(guān)的術(shù)語1.錯誤(Error)程序員在編寫代碼時會出錯,我們把這種錯誤稱之為bug。隨著開發(fā)過程的進(jìn)行,錯誤會不斷的放大。2.缺陷(Default)缺陷是錯誤的結(jié)果,更精確的說是錯誤的表現(xiàn)。3.失效(Failure)在缺陷運行時,常常會發(fā)生失效的情況。一種是過錯缺陷對應(yīng)的失效;一種是遺漏缺陷對應(yīng)的失效。 4.測試(Test)測試是一項采用測試用例執(zhí)行軟件的活動,在這項活動中某個系統(tǒng)或組成的部分將在特定的條件下運行,然后要觀察并記錄結(jié)果,以便對系統(tǒng)或組成部分進(jìn)行評價。

5.測試用例(TestCase)測試用例是為特定的目的而設(shè)計的一組測試輸入、執(zhí)行條件和預(yù)期的結(jié)果。6.回歸測試(Regressiontesting)回歸測試的目的是為了測試由于修正缺陷而更新的應(yīng)用程序,以確保徹底修正了上一個版本的缺陷,并且沒有引入新的軟件缺陷。

1.3軟件測試技術(shù)分類從不同的角度,可以把軟件測試技術(shù)分成不同種類,如:一、從是否需要執(zhí)行被測軟件的角度,可分為靜態(tài)測試和動態(tài)測試。那些不利用計算運行被測程序,而是通過其他手段達(dá)到測試目的的方法稱作靜態(tài)測試。下面我們對這幾種靜態(tài)測試分別加以介紹:①代碼檢查②代碼走查③桌面檢查④同行評分

二、從軟件測試用例設(shè)計方法的角度,可分為黑盒測試(Black-BoxTesting)和白盒測試(White-BoxTesting)。三、按照軟件測試的策略和過程分類,軟件測試可分為單元測試(UnitTesting)、集成測試(IntegrationTesting)、確認(rèn)測試(ValidationTesting)、系統(tǒng)測試(SystemTesting)和驗收測試(VerificationTesting)。

1.4軟件測試的目的

測試真正的目的是使我們通過對軟件錯誤的原因和分布進(jìn)行歸納,來發(fā)現(xiàn)并排除當(dāng)前軟件產(chǎn)品的缺陷,對在需求和設(shè)計過程中存在的問題查缺補漏,從而確保軟件產(chǎn)品的質(zhì)量。

G.Myers給出了關(guān)于測試的一些規(guī)則,我們也可以把這些規(guī)則看作是測試的目標(biāo):

1)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。

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

3)一個好的測試用例在于他能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤。

4)一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。這里要強調(diào)的一點是,軟件測試不只是軟件測試人員的工作,也是軟件開發(fā)人員和軟件使用者的工作。1.5軟件測試的原則1.5.1盡早地和不斷地進(jìn)行軟件測試

IBM的研究結(jié)果表明,缺陷存在放大趨勢。圖1-5表示了缺陷放大模型大致狀況。圖1-5缺陷放大模型由此可見,問題發(fā)現(xiàn)越早,解決問題的代價就越小,這是軟件開發(fā)過程中的黃金法則。

1.5.2不可能完全的測試

對一個程序進(jìn)行完全測試就是意味著在測試結(jié)束之后,再也不會發(fā)現(xiàn)其它的軟件錯誤了。其實,這是不可能的,主要原因有以下幾點:一、不可能測試程序?qū)λ锌赡茌斎氲捻憫?yīng)。二、不可能測試到程序每一條可能的執(zhí)行路徑三、無法找出所有的設(shè)計錯誤四、不能采用邏輯來證明程序的正確性

1.5.3增量測試,由小到大

圖1-7測試資源關(guān)系圖1.5.4避免測試自己的程序

避免程序員測試自己的代碼的主要原因歸納如下:1.程序員輕易不會承認(rèn)自己寫的程序有錯誤。2.程序員的測試思路有局限性,在做測試時很容易受到編程思路的影響。3.多數(shù)程序員沒有嚴(yán)格正規(guī)的職業(yè)訓(xùn)練,缺乏專業(yè)測試人員的意識。4.程序員沒有養(yǎng)成錯誤跟蹤和回歸測試的習(xí)慣.

1.5.5設(shè)計周密的測試用例軟件測試的本質(zhì)就是針對要測試的內(nèi)容確定一組測試用例。測試用例至少應(yīng)該包括如下幾個基本信息:1、在執(zhí)行測試用例之前,應(yīng)滿足的前提條件。2、輸入(合理的、不合理的)。3、預(yù)期輸出(包括后果和實際輸出)。

圖1-8典型的測試用例信息1.5.6注意錯誤集中的現(xiàn)象軟件缺陷的“扎堆”現(xiàn)象的常見形式:

1、對話框的某個控件功能不起作用,可能其他控件的功能也不起作用。

2、某個文本框不能正確顯示雙字節(jié)字符,則其他文本框也可能不支持雙字節(jié)字符。

3、聯(lián)機幫助某段文字的翻譯包含了很多錯誤,與其相鄰的上下段的文字可能也包含很多的語言質(zhì)量問題。4、安裝文件某個對話框的“上一步”或“下一步”按鈕被截斷,則這兩個按鈕在其他對話框中也可能被截斷。1.5.7確認(rèn)BUG的有效性有時候測試人員提交的BUG并不是真正的BUG。圖1-10具體地描述了無效BUG的來源。一般由A測試人員發(fā)現(xiàn)的BUG,一定要由另外一個B測試人員來進(jìn)行確認(rèn),如果發(fā)現(xiàn)嚴(yán)重的BUG可以召開評審會進(jìn)行討論和分析。圖1-10無效BUG來源構(gòu)成圖1.5.8合理安排測試計劃

合理的測試計劃有助于測試工作順利有序地進(jìn)行,因此要求在對軟件進(jìn)行測試之前所作的測試計劃中,應(yīng)該結(jié)合了多種針對性強的測試方法、列出所有可使用資源,建立一個正確的測試目標(biāo)。要本著嚴(yán)謹(jǐn)、準(zhǔn)確的原則,周到細(xì)致地做好測試前期的準(zhǔn)備工作,避免測試的隨意性。尤其是要盡量科學(xué)合理地安排測試時間。

圖1-11錯誤依賴關(guān)系1.5.9回歸測試1.5.10測試結(jié)果的統(tǒng)計和分析

只有對這些輸出信息進(jìn)行深入地統(tǒng)計、分析和比較,才能夠正確的鑒別測試后輸出的數(shù)據(jù),給出清晰的錯誤原因分析報告。當(dāng)輸出的信息很龐大時,我們可以借助專業(yè)的測試工具。1.5.11及時更新測試

事實上,有可能導(dǎo)致測試失敗的原因還有很多,可大致歸納為如下幾點:

1、測試團隊管理者失職;

2、測試團隊中溝通不好;

3、測試團隊和項目團隊溝通不良;

4、測試過程中,執(zhí)行角色無準(zhǔn)確定義;

5、測試團隊缺乏良好的培訓(xùn)。

北京測試空間科技發(fā)展有限公司是注冊于北京市海淀區(qū)高新技術(shù)園的軟件企業(yè),目前主要業(yè)務(wù)范圍包括軟件測試管理工具研發(fā)、軟件測試項目外包和軟件測試專業(yè)技術(shù)人才培養(yǎng)

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論