




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第3章章軟件工程基礎軟件工程基礎 3.13.1軟件工程基本概念軟件工程基本概念 計算機軟件(計算機軟件(softwaresoftware)是計算機系統(tǒng)中與硬件相互依存的另是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括一部分,是包括程序程序、數據數據及及相關文相關文檔檔的完整集合。的完整集合。國標(國標(GBGB)中對中對計算機軟件的定義計算機軟件的定義為:為:與計算機系統(tǒng)的有關的計算機程序、與計算機系統(tǒng)的有關的計算機程序、規(guī)程、規(guī)則,以及可能有的文件、文規(guī)程、規(guī)則,以及可能有的文件、文檔及數據。檔及數據。 軟件的特點軟件的特點: 1.1.軟件是一種邏輯實體,具有抽象性;軟件是一種邏輯實體,具
2、有抽象性;2.2.軟件沒有明顯的制作過程,一旦研制開軟件沒有明顯的制作過程,一旦研制開發(fā)成功,可以大量拷貝;發(fā)成功,可以大量拷貝;3.3.軟件在開發(fā)和運行、使用期間不存在磨軟件在開發(fā)和運行、使用期間不存在磨損、老化問題損、老化問題4.4.軟件的開發(fā)、運行對計算機系統(tǒng)具有依軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性,并受計算機系統(tǒng)的限制;賴性,并受計算機系統(tǒng)的限制;5.5.軟件復雜性高,成本昂貴;軟件復雜性高,成本昂貴;6.6.軟件開發(fā)涉及到諸多的社會因素。軟件開發(fā)涉及到諸多的社會因素。 軟件按功能可以分為軟件按功能可以分為:應用軟件應用軟件系統(tǒng)軟件系統(tǒng)軟件支撐軟件(工具軟件)支撐軟件(工具軟件)
3、軟件工程的概念的出現源自軟軟件工程的概念的出現源自軟件危機。件危機。 軟件危機軟件危機: : 指計算機軟件的開發(fā)和維護過程指計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。中所遇到的一系列嚴重問題。 主要表現在:主要表現在:(1 1)軟件需求的增長得不到滿足。用戶對系)軟件需求的增長得不到滿足。用戶對系統(tǒng)不滿意的情況經常發(fā)生。統(tǒng)不滿意的情況經常發(fā)生。(2 2)軟件開發(fā)成本和進度無法控制。開發(fā)成)軟件開發(fā)成本和進度無法控制。開發(fā)成本超出預算,開發(fā)周期大大超過規(guī)定日期本超出預算,開發(fā)周期大大超過規(guī)定日期的情況經常發(fā)生。的情況經常發(fā)生。(3 3)軟件質量難以保證。)軟件質量難以保證。(4 4)軟
4、件不可維護或維護程序非常低。)軟件不可維護或維護程序非常低。(5 5)軟件的成本不斷提高。)軟件的成本不斷提高。(6 6)軟件開發(fā)生產率的提高趕不上硬件的發(fā))軟件開發(fā)生產率的提高趕不上硬件的發(fā)展和應用需求的增長。展和應用需求的增長。 總之,可以將軟件危機歸結為總之,可以將軟件危機歸結為成本、質量、生產率等問題。成本、質量、生產率等問題。 軟件工程就是試圖用工程、科軟件工程就是試圖用工程、科學和數學的原理和方法研制、維學和數學的原理和方法研制、維護計算機軟件的有關技術及管理護計算機軟件的有關技術及管理方法。方法。 國標(國標(GBGB)中對中對軟件工程的定義軟件工程的定義為:軟為:軟件工程是應用
5、于計算機軟件的定義、件工程是應用于計算機軟件的定義、開發(fā)和維護的一整套方法、工具、文開發(fā)和維護的一整套方法、工具、文檔、實踐標準和工序。檔、實踐標準和工序。 軟件工程軟件工程3個要素個要素:方法方法、工具工具和和過過程程。方法是完成軟件工程項目的技術。方法是完成軟件工程項目的技術手段;工具支持軟件的開發(fā)、管理、手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。環(huán)節(jié)的控制、管理。 軟件工程的核心思想軟件工程的核心思想:把軟件產品看作是一個工程產品來把軟件產品看作是一個工程產品來處理計劃、可行性研究、工程審核、處理計劃、可行性研究、工
6、程審核、質量監(jiān)督等工程化的概念引入到軟質量監(jiān)督等工程化的概念引入到軟件生產當中,以期達到工程項目的件生產當中,以期達到工程項目的基本要素:進度、經費和質量的目基本要素:進度、經費和質量的目標。標。 軟件工程過程(軟件工程過程(Software Engineering ProcessSoftware Engineering Process): :把輸入轉化為輸出的一組彼此相關的資源和活動。把輸入轉化為輸出的一組彼此相關的資源和活動。資源包括人員、硬軟件工具、時間等;資源包括人員、硬軟件工具、時間等;通常包含通常包含4 4個基本活動:個基本活動:1 1)P P(PlanPlan)軟件規(guī)格說明。規(guī)定
7、軟件的功能軟件規(guī)格說明。規(guī)定軟件的功能及其運行時的限制。及其運行時的限制。2 2)D(Do) D(Do) 軟件開發(fā)。產生滿足規(guī)格說明的軟件。軟件開發(fā)。產生滿足規(guī)格說明的軟件。3 3)C C(CheckCheck)軟件確認。確認軟件能夠滿足客軟件確認。確認軟件能夠滿足客戶提出的要求。戶提出的要求。4 4)A A(ActionAction)軟件演進。為滿足客戶的變更軟件演進。為滿足客戶的變更要求,軟件必須在使用過程中演進。要求,軟件必須在使用過程中演進。軟件生命周期軟件生命周期(Software Life Cycle)是指將軟件產品從提出、實現、使用維是指將軟件產品從提出、實現、使用維護到停止使用
8、退役的過程。護到停止使用退役的過程。軟件產品從考慮其概念開始,到該軟件軟件產品從考慮其概念開始,到該軟件產品不能使用為止產品不能使用為止的整個時期都屬于軟的整個時期都屬于軟件生命周期。件生命周期。 可行可行性性研究研究需需求求分分析析概概要要設設計計詳詳細細設設計計實實現現測測試試使使用用維維護護退退役役定義定義階段階段開發(fā)開發(fā)階段階段維護維護階段階段上圖所示的軟件生命周期可以劃分為如下的幾個主要活動階段:上圖所示的軟件生命周期可以劃分為如下的幾個主要活動階段:1 1)可行性研究與計劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標和總)可行性研究與計劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標和總的要求,給出它的
9、功能、性能、可靠性以及接口等方面的可能方案,制的要求,給出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成開發(fā)任務的實施計劃。定完成開發(fā)任務的實施計劃。2 2)需求分析。對待開發(fā)軟件提出的需求進行分析并給出詳細定義)需求分析。對待開發(fā)軟件提出的需求進行分析并給出詳細定義。編寫軟件規(guī)格說明書及初步的用戶手冊,提交評審。編寫軟件規(guī)格說明書及初步的用戶手冊,提交評審。3 3)軟件設計。系統(tǒng)設計人員和程序設計人員應該在反復理解軟件)軟件設計。系統(tǒng)設計人員和程序設計人員應該在反復理解軟件需求的基礎上,給出軟件的結構、模塊的劃分、功能的分配以及處理流需求的基礎上,給出軟件的結構、模塊的劃分、功能的
10、分配以及處理流程。在系統(tǒng)比較復雜的情況下,設計階段可分解成概要設計和詳細設計程。在系統(tǒng)比較復雜的情況下,設計階段可分解成概要設計和詳細設計兩個階段。編寫概要設計說明書、詳細設計說明書和測試計劃初稿,提兩個階段。編寫概要設計說明書、詳細設計說明書和測試計劃初稿,提交評審。交評審。4 4)軟件實現。把軟件設計轉換成計算機可以接受的程序代碼。即)軟件實現。把軟件設計轉換成計算機可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計劃。單元測試計劃。5 5)軟件測試。在設計測試用例的基礎上,檢驗軟件的
11、各個組成部)軟件測試。在設計測試用例的基礎上,檢驗軟件的各個組成部分。編寫測試分析報告。分。編寫測試分析報告。6 6)運行和維護。將已交付的軟件投入運行,并在運行使用中不斷)運行和維護。將已交付的軟件投入運行,并在運行使用中不斷地維護,根據新提出的需求進行必要而且可能的擴充和刪改。地維護,根據新提出的需求進行必要而且可能的擴充和刪改。 軟件工程的目標軟件工程的目標是在給定成本、是在給定成本、進度的前提下,開發(fā)出具有有效進度的前提下,開發(fā)出具有有效性、可行性、可理解性、可維護性、可行性、可理解性、可維護性、可重用性、可移植性、可追性、可重用性、可移植性、可追蹤性和可互操作性且滿足用戶需蹤性和可互
12、操作性且滿足用戶需求的產品。求的產品。 軟件工程的理論和技術性研究的軟件工程的理論和技術性研究的內容主要包括內容主要包括: :軟件開發(fā)技術軟件開發(fā)技術和和軟件工程管理軟件工程管理。 為了達到軟件工程目標,在軟件開發(fā)為了達到軟件工程目標,在軟件開發(fā)過程中,必須遵循如下基本原則:過程中,必須遵循如下基本原則:1 1)抽象。抽取事物最基本的特性和行)抽象。抽取事物最基本的特性和行為,忽略非本質細節(jié)。采用分層次為,忽略非本質細節(jié)。采用分層次抽象,自頂向下,逐步求精的方法抽象,自頂向下,逐步求精的方法控制軟件開發(fā)過程的復雜性??刂栖浖_發(fā)過程的復雜性。2 2)信息隱蔽。采用封裝技術,將程序)信息隱蔽。采
13、用封裝技術,將程序模塊的實現隱藏起來,使模塊接口模塊的實現隱藏起來,使模塊接口盡量簡單。盡量簡單。 3 3)模塊化。)模塊化。 4 4)局部化。應保證模塊間具有松散的耦合關)局部化。應保證模塊間具有松散的耦合關系,模塊內部有較強的內聚性。系,模塊內部有較強的內聚性。5 5)確定性。軟件開發(fā)過程中所有概念的表達)確定性。軟件開發(fā)過程中所有概念的表達應是確定的、無歧義的,規(guī)范的。應是確定的、無歧義的,規(guī)范的。6 6)一致性。程序內外部接口應保持一致,系)一致性。程序內外部接口應保持一致,系統(tǒng)規(guī)格說明與系統(tǒng)行為應保持一致。統(tǒng)規(guī)格說明與系統(tǒng)行為應保持一致。7 7)完備性。應實現系統(tǒng)所需的全部功能。)完
14、備性。應實現系統(tǒng)所需的全部功能。 8 8)可驗證性。應容易檢查、測評、評審。)可驗證性。應容易檢查、測評、評審。 軟件開發(fā)環(huán)境或稱軟件工程環(huán)境軟件開發(fā)環(huán)境或稱軟件工程環(huán)境是全面支持開發(fā)全過程的軟件工是全面支持開發(fā)全過程的軟件工具集合。計算機輔助軟件工程具集合。計算機輔助軟件工程(CASECASE,Computer Aided Computer Aided Software EngineeringSoftware Engineering)是當前是當前軟件開發(fā)環(huán)境中富有特色的研究軟件開發(fā)環(huán)境中富有特色的研究工作和發(fā)展方向。工作和發(fā)展方向。 3.2 3.2 結構化分析方法結構化分析方法 軟件開發(fā)方法
15、是軟件開發(fā)過程所軟件開發(fā)方法是軟件開發(fā)過程所遵循的方法和步驟,包括分析方法、遵循的方法和步驟,包括分析方法、設計方法和程序設計方法。結構化設計方法和程序設計方法。結構化方法是一種系統(tǒng)的、成熟的軟件開方法是一種系統(tǒng)的、成熟的軟件開發(fā)方法,包括結構化分析、結構化發(fā)方法,包括結構化分析、結構化設計方法和結構化編程方法,其核設計方法和結構化編程方法,其核心和基礎是結構化程序設計理論。心和基礎是結構化程序設計理論。 1 1需求分析與需求分析方法需求分析與需求分析方法 軟件需求軟件需求是指用戶對目標軟件系統(tǒng)在功能、是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的期望。行為、性能、設計約束等方面的
16、期望。需求分析的任務需求分析的任務是發(fā)現需求、求精、建模和是發(fā)現需求、求精、建模和定義需求的過程。需求分析將創(chuàng)建所需的定義需求的過程。需求分析將創(chuàng)建所需的數據模型、功能模型和控制模型。數據模型、功能模型和控制模型。 需求分析階段的工作可概括為四個方面:需求分析階段的工作可概括為四個方面:1 1、需求獲??;、需求獲??;2 2、需求分析;、需求分析;3 3、編寫需、編寫需求規(guī)格說明書;求規(guī)格說明書;4 4、需求評審。、需求評審。 常見的需求分析方法有:常見的需求分析方法有:1 1)結構化分析方法,)結構化分析方法,包括:面向數據流的包括:面向數據流的結構化分析方法(結構化分析方法(SA-Struc
17、tured SA-Structured analysisanalysis),),面向數據結構的面向數據結構的JacksonJackson方方法 (法 ( J S D - - - - J a c k s o n s y s t e m J S D - - - - J a c k s o n s y s t e m development methoddevelopment method),),面向數據結構的面向數據結構的結構化數據系統(tǒng)開發(fā)方法(結構化數據系統(tǒng)開發(fā)方法(DSSD-Data DSSD-Data structured system development structured syst
18、em development methodmethod)。)。 2 2)面向對象的分析方法(面向對象的分析方法(OOA-OOA-Object-Oriented methodObject-Oriented method)。 2 2結構化分析方法結構化分析方法 結構化分析方法是結構化程序設結構化分析方法是結構化程序設計理論在軟件需求分析階段的運計理論在軟件需求分析階段的運用,其實質是著眼于數據流,自用,其實質是著眼于數據流,自頂向下,逐層分解,建立系統(tǒng)的頂向下,逐層分解,建立系統(tǒng)的處理流程,以數據流圖和數據字處理流程,以數據流圖和數據字典為主要工具,建立系統(tǒng)的邏輯典為主要工具,建立系統(tǒng)的邏輯模型。
19、模型。 結構化分析的常用工具有:結構化分析的常用工具有:1)1)數據流圖數據流圖( (DFD-Data Flow DFD-Data Flow Diagram)Diagram),數據流圖是描述數據數據流圖是描述數據處理過程的工具,主要包含如下處理過程的工具,主要包含如下圖形元素。圖形元素。 加工加工(轉換轉換)。是加工處理過程。是加工處理過程。 數據流。沿箭頭方向傳送數據。數據流。沿箭頭方向傳送數據。存儲文件存儲文件(數據源數據源)。即存放數據的文件。即存放數據的文件。源,潭。指系統(tǒng)和環(huán)境的接口源,潭。指系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體。屬系統(tǒng)之外的實體。 水電扣款表 出勤表 業(yè)績表 人事部門
20、 后勤部門 職工工資 工資 計算 圖圖 工資計算系統(tǒng)的頂層數據流圖工資計算系統(tǒng)的頂層數據流圖建立數據的步驟如下建立數據的步驟如下: :第一步第一步: :由外向里由外向里( (先畫系統(tǒng)的輸入先畫系統(tǒng)的輸入和輸出和輸出, ,然后畫系統(tǒng)的內部然后畫系統(tǒng)的內部) )第二步第二步: :自頂向下自頂向下( (順序完成頂層、順序完成頂層、中間層、底層的數據流圖中間層、底層的數據流圖) )第三步:逐層分解。第三步:逐層分解。 2 )2 ) 數 據 字 典數 據 字 典 ( ( D D - - - - D a t a D D - - - - D a t a Dictionary)Dictionary)。它是結構
21、化分析它是結構化分析方法的核心,是對方法的核心,是對DFDDFD中出現的中出現的被命名的圖形元素的確切解釋。被命名的圖形元素的確切解釋。3)3)判定樹。判定樹。 4) 4)判定表。判定表。 3 3、軟件需求規(guī)格說明書、軟件需求規(guī)格說明書 軟件需求規(guī)格說明書是需求分軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)析階段的最后成果,是軟件開發(fā)中的重要文擋之一中的重要文擋之一 。3.3 3.3 結構化設計方法結構化設計方法 3.3.1 3.3.1 軟件設計的基本概念軟件設計的基本概念軟件設計是軟件工程的重要階段,是軟件設計是軟件工程的重要階段,是一個把軟件需求轉換為軟件表示的一個把軟件需求轉換
22、為軟件表示的過程。過程。 軟件設計的基本目標軟件設計的基本目標是用比較抽象是用比較抽象概括的方式確定目標系統(tǒng)如何完成概括的方式確定目標系統(tǒng)如何完成預定的任務,即軟件設計是確定系預定的任務,即軟件設計是確定系統(tǒng)的物理模型。統(tǒng)的物理模型。 從技術觀點來看,從技術觀點來看,軟件設計包括軟件設計包括軟件軟件結構設計、數據設計、接口設計、過程結構設計、數據設計、接口設計、過程設計。設計。 從工程管理角度來看,軟件設計分兩從工程管理角度來看,軟件設計分兩步完成:概要設計和詳細設計。步完成:概要設計和詳細設計。 軟件設計的一般過程是:軟件設計是軟件設計的一般過程是:軟件設計是一個迭代的過程;先進行高層次的結
23、構一個迭代的過程;先進行高層次的結構設計;后進行低層次的過程設計;穿插設計;后進行低層次的過程設計;穿插進行數據設計和接口設計。進行數據設計和接口設計。 軟件設計應遵循的基本原理及相關概念:軟件設計應遵循的基本原理及相關概念:(1)(1)抽象。抽象。(2)(2)模塊化。模塊化。(3)(3)信息隱蔽。信息隱蔽。(4)(4)模塊獨立性。模塊獨立性。( (衡量軟件的模塊獨立衡量軟件的模塊獨立性使用內聚性和耦合性兩個度量標準,性使用內聚性和耦合性兩個度量標準,應盡量做到應盡量做到高內聚,低耦合高內聚,低耦合) ) 3.3.2 3.3.2 概要設計概要設計 1 1、概要設計的任務、概要設計的任務 軟件軟
24、件概要設計的基本任務概要設計的基本任務是:設是:設計軟件系統(tǒng)結構計軟件系統(tǒng)結構; ;數據結構及數數據結構及數據庫設計據庫設計; ;編寫概要設計文檔編寫概要設計文檔; ;概概要設計文檔評審。要設計文檔評審。 常用的軟件結構設計工具是結構圖常用的軟件結構設計工具是結構圖( (SC-SC-Structrue Chart)-Structrue Chart),也稱程序結構也稱程序結構圖,它包含如下幾個基本圖符圖,它包含如下幾個基本圖符: : 經常使用的結構圖有四種模塊:經常使用的結構圖有四種模塊: 傳入模塊,傳出模塊,交換模塊傳入模塊,傳出模塊,交換模塊和協(xié)調模塊。和協(xié)調模塊。 一般模塊一般模塊控制信息
25、控制信息數據信息數據信息2 2、面向數據流的設計方法、面向數據流的設計方法 典型的數據流類型有兩種:典型的數據流類型有兩種:變換型變換型和和事物型事物型。 變換型數據處理問題的工作過程變換型數據處理問題的工作過程大致分為三步,即取得數據、變換大致分為三步,即取得數據、變換數據和輸出數據。數據和輸出數據。 在一個事物型的數據流中,事物在一個事物型的數據流中,事物中心接收數據,分析每個事物以確中心接收數據,分析每個事物以確定它的類型,根據事物類型選取一定它的類型,根據事物類型選取一條活動通路。條活動通路。 信息流 輸入流 輸出流 變換流 外部表示 內部表示 信息 時間 圖圖 變換型數據流圖變換型數
26、據流圖 事務 事務中心 通路 圖圖 事物型數據流圖事物型數據流圖3.3.3 3.3.3 詳細設計詳細設計 詳細設計的任務詳細設計的任務是為軟件結構圖是為軟件結構圖中的每一個模塊確定實現算法和中的每一個模塊確定實現算法和局部數據結構,用某種選定的表局部數據結構,用某種選定的表達工具表示算法和數據結構的細達工具表示算法和數據結構的細節(jié)。節(jié)。常見的過程設計工具有:常見的過程設計工具有:(1)(1)圖形工具:程序流程圖,圖形工具:程序流程圖,N-SN-S,PADPAD。(2)(2)表格工具:判定表。表格工具:判定表。(3)(3)語言工具:語言工具:PDL(PDL(偽碼偽碼) )。對程序流程圖,對程序流
27、程圖,N-SN-S圖,圖,PADPAD圖要求有圖要求有所了解,能看懂簡單的圖形。所了解,能看懂簡單的圖形。3.4 3.4 軟件測試軟件測試 軟件測試是保證軟件質量的重軟件測試是保證軟件質量的重要手段,要手段,其主要過程涵蓋了整個其主要過程涵蓋了整個軟件生命期的過程軟件生命期的過程,包括需求定,包括需求定義階段的需求測試、編碼階段的義階段的需求測試、編碼階段的單元測試、集成測試以及后期的單元測試、集成測試以及后期的確認測試、系統(tǒng)測試,驗證軟件確認測試、系統(tǒng)測試,驗證軟件是否合格,能否交付用戶使用等。是否合格,能否交付用戶使用等。 軟件測試要以軟件測試要以查找錯誤查找錯誤為中心,為中心,而不是為了
28、演示軟件的正確功能。而不是為了演示軟件的正確功能。軟件測試是為了發(fā)現錯誤,一個軟件測試是為了發(fā)現錯誤,一個成功的測試是發(fā)現了至今尚未發(fā)成功的測試是發(fā)現了至今尚未發(fā)現的錯誤的測試?,F的錯誤的測試。 軟件測試的方法和技術多種多樣。軟件測試的方法和技術多種多樣。按是否需要執(zhí)行被測軟件分為靜態(tài)按是否需要執(zhí)行被測軟件分為靜態(tài)測試(靜態(tài)測試不實際運行軟件,測試(靜態(tài)測試不實際運行軟件,主要通過人工進行)和動態(tài)測試主要通過人工進行)和動態(tài)測試(是基于計算機的測試,是為了發(fā)(是基于計算機的測試,是為了發(fā)現錯誤而執(zhí)行程序的過程);按功現錯誤而執(zhí)行程序的過程);按功能劃分為白盒測試和黑盒測試。能劃分為白盒測試和黑
29、盒測試。 1 1白盒測試白盒測試 白盒測試方法也稱結構測試或邏白盒測試方法也稱結構測試或邏輯驅動測試,是根據軟件產品的輯驅動測試,是根據軟件產品的內容工作過程,檢查內部成分,內容工作過程,檢查內部成分,以確認每種內部操作符合設計規(guī)以確認每種內部操作符合設計規(guī)格要求。它在程序內部進行,主格要求。它在程序內部進行,主要用于完成軟件內部操作的驗證。要用于完成軟件內部操作的驗證。 白盒測試的基本原則是:白盒測試的基本原則是: 保證所測試模塊中每一獨立路徑保證所測試模塊中每一獨立路徑至少執(zhí)行一次;保證所測模塊所有至少執(zhí)行一次;保證所測模塊所有判斷的每一分支至少執(zhí)行一次;保判斷的每一分支至少執(zhí)行一次;保證
30、所測模塊每一循環(huán)都在邊界條件證所測模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗和一般條件下至少各執(zhí)行一次;驗證所有內部數據結構的有效性,因證所有內部數據結構的有效性,因而白盒測試是窮舉路徑測試。而白盒測試是窮舉路徑測試。 白盒測試的主要方法有邏輯白盒測試的主要方法有邏輯覆蓋、基本路徑測試等。邏輯覆覆蓋、基本路徑測試等。邏輯覆蓋是泛指一系列以程序內部的邏蓋是泛指一系列以程序內部的邏輯結構為基礎的測試用例設計技輯結構為基礎的測試用例設計技術,包括語句覆蓋、路徑覆蓋、術,包括語句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判斷判定覆蓋、條件覆蓋、判斷- -條條件覆蓋等。件覆蓋等。 2 2黑盒測試黑
31、盒測試 黑盒測試方法也稱功能測試或數黑盒測試方法也稱功能測試或數據驅動測試,是對軟件已經實現的據驅動測試,是對軟件已經實現的功能是否滿足需求進行測試和驗證。功能是否滿足需求進行測試和驗證。黑盒測試完全不考慮程序內部的邏黑盒測試完全不考慮程序內部的邏輯結構和內部特性,只依據程序的輯結構和內部特性,只依據程序的需求和功能規(guī)格說明,檢查程序的需求和功能規(guī)格說明,檢查程序的功能是否符合它的功能說明。所以,功能是否符合它的功能說明。所以,黑盒測試是在軟件接口處進行,完黑盒測試是在軟件接口處進行,完成功能驗證成功能驗證。 黑盒測試主要診斷功能不對或遺漏、黑盒測試主要診斷功能不對或遺漏、界面錯誤、數據結構和
32、外部數據庫界面錯誤、數據結構和外部數據庫訪問錯誤、性能錯誤、初始化和終訪問錯誤、性能錯誤、初始化和終止條件錯。止條件錯。 黑盒測試方法主要有等價類劃分黑盒測試方法主要有等價類劃分法、邊界值分析法、錯誤推測法、法、邊界值分析法、錯誤推測法、因果圖等,主要用于軟件確認測試。因果圖等,主要用于軟件確認測試。 3.4.4 3.4.4 軟件測試的實施軟件測試的實施 軟件測試一般按軟件測試一般按4 4個步驟進行:個步驟進行:(1)(1)單元測試:是對軟件設計的最小單位單元測試:是對軟件設計的最小單位- -模塊進行正確性檢驗的測試,其目的是模塊進行正確性檢驗的測試,其目的是發(fā)現各模塊內部可能存在的各種錯誤,
33、其發(fā)現各模塊內部可能存在的各種錯誤,其依據是詳細設計說明書和源程序。依據是詳細設計說明書和源程序。 (2) (2)集成測試:是測試和組裝軟件的過程,集成測試:是測試和組裝軟件的過程,是把模塊在按照設計要求組裝起來的同時是把模塊在按照設計要求組裝起來的同時進行測試,其目的是發(fā)現與接口有關的錯進行測試,其目的是發(fā)現與接口有關的錯誤。誤。其論據是概要設計說明書。其論據是概要設計說明書。 (3)(3)確認測試:確認測試的任務是驗證確認測試:確認測試的任務是驗證軟件的功能和性能及其他特性是否軟件的功能和性能及其他特性是否滿足需求規(guī)格說明書的各種需求,滿足需求規(guī)格說明書的各種需求,以及軟件配置是否完全、正
34、確。常以及軟件配置是否完全、正確。常運用黑盒測試方法。運用黑盒測試方法。 (4) (4)系統(tǒng)測試:是在實際運行環(huán)境下系統(tǒng)測試:是在實際運行環(huán)境下對計算機系統(tǒng)進行的一系列集成測對計算機系統(tǒng)進行的一系列集成測試和確認測試。試和確認測試。 3.5 3.5 程序的調試程序的調試 在對程序進行了成功的測試之后在對程序進行了成功的測試之后將進行程序調試階段,其任務是將進行程序調試階段,其任務是診診斷和改正斷和改正程序中的錯誤。程序中的錯誤。程序調試活動由兩部分組成:程序調試活動由兩部分組成: 其一根據錯誤的跡象確定程序中其一根據錯誤的跡象確定程序中錯誤的確切性質、原因和位置;其錯誤的確切性質、原因和位置;
35、其二對程序進行修改,排除這個錯誤。二對程序進行修改,排除這個錯誤。 軟件調試可分為軟件調試可分為靜態(tài)調試靜態(tài)調試和和動態(tài)動態(tài)調試調試。靜態(tài)調試主要指通過人的思維來靜態(tài)調試主要指通過人的思維來分析源程序代碼和排錯,是主要分析源程序代碼和排錯,是主要的調試手段;的調試手段; 動態(tài)調試是輔助靜態(tài)調試的。動態(tài)調試是輔助靜態(tài)調試的。 練習題練習題 一、選擇題一、選擇題1 1下列不屬于軟件工程的下列不屬于軟件工程的3 3個要個要素的是素的是( ( d )d )A)A)工具工具 B)B)過程過程 C)C)方法方法 D)D)環(huán)境環(huán)境 2 2在軟件生命周期中,能準確地在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做
36、什么和必須確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是具備哪些功能的階段是( ( d )d )A)A)概要設計概要設計 B)B)詳細設計詳細設計 C) C)可行性分析可行性分析 D)D)需求分析需求分析 3 3下面不屬于軟件設計原則的是下面不屬于軟件設計原則的是( ( c )c )A)A)抽象性抽象性 B)B)模塊化模塊化 C)C)自底向上自底向上 D)D)信息隱蔽信息隱蔽 4 4下列工具中為需求分析常用工下列工具中為需求分析常用工具的是具的是( ( d )d )A)PAD B)PFD A)PAD B)PFD C)N-S D)DFD C)N-S D)DFD 5 5在結構化方法中,軟件功能分
37、在結構化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是解屬于下列軟件開發(fā)中的階段是( ( c )c )A)A)詳細設計詳細設計 B)B)需求分析需求分析 C)C)總體設計總體設計 D)D)編程調試編程調試 6 6程序流程圖程序流程圖( (PFD)PFD)中的箭頭代中的箭頭代表的是表的是( ( b )b )A)A)數據流數據流 B)B)控制流控制流 C)C)調用關系調用關系 D)D)組成關系組成關系 7 7在下列軟件生命周期的各階段中,在下列軟件生命周期的各階段中,涵蓋了整個軟件生命周期的階段是涵蓋了整個軟件生命周期的階段是( ( c )c )A)A)需求分析需求分析 B)B)詳細設計詳細設計 C)C)軟件測試軟件測試 D)D)系統(tǒng)維護系統(tǒng)維護 8 8軟件測試的目的是軟件測試的目的是( ( a )a )A)A)發(fā)現錯誤發(fā)現錯誤 B)B)改正錯誤改正錯誤 C)C)改善軟件的性能改
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨時保安合同范本
- 人才引進聘用合同范本
- 2025年西藏貨運從業(yè)資格證考試模擬考試題目答案
- 專業(yè)購銷合同范本
- 個人雇傭老師合同范本
- 加工木料供貨合同范本
- 辦公區(qū)花卉租賃合同范本
- 冰淇淋原材料采購合同范本
- 儀器外借合同范本
- 公交駕校培訓合同范本
- -精益與智能工廠三年規(guī)劃
- 中醫(yī)基礎理論(一)
- 中小學校園安全教育主題班會課件:筑牢安全紅線、守護校園平安
- 高空作業(yè)考試題(帶答案)
- 北師大版數學八年級上冊1.1探索勾股定理 同步練習【基礎版】(附答案解析)
- 新人教版二年級數學下冊期末考試卷及答案【1套】
- 《會計信息系統(tǒng)應用》-課件 王新惠 模塊二 供應鏈管理系統(tǒng)
- 美容院會員積分營銷方案
- 水利水電工程金屬結構制作與安裝安全技術規(guī)程
- DL5000-火力發(fā)電廠設計技術規(guī)程
- 2024年新疆生產建設兵團興新職業(yè)技術學院單招職業(yè)適應性測試題庫必考題
評論
0/150
提交評論