軟件工程復習市公開課金獎市賽課一等獎課件_第1頁
軟件工程復習市公開課金獎市賽課一等獎課件_第2頁
軟件工程復習市公開課金獎市賽課一等獎課件_第3頁
軟件工程復習市公開課金獎市賽課一等獎課件_第4頁
軟件工程復習市公開課金獎市賽課一等獎課件_第5頁
已閱讀5頁,還剩90頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章概述軟件危機軟件生存周期軟件開發(fā)過程模型瀑布模型快速原型增量模型噴泉模型螺旋模型型式化方法模型基于構(gòu)件開發(fā)模型第1頁第一章概述軟件開發(fā)方法結(jié)構(gòu)化方法JackSon方法維也納開發(fā)方法面向?qū)ο箝_發(fā)方法第2頁第二章需求分析可行性研究任務技術可行性、經(jīng)濟可行性、社會可行性成本估算方法成本估算模型COCOMO模型第3頁第二章需求分析慣用需求分析方法面向數(shù)據(jù)流結(jié)構(gòu)化分析方法(SA)面向數(shù)據(jù)結(jié)構(gòu)Jackson方法(JSD)面向數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD)面向?qū)ο蠓治龇椒?OOA)等第4頁第二章需求分析結(jié)構(gòu)化分析方法數(shù)據(jù)流圖數(shù)據(jù)字典第5頁數(shù)據(jù)流分析技術面向數(shù)據(jù)流進行需求分析方法結(jié)構(gòu)化分析方法適合于數(shù)據(jù)處理類型軟件需求分析詳細來說,結(jié)構(gòu)化分析方法就是用抽象模型概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換關系,自頂向下逐層分解,直到找到滿足功效要求全部可實現(xiàn)軟件為止數(shù)據(jù)流圖(DataFlowDiagram,簡稱DFD)描繪系統(tǒng)邏輯模型,是結(jié)構(gòu)化系統(tǒng)分析主要工具。數(shù)據(jù)流圖(DFD)是描述軟件系統(tǒng)中數(shù)據(jù)處理過程一個有力圖形工具。第6頁數(shù)據(jù)流圖中主要圖形元素數(shù)據(jù)加工(數(shù)據(jù)變換)數(shù)據(jù)源點或終點(外部實體)數(shù)據(jù)流數(shù)據(jù)存放第7頁

數(shù)據(jù)流圖中基本符號(最新)或或或符號含義數(shù)據(jù)源點或終點數(shù)據(jù)流數(shù)據(jù)存放加工(變換)第8頁畫數(shù)據(jù)流圖步驟1、首先畫系統(tǒng)輸入輸出,即先畫頂層數(shù)據(jù)流圖。頂層流圖只包含一個加工,用以表示被開發(fā)系統(tǒng),然后考慮該系統(tǒng)有哪些輸入數(shù)據(jù),這些輸入數(shù)據(jù)從哪里來;有哪些輸出數(shù)據(jù),輸出到哪里去。2、畫系統(tǒng)內(nèi)部,即畫下層數(shù)據(jù)流圖。普通將層號從0開始編號,采取自頂向下,由外向內(nèi)標準。第9頁注意事項1、命名。不論數(shù)據(jù)流、數(shù)據(jù)存放還是加工,適當命名使人們易于了解其含義。2、普通不畫物質(zhì)流。數(shù)據(jù)流反應能用計算機處理數(shù)據(jù),并不是實物,所以對目標系統(tǒng)數(shù)據(jù)流圖普通不要畫物質(zhì)流3、父圖與子圖平衡。子圖輸入輸出數(shù)據(jù)流同父圖對應加工輸入輸出數(shù)據(jù)必須一致,此即父圖與子圖平衡。

第10頁3、局部數(shù)據(jù)存放。當某層數(shù)據(jù)流圖中數(shù)據(jù)存放不是由圖中對應加工外部接口,而只是本圖中一些加工之間數(shù)據(jù)接口,則稱這些數(shù)據(jù)存放為局部數(shù)據(jù)存放。4、提升數(shù)據(jù)流圖易了解性。注意合理分解,要把一個加工分解成幾個功效相對獨立子加工,這么能夠降低加工之間輸入、輸出數(shù)據(jù)流數(shù)目,增加數(shù)據(jù)流圖可了解性。第11頁描述銀行取款過程數(shù)據(jù)流圖第12頁數(shù)據(jù)流圖層次結(jié)構(gòu)為了表示數(shù)據(jù)處理過程數(shù)據(jù)加工情況,需要采取層次結(jié)構(gòu)數(shù)據(jù)流圖。按照系統(tǒng)層次結(jié)構(gòu)進行逐步分解,并以分層數(shù)據(jù)流圖反應這種結(jié)構(gòu)關系,能清楚地表示和輕易了解整個系統(tǒng)第13頁結(jié)構(gòu)化分析方法步驟示例

商店業(yè)務處理系統(tǒng)第14頁這個數(shù)據(jù)流圖只是一個高層系統(tǒng)邏輯模型,它反應了目標系統(tǒng)要實現(xiàn)功效數(shù)據(jù)流圖繪制步驟首先確定系統(tǒng)輸入和輸出依據(jù)商店業(yè)務,畫出頂層數(shù)據(jù)流圖,以反應最主要業(yè)務處理流程第15頁經(jīng)過分析,商店業(yè)務處理主要功效應該有銷售、采購、會計三大項。主要數(shù)據(jù)流輸入源點和輸出終點是用戶和供給商。然后從輸入端開始,依據(jù)商店業(yè)務工作流程,畫出數(shù)據(jù)流流經(jīng)各加工框,逐步畫到輸出端,得到第一層數(shù)據(jù)流圖第16頁第一層數(shù)據(jù)流圖第17頁加細每一個加工框 銷售細化第18頁采購細化第19頁檢驗和修改數(shù)據(jù)流圖標準數(shù)據(jù)流圖上全部圖形符號只限于前述四種基本圖形元素數(shù)據(jù)流圖主圖必須包含前述四種基本元素,缺一不可數(shù)據(jù)流圖主圖上數(shù)據(jù)流必須封閉在外部實體之間每個加工最少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流第20頁在數(shù)據(jù)流圖中,需按層給加工框編號。編號表明該加工所處層次及上下層親子關系要求任何一個數(shù)據(jù)流子圖必須與它上一層一個加工對應,二者輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。此即父圖與子圖平衡能夠在數(shù)據(jù)流圖中加入物質(zhì)流,幫助用戶了解數(shù)據(jù)流圖第21頁圖上每個元素都必須有名字數(shù)據(jù)流圖中不可夾帶控制流初畫時能夠忽略瑣碎細節(jié),以集中精力于主要數(shù)據(jù)流第22頁數(shù)據(jù)詞典數(shù)據(jù)字典(DataDictionary)是關于數(shù)據(jù)信息集合,經(jīng)過數(shù)據(jù)字典對數(shù)據(jù)流程圖中各個元素作準確定義與說明。它是數(shù)據(jù)流圖補充工具。數(shù)據(jù)詞典與數(shù)據(jù)流圖配合,能清楚地表示數(shù)據(jù)處理要求。二者組成需求規(guī)格說明書主要部分。詞條描述——對于在數(shù)據(jù)流圖中每一個被命名圖形元素,均加以定義,其內(nèi)容有:名字,別名或編號,分類,描述,定義,位置,其它等。第23頁數(shù)據(jù)字典內(nèi)容及格式數(shù)據(jù)字典是為分析人員和用戶查找數(shù)據(jù)流圖中相關名字詳細定義而服務,所以也像其它任何字典一樣,要把全部條目按一定次序排列起來,方便查閱。數(shù)據(jù)字典有以下四類條目:數(shù)據(jù)流、數(shù)據(jù)項、數(shù)據(jù)存放、基本加工。其中,數(shù)據(jù)項是組成數(shù)據(jù)流和數(shù)據(jù)存放最小元素。1)數(shù)據(jù)流條目給出了DFD中數(shù)據(jù)流定義,主要部分是列出該數(shù)據(jù)流各組成數(shù)據(jù)項。在定義數(shù)據(jù)流及數(shù)據(jù)存放組成時,通常要用到表2.4給出符號。第24頁第25頁2)數(shù)據(jù)存放條目是對數(shù)據(jù)文件內(nèi)容定義,主要內(nèi)容舉比如下:數(shù)據(jù)存放名稱:學生成績庫別名:無組成:學生學號+課程編碼+成績+備注組織方式:以學號為統(tǒng)計關鍵字升序排列。第26頁3)數(shù)據(jù)項條目給出某個數(shù)據(jù)單項定義,內(nèi)容通常為數(shù)據(jù)項值類型、允許取值范圍等,其定義結(jié)構(gòu)與數(shù)據(jù)流條目類似。4)加工條目是用來說明DFD中基本加工處理邏輯,對其他非基本加工則無須進行加工說明。加工條目主要由輸入數(shù)據(jù)、加工邏輯和輸出數(shù)據(jù)等部分組成,加工邏輯描述把輸入數(shù)據(jù)轉(zhuǎn)換為輸出數(shù)據(jù)過程,是加工條目標主體。為了使加工邏輯直觀易讀,有幾個常用描述方法,它們是結(jié)構(gòu)化語言、判定表和判定樹。加工條目內(nèi)容舉比如下:加工名稱:查閱庫存編號:1.2輸入:合格訂單輸出:供貨訂單或缺貨訂單第27頁加工邏輯:依據(jù)庫存統(tǒng)計IF訂單項目數(shù)量<該項目庫存量臨界值THEN可供貨處理ELSE此訂單缺貨,登記,待進貨后再處理ENDIF(3)數(shù)據(jù)字典實現(xiàn)數(shù)據(jù)字典建立能夠用手工和自動兩種方式實現(xiàn)。手工方式是指把每一個字典條目寫在卡片上,由專員管理和維護。自動方式是借助數(shù)據(jù)字典處理程序,把字典條目輸入到計算機中,用計算機對它進行檢索和維護。第28頁第三章系統(tǒng)設計概要設計1.基本任務設計軟件系統(tǒng)結(jié)構(gòu):采取某種設計方法,將一個復雜系統(tǒng)按功效劃分成模塊。確定每個模塊功效。確定模塊之間調(diào)用關系。確定模塊之間接口,即模塊之間傳遞信息。評價模塊結(jié)構(gòu)質(zhì)量.數(shù)據(jù)結(jié)構(gòu)設計:采取“逐步細化”方法,如采取數(shù)據(jù)字典描述逐步細化。設計有效數(shù)據(jù)結(jié)構(gòu)(如隊列,線性表,鏈表等),大大簡化軟件模塊處理過程設計。第29頁第三章系統(tǒng)設計概要設計1.基本任務設計軟件系統(tǒng)結(jié)構(gòu):采取某種設計方法,將一個復雜系統(tǒng)按功效劃分成模塊。確定每個模塊功效。確定模塊之間調(diào)用關系。確定模塊之間接口,即模塊之間傳遞信息。評價模塊結(jié)構(gòu)質(zhì)量.數(shù)據(jù)結(jié)構(gòu)設計:采取“逐步細化”方法,如采取數(shù)據(jù)字典描述逐步細化。設計有效數(shù)據(jù)結(jié)構(gòu)(如隊列,線性表,鏈表等),大大簡化軟件模塊處理過程設計。第30頁第三章系統(tǒng)設計概要設計編寫概要設計文檔:①概要設計說明書。②數(shù)據(jù)庫設計說明書:主要給出所使用DBMS介紹、數(shù)據(jù)庫概要模型、邏輯設計、結(jié)果。③用戶手冊:對需求分析階段編寫用戶手冊進行補充。④修訂測試計劃,對測試策略、方法、步驟提出明確要求。第31頁第三章系統(tǒng)設計概要設計模塊獨立性模塊獨立性,是指軟件系統(tǒng)中每個模塊只包括軟件要求詳細子功效,而和軟件系統(tǒng)中其它模塊聯(lián)絡最小且接口是簡單.普通采取兩個準則度量模塊獨立性。即模塊間耦合和模塊內(nèi)聚

耦合是模塊之間相互連接緊密程度度量。內(nèi)聚是模塊功效強度(一個模塊內(nèi)部各個元素彼此結(jié)合緊密程度)度量。模塊獨立性比較強模塊應是高內(nèi)聚低耦合模塊。第32頁非直接

數(shù)據(jù)標識控制外部公共內(nèi)容耦合耦合耦合耦合耦合耦合耦合耦合性模塊獨立性模塊間耦合第33頁模塊內(nèi)聚巧合邏輯時間過程通信信息功效內(nèi)聚內(nèi)聚內(nèi)聚內(nèi)聚內(nèi)聚內(nèi)聚內(nèi)聚內(nèi)聚性模塊獨立性第34頁第三章系統(tǒng)設計概要設計軟件系統(tǒng)設計技術第35頁3.1.3軟件系統(tǒng)設計技術1.變換流外部表示內(nèi)部表示信息輸入流輸出流變換流信息流時間參看圖形,信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)信息經(jīng)過變換中心,經(jīng)過加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。當數(shù)據(jù)流含有這些特征時,這種信息流稱為變換流。第36頁3.1.3軟件系統(tǒng)設計技術2.事務流T事務事務中心數(shù)據(jù)沿輸入通路抵達一個處理T,這個處理依據(jù)輸入數(shù)據(jù)類型在若干個動作序列中選出一個來執(zhí)行。這種“以事務為中心”數(shù)據(jù)流,成為“事務流”。處理T稱為事務中心,完成以下任務:接收輸入數(shù)據(jù);分析每個事務以確定它類型;依據(jù)事務類型選取一條活動通路。第37頁第三章系統(tǒng)設計詳細設計詳細設計任務詳細主要有以下五點。(1)確定每個模塊詳細算法。(2)確定每個模塊內(nèi)部數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫物理結(jié)構(gòu)。(3)確定模塊接口詳細細節(jié)。(即確定模塊接口詳細信息,包含模塊之間接口信息、模塊與系統(tǒng)外部接口信息及用戶界面等。)(4)為每個模塊設計一組測試用例。(5)編寫文檔,參加復審。第38頁2.詳細設計可采取工具

1).(傳統(tǒng))程序流程圖程序流程圖是最早出現(xiàn)且使用較為廣泛算法表示工具之一,能夠有效地描述問題求解過程中程序邏輯結(jié)構(gòu)。程序流程圖中經(jīng)常使用基本符號如圖5.17所表示。圖3.2.10‘

程序流程圖中基本符號(a)普通處理框;(b)輸入/輸出框;(c)判斷框;(d)流程線;(e)起止框第39頁

2).N-S圖

N-S圖又稱為盒圖,它是為了確保結(jié)構(gòu)化程序設計而由Nassi和Shneiderman共同提出一個圖形工具。在N-S圖中,全部程序結(jié)構(gòu)均使用矩形框表示,它能夠清楚地表示結(jié)構(gòu)中嵌套及模塊層次關系。N-S圖中,基本控制結(jié)構(gòu)表示符號如圖3.2.11所表示。因為N-S圖中沒有流程線,不可能隨意轉(zhuǎn)移控制,因而表示出程序結(jié)構(gòu)必定符合結(jié)構(gòu)化程序設計思想,有利于培養(yǎng)軟件設計人員良好設計格調(diào)。但當所描述程序嵌套層次較多時,不但影響可讀性而且不易修改。第40頁圖3.2.11N-S圖中基本控制結(jié)構(gòu)表示符號次序結(jié)構(gòu);(b)分支結(jié)構(gòu);(c)多分支CASE結(jié)構(gòu);(d)while-do結(jié)構(gòu);(e)do-until結(jié)構(gòu);(f)調(diào)用模塊A第41頁

3).PAD圖

PAD(ProblemAnalysisDiagram,問題分析圖)是繼程序流程圖和N-S圖后,由日立企業(yè)在20世紀70年代提出又一個用于詳細設計圖形表示工具。它只能用于結(jié)構(gòu)化程序描述。PAD圖采取了易于使用樹型結(jié)構(gòu)圖形符號,既利于清楚地表示程序結(jié)構(gòu),又利于修改。PAD圖中所經(jīng)常使用基本符號如圖5.19所表示。第42頁圖5.19PAD中基本符號次序結(jié)構(gòu);(b)分支結(jié)構(gòu);(c)多分支CASE結(jié)構(gòu);(d)當型循環(huán);(e);直到型循環(huán);(f)對s細化第43頁PAD圖含有主要優(yōu)點以下:

(1)使用PAD圖描述程序結(jié)構(gòu)層次清楚,邏輯結(jié)構(gòu)關系直觀、易讀、易記、易修改。

(2)PAD圖為各種慣用高級語言提供了對應圖形符號,每種控制語句都與一個專門圖形符號相對應,易于PAD圖向高級語言源程序轉(zhuǎn)換。

(3)支持自頂向下、逐步求精設計過程。

(4)既能夠描述程序邏輯結(jié)構(gòu),又能夠描述系統(tǒng)中數(shù)據(jù)結(jié)構(gòu)。第44頁

4).PDL語言

PDL(ProcessDesignLanguage)語言即過程設計語言,是一個用于描述程序算法和定義數(shù)據(jù)結(jié)構(gòu)偽代碼。PDL語言組成與用于描述加工結(jié)構(gòu)化語言相同,是一個兼有自然語言和結(jié)構(gòu)化程序設計語言語法“混合型”語言。PDL語言與結(jié)構(gòu)化語言主要區(qū)分在于:因為PDL語言表示算法是編碼直接依據(jù),所以其語法結(jié)構(gòu)愈加嚴格而且處理過程描述愈加詳細詳細。第45頁PDL語言主要特點以下:(1)各種定義語句及控制結(jié)構(gòu)表示都含有嚴格語法形式,使程序結(jié)構(gòu)、數(shù)聽說明等愈加清楚。(2)提供了數(shù)聽說明機制,可用于定義簡單及復雜數(shù)據(jù)結(jié)構(gòu)。(3)提供了模塊定義和調(diào)用機制,方便了程序模塊化表示。(4)用PDL寫出程序,既能夠很抽象,又能夠很詳細。所以,輕易實現(xiàn)自頂向下逐步求精設計標準。(5)PDL描述能夠直接作為注釋插在源程序中,成為程序內(nèi)部文檔。這對提升程序可讀性是非常有益。(6)PDL描述與程序結(jié)構(gòu)相同,故PDL語言便于將詳細設計結(jié)果轉(zhuǎn)換為源程序。

PDL缺點是不如圖形描述形象直觀,所以經(jīng)常將PDL描述與一個圖形描述結(jié)合起來使用。第46頁PDL語言主要定義語句及基本控制結(jié)構(gòu)表示以下所表示:定義語句

(1)數(shù)據(jù)定義:

DECLARE屬性變量名,…

屬性包含:整型、實型、雙精度型、字符型、指針、數(shù)組及結(jié)構(gòu)等類型。(2)模塊定義:PROCEDURE模塊名(參數(shù)) ……RETURNEND第47頁基本控制結(jié)構(gòu)(1)次序結(jié)構(gòu):次序結(jié)構(gòu)語句序列采取自然語言進行描述。 語句序列S1

語句序列S2

語句序列Sn…(2)選擇結(jié)構(gòu):①IF-ELSE結(jié)構(gòu)IF條件 IF條件 語句序列S1或 語句序列SELSE ENDIF

語句序列S2ENDIF第48頁②多分支IF結(jié)構(gòu)IF條件1

語句序列S1ELSEIF條件2

語句序列S2ELSE

語句序列SnENDIF…③CASE結(jié)構(gòu)CASE表示式OFCASE取值1

語句序列S1CASE取值2

語句序列S2

CASE

語句序列SnENDCASE…第49頁(3)循環(huán)結(jié)構(gòu):①FOR結(jié)構(gòu)FOR循環(huán)變量=初值TO終值 循環(huán)體SENDFOR②WHILE結(jié)構(gòu)WHILE條件 循環(huán)體SENDWHILE③UNTIL結(jié)構(gòu)REPEAT

循環(huán)體SUNTIL條件輸入/輸出語句①輸入語句:

GET(輸入變量表)②輸出語句:

PUT(輸出變量表)模塊調(diào)用語句

CALL模塊名(參數(shù))第50頁5)判定表:當算法中包含多重嵌套條件選擇時使用。表示復雜條件組合與對應動作適宜。6)判定樹:比判定表直觀。第51頁第四章系統(tǒng)實施McCabe度量法基于程序控制流復雜性度量方法第52頁第五章軟件測試軟件測試方法1.靜態(tài)測試:指被測試程序不在機器上運行,而是采取人工測試和計算機輔助靜態(tài)分析伎倆對程序進行測試。包含:人工測試和計算機輔助靜態(tài)分析測試.(發(fā)覺30%~70%邏輯和編碼錯誤)2.動態(tài)測試:指經(jīng)過運行程序發(fā)覺錯誤。大多測試采取動態(tài)測試。包含白盒測試法和黑盒測試法。第53頁第五章軟件測試軟件測試方法白盒測試屬于結(jié)構(gòu)測試,所以被測對象基本上是源程序,以程序內(nèi)部邏輯為基礎來設計測試用例。邏輯覆蓋:是以程序內(nèi)部邏輯為基礎測試技術,屬白盒測試。這一測試考慮測試用例對程序內(nèi)部邏輯覆蓋程度。語句、判定、條件、條件|判定、條件組合、路徑第54頁第五章軟件測試軟件測試方法白盒測試屬于結(jié)構(gòu)測試,所以被測對象基本上是源程序,以程序內(nèi)部邏輯為基礎來設計測試用例。循環(huán)覆蓋(1)單循環(huán):其中n為可允許執(zhí)行循環(huán)最大次數(shù)。設計以下情況測試用例:①跳過循環(huán)。②只執(zhí)行循環(huán)一次。③執(zhí)行循環(huán)m次,其中m<n.④執(zhí)行循環(huán)n-1次,n次,n+1次。(2)嵌套循環(huán)①置外循環(huán)處于最小循環(huán)計數(shù)值,對于內(nèi)層進行單循環(huán)測試。②由里向外,進行下一層循環(huán)測試。第55頁第五章軟件測試軟件測試方法白盒測試屬于結(jié)構(gòu)測試,所以被測對象基本上是源程序,以程序內(nèi)部邏輯為基礎來設計測試用例?;韭窂綔y試基本路徑測試是在程序控制流程圖基礎上,經(jīng)過分析控制結(jié)構(gòu)環(huán)路復雜性,導出基本路徑集合。第56頁基本路徑測試基本路徑測試是在程序流程圖基礎上,經(jīng)過分析由控制結(jié)構(gòu)環(huán)路復雜性,導出基本路徑集合,設計測試用例確保這些基本路徑最少經(jīng)過一次。程序圖:是反應控制流程有向圖,其小圓圈稱為結(jié)點,代表流程圖中處理,有向箭頭代表控制流向,稱為邊或路徑。(1)一個邊必須終止于一個結(jié)點,在選擇分支匯合處即使沒有語言也應該有匯聚點。1324543215第57頁轉(zhuǎn)換程序圖時注意事項(2)假如判斷中條件表示式是由一個或多個邏輯運算符(OR,AND,NAND,NOR)

連接復合條件表示式,則需要改為一系列只有單個條件嵌套判斷。第58頁基本路徑測試步驟213687549101112,34,511109876Path1:1-112:1-2-3-4-5-10-1-113:1-2-3-6-7-9-10-1-114:1-2-3-6-8-9-10-1-111、導出程序流程圖拓撲結(jié)構(gòu)——程序圖2、計算程序圖環(huán)路復雜性:平面圖中區(qū)域個數(shù)+13、確定只包含獨立路徑基本數(shù)據(jù)集;4、設計測試用例,確?;韭窂郊现忻織l路徑最少執(zhí)行一次。假定判斷內(nèi)沒有復合條件3+1=4第59頁K=0,j=1j=j+1Data[j]>data[k]K=jJ<nReturnkFTTF基本路徑測試舉例intGetMax(intn,intdata[]){intk=0;for(intj=1;j<n;j++)if(data[j]>datal[k])k=j;returnk;}2134567821345678環(huán)路復雜性=3基本數(shù)據(jù)集:1-2-3-81-2-3-4-5-6-7-2-3-81-2-3-4-6-7-2-3-8測試用例:N=1,data=2N=2,data=2,4N=2,data=4,2第60頁設計測試用例—黑盒技術★等價類劃分法★邊界值分析法★錯誤推測★因果圖第61頁等價類劃分法★它將輸入數(shù)據(jù)域按有效或無效(也稱合理或不合理)劃分成若干個等價類,測試每個等價類代表值就等于對該類其它值測試。使用這一方法時,完全不考慮程序內(nèi)部結(jié)構(gòu),只依據(jù)程序規(guī)格說明來設計測試用例?!锸褂眠@一方法設計測試用例要經(jīng)歷劃分等價類(列出等價類表)和選取測試用例兩步。第62頁輸入條件合理等價類不合理等價類報表日期類型和長度6位數(shù)字字符有非數(shù)字字符少于6個數(shù)字字符多于6個數(shù)字字符年份范圍在1958~1980間小于1958大于1980月份范圍在1~12之間等于0大于122、確定測試用例:為合理等價類:197505——覆蓋158為不合理等價類:1975kl——覆蓋2;19755——覆蓋3;1975005——覆蓋4;195712——覆蓋6;01——覆蓋7;197500——覆蓋9;197518——覆蓋10。共8個測試用例。比如:某一報表處理系統(tǒng),要求輸入處理報表日期限制在1958年1月至1980年12月。年月由6位數(shù)字字符組成,前四位代表年,后兩位表示月。用等價類劃分法設計測試用例。1、劃分等價類并編號:21345678910第63頁邊界值分析法

經(jīng)驗表明:程序往往在處理邊界情況時發(fā)生錯誤。邊界情況指輸入等價類和輸出等價類邊界上情況。使用邊界值分析法設計測試用例時,普通與等價類劃分結(jié)合起來,將測試邊界情況作為重點目標,選取恰好等于、剛才大于或剛才小于邊界值測試數(shù)據(jù)。第64頁輸入條件測試用例說明測試數(shù)據(jù)期望結(jié)果選取理由出生年月類型和長度1個數(shù)字字符5個數(shù)字字符7個數(shù)字字符有1個非數(shù)字字符全部是非數(shù)字字符6個數(shù)字字符(1)5(2)19755(3)1975005(4)19755A(5)abcdef(6)195801輸入無效輸入無效輸入無效輸入無效輸入無效輸入有效僅有1個正當字符比有效長度少一個字符比有效長度多一個字符非法字符最少非法字符最多類型與長度都有效輸入年份對應數(shù)值19581980<1958>1980(7)195801(8)198012(9)195712(10)198101合格年份合格年份不合格年份不合格年份最小年份最大年份恰小于最小年份恰大于最大年份月份對應數(shù)值112<1>12(11)195801(12)198012(13)195800(14)198013合格月份合格月份不合格月份不合格月份最小月份最大月份恰小于最小月份恰大于最大月份總共用了11個測試用例。通常,邊界值分析法比等價類劃分法發(fā)覺錯誤能力更強。不過對邊界分析與確定比較復雜,要求測試人員含有更多經(jīng)驗和創(chuàng)造性。第65頁錯誤推測法、因果圖★錯誤推測法:依據(jù)經(jīng)驗或直覺推測程序中可能存在各種錯誤,從而有針對性地編寫檢驗這些錯誤測試用例?!镆蚬麍D:經(jīng)過畫因果圖,把用自然語言描述功效說明轉(zhuǎn)換為判定表,然后為判定表每一列設計一個測試用例。它能有效檢測輸入條件各種組合可能會引發(fā)錯誤。第66頁綜合策略通常先用黑盒法設計基本測試用例,然后用白盒法補充一些必要測試用例。在任何情況下都應使用邊界值分析法。必要時用等價類劃分法補充一些測試用例。再用錯誤推測法補充測試用例。檢驗上述測試用例邏輯覆蓋程度,如未滿足所要求覆蓋標準,再添加測試用例。如需求說明中含有輸入條件組合情況,則一開始就可使用因果圖法。第67頁四測試過程軟件測試過程概述軟件測試過程中工作流軟件測試步驟及與各開發(fā)階段關系單元測試集成測試確認測試和系統(tǒng)測試第68頁第六章系統(tǒng)運行與維護軟件維護定義軟件維護特點軟件維護過程軟件可維護性軟件逆向工程與再工程第69頁三維護過程——本質(zhì)上是修改和壓縮了軟件定義和開發(fā)過程首先建立維護機構(gòu)申明提出維護申請匯報過程及評價過程為每一個維護申請要求標準處理步驟建立維護活動登記制度以及要求評價和評審標準。第70頁⑴可了解性:⑵可測試性:難以做出定量度量,只能對其七種特征進行綜合度量??删S護性度量⑸可移植性⑹可使用性⑺效率⑶可修改性

⑷可靠性第71頁第七章面向?qū)ο蠼C嫦驅(qū)ο蠓椒ㄖ饕獞酶拍睿蕜t)模塊化對象(Object)類(Class)繼承(Inheritance)消息(Message)封裝(Encapsulation)對象結(jié)構(gòu)和類結(jié)構(gòu)多態(tài)性(Polymorphism)第72頁第七章面向?qū)ο蠼=?jīng)典面向?qū)ο筌浖_發(fā)方法介紹Booch方法Coad/Yourdon面向?qū)ο蠓治雠c設計(OOA/OOD)Rumbaugh對象建模技術(OMT)Jacobson面向?qū)ο筌浖こ蹋∣OSE)第73頁Booch方法表示系統(tǒng)模型:系統(tǒng)模型靜態(tài)模型動態(tài)模型邏輯模型物理模型類圖對象圖狀態(tài)圖交互作用圖模塊圖進程圖第74頁Coad與Yourdon方法是在信息模型化技術、面向?qū)ο蟪绦蛟O計語言及知識庫系統(tǒng)基礎上發(fā)展起來,這個方法分為OOA和OOD兩部分。

Coad/Yourdon方法第75頁問題論域部分包含與所面正確應用問題直接相關全部類和對象。

在其它三個部分中,識別和定義新類和對象。

第76頁UML模型圖形UseCaseDiagramsUseCaseDiagrams用例圖ScenarioDiagramsScenarioDiagrams協(xié)作圖StateDiagramsStateDiagrams構(gòu)件圖ComponentDiagramsComponentDiagrams布署圖StateDiagramsStateDiagrams對象圖ScenarioDiagramsScenarioDiagrams狀態(tài)圖UseCaseDiagramsUseCaseDiagrams次序圖StateDiagramsStateDiagrams類圖活動圖模型第77頁下降狀態(tài)在第一層上升狀態(tài)向第一層下降空閑狀態(tài)上升抵達抵達上升超時下降抵達第一層UML狀態(tài)圖第78頁Project對象狀態(tài)圖注冊預售開發(fā)系統(tǒng)分析系統(tǒng)設計程序編碼軟件測試系統(tǒng)布署單元測試與調(diào)試維護新projectproject完開始結(jié)束第79頁UML次序圖次序圖次序圖描述了對象之間動態(tài)交互關系,著重表達對象間消息傳遞時間次序。次序圖由一組對象組成,每個對象分別帶有一條豎線,稱作對象生命線,它代表時間軸,時間沿豎線向下延伸。次序圖描述了這些對象伴隨時間推移相互之間交換消息過程。消息用從一條垂直對象生命線指向另一個對象生命線水平箭頭表示。圖中還能夠依據(jù)需要增加相關時間說明和其它注釋。第80頁:計算機:打印服務程序:打印隊列:打印機打印文件打印文件[打印機空閑]保留文件[打印機忙]UML次序圖第81頁P1P2P3e1e2e3e4e5e6e7e8e9e10UML次序圖第82頁UML次序圖次序圖中事件次序:因果性(Causality):對同一消息而言,發(fā)送事件先于接收事件。可控性(Controlability):對同一對象而言,事件p出現(xiàn)在發(fā)送事件q上方,則p先于q。隊列性(FIFO):對同一對象而言,接收事件p出現(xiàn)在接收事件q上方,而且它們分別對應發(fā)送事件也位于同一個對象,則p先于q。第83頁e1e2e3e4e5e6e8e7e9e10e12e11P1P2P3P1P2P3e1e2e3e4e6e5e7e8

溫馨提示

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

評論

0/150

提交評論