《計算機軟件基礎》軟件工程_第1頁
《計算機軟件基礎》軟件工程_第2頁
《計算機軟件基礎》軟件工程_第3頁
《計算機軟件基礎》軟件工程_第4頁
《計算機軟件基礎》軟件工程_第5頁
已閱讀5頁,還剩102頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第六章軟件工程基礎6.1軟件工程概述6.2軟件詳細設計6.3結構化分析與設計方法6.4測試與調試基本技術1第6章應用軟件設計與開發技術6.1軟件工程概述6.1.1軟件工程的概念6.1.2軟件生命周期6.1.3軟件支援環境2第6章應用軟件設計與開發技術軟件工程出現的原因軟件危機軟件危機是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。現象一:軟件開發成本和進度的估計不準確,交付時間一再拖延,造成開發成本超出預算。案例:1995年,新丹佛國際化機場自動化行李系統的軟件出現故障,導致機場延期16個月才正式啟用,并且大部分行李采用人工分揀,系統成本超出預算32億美元。原因:軟件復雜程度高,開發周期長,并且各種變化不斷,因此軟件項目按期完成交付的很少。3第6章應用軟件設計與開發技術現象二:“已完成”的軟件不滿足用戶的需求案例:1984年,經過18個月的開發,一個耗資2億美元的系統支付給了美國威斯康星州的一家健康保險公司。但該系統不能滿足用戶的正常工作需求,只好追加了6千萬美金,又花了3年時間才解決了問題。原因:軟件開發人員不是用戶業務的專家,用戶不懂計算機軟件技術,因此,軟件人員按照自己的理解開發出得軟件往往不能滿足用戶的業務需求。4第6章應用軟件設計與開發技術現象三:軟件產品的質量沒有保證案例:1996年6月4日,Ariane5火箭首次發射,在升空大約40秒且高度不到4千米處,火箭突然發生爆炸,該事件造成了50億美元的損失。事故原因是在Ariane5中使用了Ariane4火箭的程序代碼,在將64位浮點數轉換為16位帶符號整數的程序中,更快的運算引擎導致了Ariane5中的64位數據要比Ariane4中更長,直接誘發了溢出條件,最終導致了航天計算機的崩潰。原因:軟件質量和可靠性的評估非常困難。這些投資巨大、技術一流、管理規范、測試充分的軟件也難保不出現質量問題。5第6章應用軟件設計與開發技術現象四:軟件通常沒有適當的文檔資料或文檔與最終交付的軟件產品不符。原因:軟件幾乎不可能一版保證成功,而是經歷反復修改,其中的文檔很難與每次的修改保持一致,錯誤的文檔就像錯誤的地圖一樣危險。現象五:軟件的可維護程度低。原因:軟件開發過程中,起著重要作用的是開發者的邏輯思維過程。如果若干年后,由其他人來修改,必須要理解開發者當時的思維過程,因此說讀懂別人的程序比重新編寫的難度更大。6第6章應用軟件設計與開發技術軟件危機出現的原因主要有兩個方面:其一是軟件本事的特點;其二是軟件開發過程不成熟。軟件開發過程不成熟的主要表現為:忽視軟件開發前期的調研與分析工作,沒有統一、規范的方法論指導,輕視文檔管理和質量保證工作,缺乏相關人員之間的溝通。7第6章應用軟件設計與開發技術簡陋的小屋—太簡單!不要設計8第6章應用軟件設計與開發技術新農村別墅造型圖—復雜!需要設計了9第6章應用軟件設計與開發技術別墅的設計—設計圖紙、施工圖紙10第6章應用軟件設計與開發技術設計和施工說明11第6章應用軟件設計與開發技術典型helloworld程序—太簡單!不要設計

#include<stdio.h>

intmain()

{

printf(“helloworld!”);//輸出helloworld!

return0;

}12第6章應用軟件設計與開發技術圖書館圖書信息管理軟件—復雜!需要設計13第6章應用軟件設計與開發技術6.1.1軟件工程的概念軟件工程學是研究軟件開發和維護的普遍原理與技術的一門工程學科。所謂軟件工程是指,采用工程的概念、原理、技術和方法指導軟件的開發與維護。把經過實踐考驗而證明正確的管理方法和先進的軟件開發技術結合起來,運用到軟件開發和維護過程中,來解決軟件危機。14第6章應用軟件設計與開發技術軟件定義期:包括問題定義、可行性研究和需求分析三個階段;軟件開發期:包括系統設計、詳細設計、編碼和測試四個階段;軟件維護期:即運行維護階段。6.1.2軟件生命周期15第6章應用軟件設計與開發技術1.軟件定義期(1)問題定義確定問題的性質、工程目標以及規模。分析員應提交書面報告給用戶與使用部門負責人進行審查。(2)可行性研究進一步研究上一階段所定義的問題是否可解。最后還要提交必要的文檔。16第6章應用軟件設計與開發技術(3)需求分析①確定對系統的綜合要求,即功能要求、性能要求、運行要求以及將來可能會提出的一些要求。②對系統的數據要求進行分析。主要包括數據元素的分類和規范化,描繪實體之間的關系圖,進行事務分析與數據庫模型的建立。③在前面分析的基礎上,推導出系統的詳細模型系統。④修正開發計劃,并建立模型系統。文檔內容:①系統的功能說明②系統對數據的要求③用戶系統描述17第6章應用軟件設計與開發技術2.軟件開發期(1)系統設計①提出可選擇方案;②選擇合理方案;③推薦最佳方案;④功能分解;⑤設計軟件結構;⑥制定測試計劃;⑦提交文檔。18第6章應用軟件設計與開發技術(2)詳細設計(3)編碼①選擇適當的程序設計語言;②使程序內部有良好的文檔資料、規范的數據格式說明、簡單清晰的語句結構和合理的輸入輸出格式,這些都可以大大提高程序的可讀性,而且也可以改進程序的可維護性;③充分利用已有的軟件工具來幫助編碼,以提高編碼的效率和減少程序中的錯誤。(4)測試19第6章應用軟件設計與開發技術3.軟件維護期

①為糾正使用中出現的錯誤而進行的改正性維護;②為適應環境變化而進行的適應性維護;③為改進原有軟件而進行的完善性維護;④為將來的可維護和可靠而進行的預防性維護。20第6章應用軟件設計與開發技術6.1.3軟件支援環境一個完備的軟件支援環境應有功能:

(1)能夠支援軟件生命的全周期。

(2)能夠支援大型軟件工程項目。

(3)能夠支援軟件配置管理。一般的軟件支援環境由以下幾部分組成。

(1)環境數據庫

(2)接口軟件

(3)工具組21第6章應用軟件設計與開發技術6.2軟件詳細設計6.2.1程序流程圖6.2.2NS圖6.2.3問題分析圖PAD6.2.4判定表6.2.5過程設計語言PDL22第6章應用軟件設計與開發技術詳細設計詳細設計也叫過程設計,應該在軟件結構設計、數據設計之后進行。主要是設計模塊內的算法實現細節。詳細設計的任務不是編寫代碼,而是要為編寫程序代碼設計“圖紙”,有程序員按“圖紙”用某種高級程序設計語言編寫程序代碼。詳細設計的目的不僅僅是保證所涉及的模塊功能正確,更重要的是保證所設計的處理過程易于理解,具有良好的可靠性和可維護性。23第6章應用軟件設計與開發技術6.2.1程序流程圖程序流程圖中常用的圖形符號24第6章應用軟件設計與開發技術結構化程序設計限制五種基本控制結構(1)順序結構反映了若干個模塊之間連續執行的順序。(2)在選擇結構中,由某個條件P的取值來決定執行兩個模塊之間的哪一個。(3)在當型循環結構中,只有當某個條件成立時才重復執行特定的模塊(稱為循環體)。(4)在直到型循環結構中,重復執行一個特定的模塊,直到某個條件成立時才退出該模塊的重復執行。(5)在多情況選擇結構中,根據某控制變量的取值來決定選擇多個模塊中的哪一個。25第6章應用軟件設計與開發技術26第6章應用軟件設計與開發技術程序流程圖的主要缺點:(1)程序流程圖本質上不是逐步求精的好工具,它會使程序員過早地考慮程序的控制流程,而不去考慮程序的全局結構。(2)程序流程圖不易表示層次結構。(3)程序流程圖不易表示數據結構和模塊調用關系等重要信息。(4)程序流程圖中用箭頭代表控制流,因此,程序員不受任何約束,可以完全不顧結構程序設計的思想,隨意進行轉移控制。27第6章應用軟件設計與開發技術6.2.2NS圖NS圖基本特點:

(1)功能域比較明確,可以從框圖中直接反映出來。

(2)不可能任意轉移控制,符合結構化原則。

(3)很容易確定局部和全程數據的作用域。

(4)很容易表示嵌套關系,也可以表示模塊的層次結構。28第6章應用軟件設計與開發技術1.順序結構29第6章應用軟件設計與開發技術2.選擇結構(1)兩路分支結構30第6章應用軟件設計與開發技術(2)多路分支結構31第6章應用軟件設計與開發技術3.循環結構(1)當型循環結構32第6章應用軟件設計與開發技術(2)直到型循環結構33第6章應用軟件設計與開發技術6.2.3問題分析圖PAD(ProblemAnalysisDiagram)

PAD圖的五種基本控制結構34第6章應用軟件設計與開發技術6.2.4判定表一張判定表由以下四部分組成:左上部列出所有條件;左下部是所有可能的動作;右上部是表示各種條件組合的一個矩陣;右下部是和每種條件組合相對應的動作。判定表右半部的每一列實際上就是一個規則,規定了與特定的條件組合相對應的動作。35第6章應用軟件設計與開發技術假設某大學要從學生中挑選男子籃球隊隊員,基本條件是各門課程的平均分在70分以上,身高超過1.80米,體重超過75公斤。需要從學生登記表中挑選出符合上述條件的男同學,并列出他們的姓名和住址,以便進一步選拔。36第6章應用軟件設計與開發技術37第6章應用軟件設計與開發技術6.2.5過程設計語言PDLPDL特點:(1)關鍵字的固定語法,提供了結構化控制結構、數據說明和模塊化的特點。(2)用自然語言的自由語法來描述處理部分。(3)具有數據說明的手段。(4)具有模塊定義和調用的機制,提供各種接口描述模式。38第6章應用軟件設計與開發技術PDL優點:(1)可以作為注釋直接插在源程序中間。這樣做的好處是,能促使維護人員在修改源程序代碼的同時也修改PDL注釋,有助于保持文檔和程序的一致性,提高了文檔的質量。(2)可以使用普通的正文編輯程序或文字處理系統,很方便地完成PDL的書寫和編輯工作。(3)利用已有的自動處理程序,可以自動由PDL生成程序代碼。39第6章應用軟件設計與開發技術6.3結構化分析與設計方法6.3.1應用軟件開發的原則和方法6.3.2結構化分析方法6.3.3結構化設計方法40第6章應用軟件設計與開發技術6.3.1應用軟件開發的原則和方法1.應用軟件開發的基本原則

(1)自頂向下的系統結構開發原則

(2)模塊化結構開發原則41第6章應用軟件設計與開發技術2.應用軟件的開發方法(1)非自動形式的開發方法①系統流程圖法(systemflowchart)②結構化分析方法(SA方法)③結構化設計方法(SD方法)④數據結構法(Jackson法)⑤層次輸入-處理-輸出方法(HIPO方法)42第6章應用軟件設計與開發技術(2)半自動形式的開發方法①SREM方法②PSL/PSA方法

PSL是一種問題說明語言(ProblemStatementLanguage)

PSA是一種問題說明分析器(ProblemStatementAnalyzer)

MICRO_PSL/PSA系統(3)自動形式的系統開發方法主要以HOS(HigherOrderSoftware公司)方法為代表。43第6章應用軟件設計與開發技術6.3.2結構化分析方法SA(StructualAnalysis)1.SA方法的特點(1)分解和抽象44第6章應用軟件設計與開發技術45第6章應用軟件設計與開發技術(2)文檔的規范化①一套分層的數據流程圖,用于描述系統的邏輯關系。②一本數據字典,用于描述系統中所用到的全部數據和文件。③一組小說明,描述各個加工處理應完成的工作。④其他補充材料,描述尚未說明或需要進一步交代的問題。(3)面向用戶(4)系統的邏輯設計和物理設計分開進行46第6章應用軟件設計與開發技術2.數據流程圖(1)數據流程圖的概念①用數據流程圖描述系統中信息的變換和傳遞過程,并輔以其他形式的說明,如數據字典、判定表和判定樹等。②將數據流程圖轉換成相應的軟件結構。

數據流程圖簡稱DFD(DataFlowDiagram)47第6章應用軟件設計與開發技術研究生業務活動數據流程圖48第6章應用軟件設計與開發技術(2)數據流程圖的組成符號49第6章應用軟件設計與開發技術(3)畫數據流程圖的方法①自頂向下逐層分解②由外向里逐漸深化50第6章應用軟件設計與開發技術3.數據字典在數據字典中,通常有四種類型的條目。(1)基本數據項條目例如,學生“年齡”這個數據項的定義如下:數據項名稱:學生年齡數據類型:整型數據長度:一個字節取值范圍:16~3051第6章應用軟件設計與開發技術(2)數據流條目課程目錄=課程名+學時+學分+教員+課表其中“教員”又可以列為一個子目錄,表示為教員=姓名+年齡+職稱“課表”也可以列為一個子目錄,表示成課表=星期幾+第幾節+教室

52第6章應用軟件設計與開發技術數據流條目的各數據項可以分為以下三種:①必有項,即數據流條目中必定包含的數據項;②必選項,即在某幾項中必定出現其中一項或幾項;③任選項,即可選可不選的數據項。在表示數據流條目時,一般要用到以下一些符號:=含義是“定義為”或“等價為”+含義是連接,表示幾個數據項的合成

[]表示必選項

()表示任選項

{}表示重復(有時用上下標表示重復次數)例如,考試成績={學號+姓名}1100

+[平均分+方差]53第6章應用軟件設計與開發技術(3)文件條目(4)加工條目(即數據處理條目)54第6章應用軟件設計與開發技術6.3.3結構化設計方法1.結構化設計方法的特點結構化設計方法簡稱SD(StructuredDesign)

(1)如何將系統劃分為一個個模塊;

(2)模塊之間傳遞什么數據;

(3)模塊之間如何進行調用;

(4)如何評價模塊結構的質量。55第6章應用軟件設計與開發技術2.結構圖結構圖簡稱SC(StructuredChart)圖56第6章應用軟件設計與開發技術計算工資的結構圖57第6章應用軟件設計與開發技術(1)模塊(2)調用(3)模塊間信息傳遞(4)輔助符號58第6章應用軟件設計與開發技術3.由數據流程圖導出結構圖(1)變換型從變換型DFD導出結構圖59第6章應用軟件設計與開發技術(a)數據流程圖60第6章應用軟件設計與開發技術(b)結構圖61第6章應用軟件設計與開發技術(2)事務型從事務型DFD導出結構圖示意圖62第6章應用軟件設計與開發技術(a)數據流程圖模型63第6章應用軟件設計與開發技術(b)結構圖64第6章應用軟件設計與開發技術4.模塊獨立性評價(1)耦合模塊之間的耦合反映了模塊的獨立性,也反映了系統分解后的復雜程度。為了使系統各模塊之間相互影響盡可能地少,使系統簡單而易理解,應減少模塊之間的耦合程度。①數據耦合②同構耦合③控制耦合④公用耦合⑤內容耦合65第6章應用軟件設計與開發技術66第6章應用軟件設計與開發技術(2)內聚內聚是對一個模塊內部元素之間功能上相互聯系強度的測量。模塊內聚度又稱為模塊強度。一個模塊的內聚度越高,與其他模塊之間的耦合程度也就越弱。①功能內聚②序列內聚③通信內聚④過程內聚⑤時間內聚⑥邏輯內聚⑦偶然內聚67第6章應用軟件設計與開發技術邏輯內聚模塊的分解68第6章應用軟件設計與開發技術69第6章應用軟件設計與開發技術決定內聚程度的判定樹70第6章應用軟件設計與開發技術6.4測試與調試基本技術6.4.1測試6.4.2調試71第6章應用軟件設計與開發技術據新華社洛杉磯2002年6月報道,美國一家研究所公布的調查結果表明,軟件錯誤使美國每年損失高達595億美元。同時指出,如能做好檢測工作,即在軟件開發的早期發現漏洞并進行彌補每年能給美國企業節省成本222億美元。然而,目前軟件中一半以上的錯誤是在開發的后期或者售后使用中才被發現的。72第6章應用軟件設計與開發技術測試的工作量一般性軟件其測試工作量大約占整個開發工作量的40%系統軟件或關系到人的生命財產安全的重要軟件,其測試工作量通常可能達到整個開發工作量的3—5倍73第6章應用軟件設計與開發技術6.4.1測試1.測試的基本概念

測試具有以下三個重要特征。(1)測試的挑剔性測試不是為了證明程序是正確的,而是在設想程序有錯誤的前提下進行的,其目的是設法暴露程序中的錯誤和缺陷。①測試是程序執行的過程,目的在于發現錯誤;②一個好的測試在于能發現至今未發現的錯誤;③一個成功的測試是發現了至今未發現的錯誤。74第6章應用軟件設計與開發技術(2)完全測試的不可能性

測試只能說明程序有錯,而不能證明程序無錯,希望通過有限次的測試就能發現程序中的所有錯誤是不可能的,即完全測試是不可能的。由于測試的這一特征,程序也不可能具有百分之百的可靠性。75第6章應用軟件設計與開發技術(3)測試的經濟性①沒有語法錯誤;②運行有結果;③對典型數據能得到正確的結果;④對典型的有效數據能得到正確的結果,對無效數據有防范措施;⑤對一切能出現的數據不出錯。76第6章應用軟件設計與開發技術2.測試的過程

(1)程序的靜態分析

(2)程序的動態分析

(3)自動測試工具77第6章應用軟件設計與開發技術靜態測試:主要通過代碼審查和靜態分析,檢查源代碼中存在的問題。過程:代碼審查由有經驗的程序設計人員根據軟件詳細設計說明書,閱讀程序來發現源程序中類型、引用、參數傳遞、表達式等不必運行程序就能夠發現的錯誤。特點:這種方法不需要專門的測試工具和設備,一旦發現錯誤就能定位,但是此方法具有一定的局限性。靜態分析主要對程序進行控制流分析、數據流分析、接口分析和表達式分析等

78第6章應用軟件設計與開發技術動態測試:在指定的環境上運行被測程序,輸入測試數據,獲得測試結果,將獲得的測試結果與預期的結果進行比較,發現程序的錯誤。過程:設計測試用例,運行被測程序。特點:需要有程序的運行環境,必要時要編寫測試驅動程序和樁程序。79第6章應用軟件設計與開發技術3.測試的層次(1)模塊測試①模塊接口②局部數據結構③重要路徑④錯誤處理的能力⑤I/O錯80第6章應用軟件設計與開發技術模塊測試的結構81第6章應用軟件設計與開發技術(2)整體測試整體測試可分為漸增式與非漸增式兩種。非漸增式的整體測試是將經過單獨測試的所有模塊連接到一起進行測試。漸增式的整體測試往往是與模塊測試同步進行的,即在對模塊逐步裝配的過程中同時進行的。這種測試方式可以減少模塊測試時要設計的驅動模塊或承接模塊,又可以及時、準確地發現結構錯誤的位置。漸增式的整體測試一般可以分為“自頂向下”和“自底向上”兩種。①“自頂向下”漸增式測試②“自底向上”漸增式測試82第6章應用軟件設計與開發技術(3)高級測試①功能測試功能測試又稱有效性測試,主要是用黑箱法測試軟件功能是否與用戶一致。②系統測試把軟件元素與硬件元素結合在一起進行測試。③驗收測試主要檢查程序的操作與原設計要求以及用戶要求是否一致。這類測試常以用戶為主體進行。④安裝測試主要檢查軟件在安裝時產生的問題。83第6章應用軟件設計與開發技術4.測試的方法

設計和使用測試用例基本原則:①設計測試用例時,應同時確定程序運行的預期結果。②測試用例不僅要選用合理的輸入數據,也要選用不合理的輸入數據。③除了需要檢查程序是否做了應該做的事,還要檢查程序是否做了不應該做的事。④千萬不要幻想程序是正確的。⑤要保留有用的測試用例,以便再測試時使用。⑥測試用例要系統地進行設計,不可隨意湊合。84第6章應用軟件設計與開發技術(1)白箱法白箱測試用例的設計準則有:語句覆蓋,分支覆蓋,條件覆蓋和組合條件覆蓋。①語句覆蓋語句覆蓋準則是企圖用足夠多的測試用例,使程序中的每個語句都執行一遍,以便盡可能多地發現程序中的錯誤。這是一個非常弱的測試方法。因為每條語句都執行一次,仍然會有許多錯誤測試不出來。85第6章應用軟件設計與開發技術某程序段如下:

…IF(a>1andb=0)THENx=x/aIF(a=2orx>1)THENx=x+1…86第6章應用軟件設計與開發技術每條語句都執行一次,程序中第二個判定OR寫成AND仍然不能被發現錯誤87第6章應用軟件設計與開發技術②分支覆蓋分支覆蓋準則也稱為判定覆蓋準則。它要求通過足夠多的測試用例,使程序中的每個分支至少通過一次。88第6章應用軟件設計與開發技術89第6章應用軟件設計與開發技術③條件覆蓋條件覆蓋準則是通過執行足夠多的測試用例,使每個判定中的每個條件都能取到兩種不同的結果(“真”與“假”)。用以下兩個測試用例便可以使每個條件都能取到“真”值和“假”值:

a=2,b=1,x=1(“a>1”為真,“b=0”為假,“a=2”為真,“x>1”為假)

a=1,b=0,x=3(“a>1”為假,“b=0”為真,“a=2”為假,“x>1”為真)90第6章應用軟件設計與開發技術④組合條件覆蓋組合條件覆蓋準則要求通過足夠多的測試用例,使每個判定中各條件的各種可能組合至少出現一次。例如,第一個判定框中的兩個條件有以下四種組合:條件組合1a>1,b=0;

條件組合2a>1,b≠0;

條件組合3a≤1,b=0;

條件組合4a≤1,b≠0。第二個判定框中的兩個條件也有以下四種組合條件組合5a=2,x>1;

條件組合6a=2,x≤1;

條件組合7a≠2,x>1;

條件組合8a≠2,x≤1.91第6章應用軟件設計與開發技術下面的四個測試用例就可以覆蓋上述八種可能的條件組合:

a=2,b=0,x=3(覆蓋條件組合1和5)

a=2,b=1,x=1(覆蓋條件組合2和6)

a=1,b=0,x=3(覆蓋條件組合3和7)

a=1,b=1,x=1(覆蓋條件組合4和8)92第6章應用軟件設計與開發技術93第6章應用軟件設計與開發技術(2)黑箱法常用的黑箱測試有等價分類法、邊值分析法、因果圖法和錯誤推測法。①等價分類法等價分類法是把所有可能的輸入數據(有效的和無效的)劃分成若干等價類,使每一類中的一個典型數據在測試中的作用與這一類中所有其他數據的作用相同。在實際進行測試時,可以從每個等價類中只取一組數據作為測試用例。等價分類法分為兩步:一是劃分等價類(包括有效等價類和無效等價類);二是從每個等價類中選取測試用例。劃分等價類的基本方法:根據程序的功能說明,找出所有的輸入條件,然后為每一個輸入條件劃分等價類。94第6章應用軟件設計與開發技術95第6章應用軟件設計與開發技術·如果輸入條件規定了值的范圍,則可以確定一個有效等價類和兩個無效等價類;·如果輸入條件規定了值的個數,則可以確定一個有效等價類和兩個無效等價類;·如果輸入條件規定了一個輸入值的有窮集,且確信程序對每個輸入值單獨處理,則可以對集合中的每一個輸入值確定一個有效等價類,同時可以確定一個無效等價類;·如果輸入條件規定了“必須如何”的條件,則可以確定一個有效等價類和一個無效等價類;·如果確信某一等價類中的各元素在程序中的處理方式是有區別的,則應把這個等價類分成更小的等價類。96第6章應用軟件設計與開發技術②邊值分析法·如果輸入條件規定了值的范圍,則要對這個范圍的邊界情況以及稍超出范圍的無效情況進行測試;例如,輸入范圍是1到10的整數,則測試用例的取值:

0,1,10,11·如果輸入條件規定了值的個數,則要分別對值的最大個數、最小個數、稍多于最大個數和稍少于最小個數的情況進行測試;例如,要求的記錄個數是1到255,則設計的記錄個數分別為:0,1,255,256·對于輸出條件使用上述兩條;·如果輸入和輸出是有序集,則應把注意力集中在第一和最后一個元素上。97第6章應用軟件設計與開發技術③因果圖法④錯誤推測法例如,要測試一個排序程序,特別需要檢查的情況有:

·輸入表為空;

·輸入表只含有一個元素;

·輸入表中所有元素相同;

·輸入表實際有序。98第6章應用軟件設計與開發技術(3)綜合策略①如果程序功能說明中包含有輸入條件的組合,便應從因果圖開始,以減少組合情況。②在任何情況下都要用邊值分析法,通過分析輸入和輸出條件的邊界值,補充一些測試用例。③判別輸入/輸出的有效和無效等價類,進一步補充測試用例。④利用錯誤推測法補充一些測試用例。⑤查看上述測試用例的覆蓋程度,對未滿足的覆蓋標準,增加一些測試用例。99第6章應用軟

溫馨提示

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

評論

0/150

提交評論