版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件測試技術,中國水利水電出版社,21世紀高等院校計算機系列教材,第一章 概 述, 本章要點 軟件測試的發(fā)展歷史; 軟件測試技術的分類方法; 軟件測試原則; 軟件測試的定義; 軟件測試同軟件開發(fā)之間的關系; 軟件測試與開發(fā)模型; 軟件測試工作流程。, 本章目標 了解軟件測試的發(fā)展歷程和行業(yè)現(xiàn)狀; 掌握軟件測試技術的分類; 理解軟件測試的目的和軟件測試原則,以及了解 人們對軟件測試行業(yè)的錯誤認識; 掌握軟件測試中的基本定義、基本知識; 理解軟件開發(fā)與軟件測試的關系。,1.1軟件測試的發(fā)展歷程及現(xiàn)狀 1.1.1軟件測試的發(fā)展歷程 20世紀50-60年代,軟件仍然處于次要位置,測試理論和方法的發(fā)展比
2、較緩慢。 70年代以后,軟件技術的成熟和完善使得軟件測試的規(guī)模和復雜度加大,軟件測試也逐漸形成了一套完整的體系,逐漸走向規(guī)范化。 1.1.2軟件測試的現(xiàn)狀 與一些發(fā)達國家相比,國內測試工作還存在一定的差距。國內測試人員所占比例小,但是,在軟件測試實現(xiàn)方面都是相當?shù)?,而且向產業(yè)化方向發(fā)展。,1.2 什么是軟件測試 1.2.1軟件測試的定義 根據(jù)側重點的不同,主要有以下三種觀點: 1)1983年IEEE將軟件測試定義為:“使用人工或自動手段運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別”,該定義明確地提出了軟件測試以檢驗是否滿足需求為目標。 2)M
3、yers認為:“是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程”,明確提出了“尋找錯誤”是測試目的。,3)從軟件質量保證的角度看:是一種重要的軟件質量保證活動,其動機是通過一些經濟、高效的方法,捕捉軟件中的錯誤,從而達到保證軟件內在質量的目的。 測試過程中的活動包括“分析”軟件(靜態(tài)測試)和“運行”軟件(動態(tài)測試)。 也有人認為軟件測試(software testing)就是在軟件投入運行前,對軟件需求分析、設計規(guī)格說明和編碼的最終復審,是軟件質量保證的關鍵步驟。,軟件測試有兩個基本職責:即驗證和確認。 注意:區(qū)分軟件測試和軟件調試。 1.2.2軟件測試生命周期 測試的生命周期(software testin
4、g life cycle)分為幾個階段(如圖1-1所示 )。 前三個階段就是引入程序錯誤階段; 后三個階段就是清除程序錯誤的階段。,圖1-1 測試生命周期,1.2.3軟件開發(fā)與測試模型 下面我們將介紹幾種典型的軟件開發(fā)與測試模型。 一、軟件開發(fā)與測試V模型 在傳統(tǒng)開發(fā)過程中測試不受重視,僅把它作為在需求分析、概要設計、詳細設計及編碼之后的一個階段。尤其在瀑布模型中。 如圖1-2所示,在V模型中,描述了一些不同的測試級別,并說明了這些級別所對應的生命周期中不同的階段,清楚地描述了這些測試階段和開發(fā)過程期間的對應關系。,圖1-2 V模型示意圖,V模型適用于所有類型的開發(fā)過程,但并不一定適用于開發(fā)和
5、測試過程的所有方面。 二、軟件開發(fā)與測試W模型 由于各種原因,開發(fā)的每一個環(huán)節(jié)都可能產生錯誤,如果堅持各個階段的技術評審,就能夠盡早發(fā)現(xiàn)和預防錯誤。 圖1-3為軟件開發(fā)與測試的W 模型,形象地說明了軟件測試與開發(fā)的這種同步性。,圖1-3 W模型示意圖,應用該模型的優(yōu)點在于,每個軟件開發(fā)活動結束后就可以執(zhí)行相應的測試,如:在需求分析結束后,就可以進行需求分析測試。 三、軟件開發(fā)與測試H模型 與前兩種模型相比,H模型充分地體現(xiàn)了測試過程。如圖1-4所示的H 模型揭示了: 1、 軟件測試不僅僅指測試的執(zhí)行, 還包括很多其他的活動。 2、軟件測試是一個獨立的流程, 貫穿產品的整個開發(fā)周期, 與其它流程
6、并發(fā)進行。 3、軟件測試要盡早準備, 盡早執(zhí)行。,圖1-4 H模型示意圖,4、軟件測試根據(jù)被測物的不同是分層次的. 不同層次的測試活動可以是按照某個次序先后進行的, 但也可能是反復的。,1.2.4與軟件測試相關的術語 1.錯誤(Error) 程序員在編寫代碼時會出錯,我們把這種錯誤稱之為bug。隨著開發(fā)過程的進行,錯誤會不斷的放大。 2.缺陷(Default) 缺陷是錯誤的結果,更精確的說是錯誤的表現(xiàn)。 3.失效(Failure) 在缺陷運行時,常常會發(fā)生失效的情況。一種是過錯缺陷對應的失效;一種是遺漏缺陷對應的失效。 4.測試(Test) 測試是一項采用測試用例執(zhí)行軟件的活動,在這項活動中某
7、個系統(tǒng)或組成的部分將在特定的條件下運行,然后要觀察并記錄結果,以便對系統(tǒng)或組成部分進行評價。,5.測試用例(Test Case) 測試用例是為特定的目的而設計的一組測試輸入、執(zhí)行條件和預期的結果。 6.回歸測試(Regression testing) 回歸測試的目的是為了測試由于修正缺陷而更新的應用程序,以確保徹底修正了上一個版本的缺陷,并且沒有引入新的軟件缺陷。 1.3軟件測試技術分類 從不同的角度,可以把軟件測試技術分成不同種類,如: 一 、從是否需要執(zhí)行被測軟件的角度,可分為靜態(tài)測試和動態(tài)測試。,那些不利用計算運行被測程序,而是通過其他手段達到測試目的的方法稱作靜態(tài)測試。下面我們對這幾種
8、靜態(tài)測試分別加以介紹: 代碼檢查 代碼走查 桌面檢查 同行評分 下面我們將要介紹的黑盒測試和白盒測試就屬于動態(tài)測試。 二、從軟件測試用例設計方法的角度,可分為黑盒測試(Black-Box Testing)和白盒測試(White-Box Testing)。,三、按照軟件測試的策略和過程分類,軟件測試可分為單元測試(Unit Testing)、集成測試(Integration Testing)、確認測試(Validation Testing)、系統(tǒng)測試(System Testing)和驗收測試(Verification Testing)。 1.4軟件測試的目的 測試真正的目的是使我們通過對軟件錯誤
9、的原 因和分布進行歸納,來發(fā)現(xiàn)并排除當前軟件產品的 缺陷,對在需求和設計過程中存在的問題查缺補漏,從而確保軟件產品的質量。,GMyers給出了關于測試的一些規(guī)則,我們也可以把這些規(guī)則看作是測試的目標: 1)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。 2)測試是為了證明程序有錯,而不是證明程序無錯。 3)一個好的測試用例在于他能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤。 4)一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。 這里要強調的一點是,軟件測試不只是軟件測試人員的工作,也是軟件開發(fā)人員和軟件使用者的工作。,1.5軟件測試的原則 1.5.1盡早地和不斷地進行軟件測試 IBM的研究結果表明,缺陷存在放大趨勢。圖1-
10、5表示了缺陷放大模型大致狀況。,圖1-5 缺陷放大模型,由此可見,問題發(fā)現(xiàn)越早,解決問題的代價就越小,這是軟件開發(fā)過程中的黃金法則。,1.5.2不可能完全的測試 對一個程序進行完全測試就是意味著在測試結束之后,再也不會發(fā)現(xiàn)其它的軟件錯誤了。其實,這是不可能的,主要原因有以下幾點: 一、不可能測試程序對所有可能輸入的響應。 二、不可能測試到程序每一條可能的執(zhí)行路徑 三、無法找出所有的設計錯誤 四、不能采用邏輯來證明程序的正確性,1.5.3增量測試,由小到大,圖1-7 測試資源關系圖,由小到大,指的是軟件測試的粒度。無論是傳統(tǒng)的軟件測試還是面向對象的軟件測試都要遵循這樣的原則。如圖1-7所示,多個
11、單元組合過渡到集成測試階段,集成測試階段過渡到更高級別的系統(tǒng)測試階段,虛線是各個測試階段的發(fā)布基線。隨著測試的逐步深入,范圍的逐步擴大,測試時間、可用資源也隨之增大。 1.5.4避免測試自己的程序 避免程序員測試自己的代碼的主要原因歸納如下: 1.程序員輕易不會承認自己寫的程序有錯誤。,2.程序員的測試思路有局限性,在做測試時很容易受到編程思路的影響。 3.多數(shù)程序員沒有嚴格正規(guī)的職業(yè)訓練,缺乏專業(yè)測試人員的意識。 4.程序員沒有養(yǎng)成錯誤跟蹤和回歸測試的習慣. 1.5.5設計周密的測試用例 軟件測試的本質就是針對要測試的內容確定一組測試用例。測試用例至少應該包括如下幾個基本信息: 1、在執(zhí)行測
12、試用例之前,應滿足的前提條件。 2、輸入(合理的、不合理的)。,3、預期輸出(包括后果和實際輸出)。 圖1-8顯示了一個典型的測試用例所應該具有的基本信息。,圖1-8 典型的測試用例信息,測試用例是測試工作的核心,應該盡量設計的周密細致,這樣才能更好的保證測試工作的質量。 下面舉例來說明這一點。 以一個實現(xiàn)登錄功能的小程序為例,它允許用戶選擇城市和地區(qū),輸入自己的賬號和密碼。 如圖1-9所示,通過Alt-F4組合鍵和“Exit”按鈕來終止程序,Tab鍵在區(qū)域中間移動。,圖1-9 登錄窗口,下面根據(jù)組成頁面的具體元素,分別從幾個方面做了一些比較全面的測試用例:,1. 下拉框和輸入框測試用例 表1
13、-1 下拉框和輸入框測試用例,2、功能測試 (表1-2 功能測試用例),3、各種錯誤數(shù)據(jù)的測試 表1-3 錯誤數(shù)據(jù)的測試用例,4、特殊測試 表1-4 特殊測試用例,1.5.6注意錯誤集中的現(xiàn)象 軟件缺陷的“扎堆”現(xiàn)象的常見形式: 1、對話框的某個控件功能不起作用,可能其他控件的功能也不起作用。 2、某個文本框不能正確顯示雙字節(jié)字符,則其他文本框也可能不支持雙字節(jié)字符。 3、聯(lián)機幫助某段文字的翻譯包含了很多錯誤,與其相鄰的上下段的文字可能也包含很多的語言質量問題。 4、安裝文件某個對話框的“上一步”或“下一步”按鈕被截斷,則這兩個按鈕在其他對話框中也可能被截斷。,1.5.7確認BUG的有效性 有
14、時候測試人員提交的BUG并不是真正的BUG。圖1-10具體地描述了無效BUG的來源。一般由A測試人員發(fā)現(xiàn)的BUG,一定要由另外一個B測試人員來進行確認,如果發(fā)現(xiàn)嚴重的BUG可以召開評審會進行討論和分析。,圖1-10 無效BUG來源構成圖,1.5.8合理安排測試計劃 合理的測試計劃有助于測試工作順利有序地進行,因此要求在對軟件進行測試之前所作的測試計劃中,應該結合了多種針對性強的測試方法、列出所有可使用資源,建立一個正確的測試目標; 要本著嚴謹、準確的原則,周到細致地做好測試前期的準備工作,避免測試的隨意性。尤其是要盡量科學合理地安排測試時間。,圖1-11 錯誤依賴關系,1.5.9回歸測試,這些
15、錯誤之間存在單純的依賴或者復雜的多重依賴關系,如圖1-11所示。 其中,(a)圖中的A、B 關系表達為:A錯誤依賴于B錯誤的關閉而關閉。如果多了一條路徑(如(b)圖中A、B、C關系),A錯誤依賴于B錯誤和C錯誤的同時關閉而關閉。(c)圖是(a)和(b)的復合方式,因程序中的錯誤存在著一對多,多對多的復雜關系而變得難以處理,并且有些錯誤關聯(lián)和依賴關系處于隱性狀態(tài)。 1.5.10測試結果的統(tǒng)計和分析 只有對這些輸出信息進行深入地統(tǒng)計、分析和比較,才能夠正確的鑒別測試后輸出的數(shù)據(jù),給出清晰的錯誤原因分析報告。當輸出的信息很龐大時,我們可以借助專業(yè)的測試工具。,1.5.11及時更新測試 事實上,有可能
16、導致測試失敗的原因還有很多,可大致歸納為如下幾點: 1、測試團隊管理者失職; 2、測試團隊中溝通不好; 3、測試團隊和項目團隊溝通不良; 4、測試過程中,執(zhí)行角色無準確定義; 5、測試團隊缺乏良好的培訓。,1.6軟件測試工作流程 一般的軟件測試總體工作流程如圖1-12所示:,圖1-12 軟件測試工作總體流程圖,1、需求階段 需求階段是軟件測試活動的前提。需求階段測試工作流程如圖1-13所示:,圖1-13 需求階段測試活動流程圖,2、設計防止帶地線合刀閘 2、防止帶負荷拉合隔離開關; 3、防止帶電掛接地線或接地刀閘; 4、防止帶接地線或合接地刀閘送電; 5、防止誤入帶電間隔,1.8.2系統(tǒng)運行環(huán)
17、境 客戶端平臺:windows98/2000、windows NT workstation、Linux等所有具有支持JAVA的瀏覽器系統(tǒng); 服務器端平臺:windows2000 server、windows NT Server、Linux、UNIX等所有支持JAVA Bean的系統(tǒng)平臺; 數(shù)據(jù)庫服務器:Oracle數(shù)據(jù)庫或SQL Server 2000數(shù)據(jù)庫或ACCESS數(shù)據(jù)庫。 Web服務器:Tomcat 5.0,1.8.3系統(tǒng)總體結構 兩票系統(tǒng)主要由兩部分構成,即:操作票子系統(tǒng)和工作票子系統(tǒng)。整個系統(tǒng)的總體結構如圖1-16所示: 1.8.4系統(tǒng)功能(略),圖1-16 兩票系統(tǒng)總體結構圖,本
18、章小結 本章介紹了軟件測試發(fā)展的歷程,以及其在國內的發(fā)展狀況。隨著軟件開發(fā)過程和開發(fā)技術的不斷改進,軟件測試理論和方法也在不斷完善,測試工具也在蓬勃發(fā)展。 通過本章的論述,可以了解到軟件測試已經不再只是進行簡單的程序邏輯檢查,而是一個伴隨著整個軟件開發(fā)過程的活動。 測試對象也不僅僅是程序代碼,而開發(fā)過程中產生的所有軟件產品,甚至是產品使用說明也包括在內。 測試過程中為了更好的保證軟件測試的質量,首先要遵循一定的測試原則,最為重要的就是應該盡早的進行測試。,其次,正確處理開發(fā)與測試之間的關系,更好的把開發(fā)與測試過程集成到一起。從而提高測試效率,節(jié)約測試成本。 本章所介紹的幾種軟件開發(fā)與測試模型,如:V模型、W模型和H模型,三種模型在不同程度上反映了軟件開發(fā)與軟件測試的關系。 其中,V模型非常明確地標明了測試過程中存在的不同級別,并且清楚地描述了測試和開發(fā)過程中各階段的對應關系。而W模型作為V模型的改進,更好地體現(xiàn)了軟件開發(fā)與軟件測試工作的同步性,更為明確地指出測試的對象不僅僅是程序本身,而且包括需求分析、概要設計和詳細設計說明書,強調了軟件測試是軟件開發(fā)過程中的一項重要的工作,貫穿于整個軟件開發(fā)過程。,H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 探究影響光合作用的因素(實驗方案設計)
- 地方政府債與城投行業(yè)監(jiān)測周報2024年第39期:各地加大資產盤活非稅收入大幅增長粵新蘇瓊發(fā)行近千億特殊再融資債 20241111 -中誠信
- 梅里斯達斡爾族區(qū)九年級上學期語文期末教學質量測查試卷
- 四年級數(shù)學(上)計算題專項練習及答案
- 自建房土地轉讓合同(2篇)
- 四年級《小數(shù)加法和減法》說課稿11篇
- 南京工業(yè)大學浦江學院《數(shù)據(jù)庫原理與應用》2021-2022學年期末試卷
- 電纜溝施工組織設計
- 武昌水果湖第二小學教學綜合樓工程施工組織設計
- 南京工業(yè)大學浦江學院《酒店市場營銷》2022-2023學年第一學期期末試卷
- 電力現(xiàn)貨市場基礎知識(課堂PPT)
- 掛牌儀式流程方案
- 電路分析教程第三版答案 燕慶明
- 四川省特種車輛警報器和標志燈具申請表
- 20200310公園安全風險辨識清單
- 華中科技大學官方信紙
- 60立方油罐容積細表
- WI-QA-02-034A0 燈具成品檢驗標準
- 農業(yè)信息技術 chapter5 地理信息系統(tǒng)
- 部編版六年級上語文閱讀技巧及解答
- 斯派克max操作手冊
評論
0/150
提交評論