12-軟件工程基礎(chǔ)課件_第1頁
12-軟件工程基礎(chǔ)課件_第2頁
12-軟件工程基礎(chǔ)課件_第3頁
12-軟件工程基礎(chǔ)課件_第4頁
12-軟件工程基礎(chǔ)課件_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Web第六章軟件工程基礎(chǔ)主要內(nèi)容需求分析的方法概要設(shè)計的目標(biāo)及方法詳細(xì)設(shè)計的原則軟件測試的方法CMM與項目管理需求分析方法—

結(jié)構(gòu)化分析方法SA結(jié)構(gòu)化分析(StructuredAnalysis,SA)是由DouglasRoss提出的,由DeMarco進(jìn)行推廣的。采用自頂向下、逐層進(jìn)行功能分解的系統(tǒng)分析方法來定義系統(tǒng)的需求。適用于分析大型的數(shù)據(jù)處理系統(tǒng)。方法的特點:利用數(shù)據(jù)流圖(DataFlowDiagram,DFD)來幫助理解問題,對問題進(jìn)行分析。一般工具:DFD、數(shù)據(jù)字典、結(jié)構(gòu)化英語、判定表、判定樹等。需求分析的方法數(shù)據(jù)流圖:描述數(shù)據(jù)處理過程的工具。數(shù)據(jù)字典:關(guān)于數(shù)據(jù)的信息集合,對數(shù)據(jù)流程圖中的各個元素做出完整的定義和說明,是數(shù)據(jù)流圖的補(bǔ)充。內(nèi)容:數(shù)據(jù)流數(shù)據(jù)項數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)存儲處理邏輯外部實體需求分析的步驟調(diào)查分析分析與綜合書寫文檔需求分析評審文檔說明書:引言、任務(wù)概述、數(shù)據(jù)描述、功能要求、性能需求、運行需求、其他要求、附錄。Jackson圖

Jackson圖由方框、連線及有特殊含義的一些標(biāo)記組成。由于盡管數(shù)據(jù)結(jié)構(gòu)種類繁多,但其數(shù)據(jù)元素之間的聯(lián)系只有順序、選擇和循環(huán)三種,因此邏輯數(shù)據(jù)結(jié)構(gòu)的類型也只有這三種。此外,結(jié)構(gòu)化的程序中也只含有這三種基本結(jié)構(gòu)。因此,使用Jackson圖無論表達(dá)數(shù)據(jù)結(jié)構(gòu)或程序結(jié)構(gòu),都是由這三種基本結(jié)構(gòu)組合而成的。這三種基本結(jié)構(gòu)在Jackson圖中的表示符號如圖所示。Jackson圖

三種基本結(jié)構(gòu)在Jackson圖中的表示符號(a)順序結(jié)構(gòu);(b)選擇結(jié)構(gòu);(c);循環(huán)結(jié)構(gòu)Jackson圖

在圖中,(a)圖表示A由B、C和D三部分順序組成;(b)圖表示A根據(jù)分支條件由B、C、D三個部分中選擇一個,注意A、B和C上均標(biāo)有“°”標(biāo)記表示選擇;(c)圖表示A由B重復(fù)若干次組成,注意B上標(biāo)有“*”標(biāo)記表示重復(fù)。由于Jackson圖可直觀、清晰地描述系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu),成為了一種在需求分析和設(shè)計階段均可采用的通用圖形表達(dá)手段。

(1)分析問題,確定輸入、輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用Jackson圖將其描述出來。如上面例子中的輸入數(shù)據(jù)為職工檔案文件和職工工資文件,輸出數(shù)據(jù)為職工工資檔案文件,用Jackson圖表示的輸入和輸出數(shù)據(jù)結(jié)構(gòu)如圖1所示。圖1輸入和輸出數(shù)據(jù)結(jié)構(gòu)(a)輸入數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu);(b)輸出數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)

(2)找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應(yīng)關(guān)系的單元,并按下列規(guī)則導(dǎo)出描述程序結(jié)構(gòu)的Jackson圖。所謂對應(yīng)單元,是指在程序中具有因果關(guān)系,可以同時處理的數(shù)據(jù)單元。若這些單元在結(jié)構(gòu)圖中重復(fù)出現(xiàn),則它們在輸入結(jié)構(gòu)和輸出結(jié)構(gòu)中重復(fù)出現(xiàn)的次數(shù)都相同時才算作是對應(yīng)單元?!駷槊繉斎虢Y(jié)構(gòu)與輸出結(jié)構(gòu)中有對應(yīng)關(guān)系的數(shù)據(jù)單元在程序結(jié)構(gòu)圖的相應(yīng)層次畫一個處理框?!駷檩斎霐?shù)據(jù)結(jié)構(gòu)中剩余的每一個數(shù)據(jù)單元在程序結(jié)構(gòu)圖的相應(yīng)層次畫一個處理框。●為輸出數(shù)據(jù)結(jié)構(gòu)中剩余的每一個數(shù)據(jù)單元在程序結(jié)構(gòu)圖的相應(yīng)層次畫一個處理框。

(3)列出完成結(jié)構(gòu)圖中各處理框功能的所有操作、分支及循環(huán)條件,并把它們放到程序結(jié)構(gòu)圖上的適當(dāng)位置。在導(dǎo)出程序結(jié)構(gòu)圖的過程中,當(dāng)順序結(jié)構(gòu)中混雜有循環(huán)或選擇結(jié)構(gòu)時,應(yīng)通過增加中間層次對其進(jìn)行改進(jìn),保證結(jié)構(gòu)的清晰性。例子中所涉及的基本操作和條件如下:A.打開輸入文件;B.新建工資檔案文件;C.讀取輸入文件中的一條記錄;D.關(guān)閉文件;E.合并生成工資檔案記錄;F.將工資檔案記錄寫入文件;G.終止;I(1).輸入文件未結(jié)束。將這些操作及條件分配到程序結(jié)構(gòu)圖的適當(dāng)位置之后,結(jié)果如圖5.26(a)所示??梢钥吹?,在圖5.26(a)中的產(chǎn)生工資檔案文件順序結(jié)構(gòu)中,混有產(chǎn)生工資檔案記錄這個循環(huán)結(jié)構(gòu)。為了防止混淆,應(yīng)將其改進(jìn)為圖5.26(b)所示的程序結(jié)構(gòu)圖。圖3加入基本操作和條件后的程序結(jié)構(gòu)圖(a)改進(jìn)前的程序結(jié)構(gòu)圖;(b)改進(jìn)后的程序結(jié)構(gòu)圖

(4)用Jackson偽代碼寫出程序的處理過程。Jackson方法中使用的偽代碼和Jackson圖完全對應(yīng),以下是與圖5.23所示的Jackson圖中三種基本結(jié)構(gòu)對應(yīng)的偽代碼表示。

詳細(xì)設(shè)計的原則為了能夠使模塊的邏輯描述清晰準(zhǔn)確,在詳細(xì)設(shè)計階段應(yīng)遵循下列原則。

(1)將保證程序的清晰度放在首位。(2)設(shè)計過程中應(yīng)采用逐步細(xì)化的實現(xiàn)方法。(3)選擇適當(dāng)?shù)谋磉_(dá)工具。詳細(xì)設(shè)計可采用的工具

1.程序流程圖程序流程圖是最早出現(xiàn)且使用較為廣泛的算法表達(dá)工具之一,能夠有效地描述問題求解過程中的程序邏輯結(jié)構(gòu)。程序流程圖中經(jīng)常使用的基本符號如圖所示:程序流程圖中的基本符號(a)一般處理框;(b)輸入/輸出框;(c)判斷框;(d)流程線;(e)起止框三種基本控制結(jié)構(gòu)的流程圖(a)順序結(jié)構(gòu);(b)選擇結(jié)構(gòu);(c)DO-WHILE循環(huán)結(jié)構(gòu)N-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)用模塊APAD中基本符號順序結(jié)構(gòu);(b)分支結(jié)構(gòu);(c)多分支CASE結(jié)構(gòu);(d)當(dāng)型循環(huán);(e);直到型循環(huán);(f)對s的細(xì)化圖6.2程序流程圖及導(dǎo)出的程序圖(a)程序流程圖;(b)程序圖軟件測試技術(shù)

軟件測試基礎(chǔ)

白盒測試技術(shù)

黑盒測試技術(shù)

軟件測試計劃和測試分析報告軟件測試策略1.軟件測試的概念軟件測試是在軟件投入運行前對軟件需求分析、軟件設(shè)計規(guī)格說明和軟件編碼進(jìn)行查錯和糾錯(包括代碼執(zhí)行活動與人工活動)。找錯的活動稱測試,糾錯的活動稱調(diào)試。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一批測試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測試用例去運行程序,以發(fā)現(xiàn)程序錯誤的過程。2.軟件測試的目的

(1)測試是一個為了尋找錯誤而運行程序的過程。(2)一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例。(3)一個成功的測試是指揭示了迄今為止尚未發(fā)現(xiàn)的錯誤的測試。軟件測試的過程軟件測試的方法

1.靜態(tài)分析技術(shù)靜態(tài)分析技術(shù)不執(zhí)行被測試軟件,可對需求分析說明書、軟件設(shè)計說明書、源程序做結(jié)構(gòu)檢查、流程圖分析、符號執(zhí)行等來找出軟件錯誤??梢匀斯みM(jìn)行分析,也可以用測試工具靜態(tài)分析程序來進(jìn)行,被測試程序的正文作為輸入,經(jīng)靜態(tài)分析程序分析得出分析結(jié)果。

(1)結(jié)構(gòu)檢查是手工分析技術(shù),由一組人員對程序設(shè)計、需求分析、編碼測試工作進(jìn)行評議,虛擬執(zhí)行程序,并在評議中作錯誤檢驗。此方法能找出典型程序30%~70%有關(guān)邏輯設(shè)計與編碼的錯誤。

(2)流程圖分析是通過分析程序流程圖的代碼結(jié)構(gòu),來檢查程序的語法錯誤信息、語句中標(biāo)識符引用狀況、子程序和函數(shù)調(diào)用狀況及無法執(zhí)行到的代碼段。此方法便于分析編碼實現(xiàn)與測試結(jié)果分析。

(3)符號執(zhí)行是一種符號化定義數(shù)據(jù),并為程序每條路徑給出符號表達(dá)式,對特定路徑輸入符號,經(jīng)處理輸出符號,從而判斷程序行為是否錯誤,達(dá)到分析錯誤目的的方法。這種方法比數(shù)值計算復(fù)雜得多,易出錯,又不適于非數(shù)值計算,故使用較少。2.動態(tài)測試技術(shù)動態(tài)分析是執(zhí)行被測程序,由執(zhí)行結(jié)果分析程序可能出現(xiàn)的錯誤??梢匀斯ぴO(shè)計程序測試用例,也可以由測試工具動態(tài)分析程序來做檢查與分析。動態(tài)測試包括功能測試和結(jié)構(gòu)測試。它把程序看作為一個函數(shù),輸入的全體稱為函數(shù)的定義域,輸出的全體稱為函數(shù)的值域,函數(shù)則描述了輸入的定義域與輸出值域的關(guān)系。這樣動態(tài)測試的算法可歸納為:函數(shù)

輸入的全體輸出的全體函數(shù)的定義域函數(shù)的值域動態(tài)測試的算法(1)選取定義域中的有效值,或定義域外無效值。(2)對已選取值決定預(yù)期的結(jié)果。(3)用選取值執(zhí)行程序。(4)觀察程序行為,記錄執(zhí)行結(jié)果。(5)將(4)的結(jié)果與(2)的結(jié)果相比較,不吻合則程序有錯。動態(tài)測試既可以采用白盒法對模塊進(jìn)行邏輯結(jié)構(gòu)的測試,又可以用黑盒法做功能結(jié)構(gòu)的測試和接口的測試,都是以執(zhí)行程序并分析執(zhí)行結(jié)果來查錯。白盒測試技術(shù)

白盒測試概念如果已知產(chǎn)品的內(nèi)部活動方式,就可以測試它的內(nèi)部活動是否都符合設(shè)計要求。這種方法稱白盒測試(White-boxTesting),它是對軟件的過程性細(xì)節(jié)做細(xì)致的檢查。白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試,此方法是將測試對象比作一個打開的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)和相關(guān)信息來設(shè)計或選擇測試用例,對穿過軟件的邏輯路徑進(jìn)行測試,可以在不同點檢查程序的狀態(tài),以確定實際狀態(tài)與預(yù)期狀態(tài)是否一致。軟件人員使用白盒方法測試程序模塊的檢查點主要包括:①對程序模塊的所有獨立的執(zhí)行路徑應(yīng)至少測試一次;②對所有的邏輯判定,取“真”與取“假”兩種情況都能至少測試一次;③在循環(huán)的邊界和運行界限內(nèi)執(zhí)行循環(huán)體;④測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性等。表面看來,白盒測試是可以進(jìn)行完全的測試的,從理論上講也應(yīng)該如此。只要能確定測試模塊的所有邏輯路徑,并為每一條邏輯路徑設(shè)計測試用例,并評價所得到的結(jié)果,就可得到100%正確的程序。但實際測試中,這種窮舉法是無法實現(xiàn)的,因為即使是很小的程序,也可能會出現(xiàn)數(shù)目驚人的邏輯路徑。如圖所示是一個小程序的流程圖。圖中,一個圓圈代表一行源程序代碼(或一個語句塊)。其中有五條通路,左邊曲線箭頭表示執(zhí)行次數(shù)不超過20次循環(huán)。這樣的執(zhí)行路徑就有520個,近似為1014個可能的路徑。如果1ms完成一個測試,由此測試程序需3170年。由此看出,即使精確地實現(xiàn)了白盒測試,也不能斷言測試過的程序全正確,因為實行窮舉測試,由于工作量過大,需用時間過長,實施起來是不現(xiàn)實的。這就是程序測試的經(jīng)濟(jì)學(xué)問題。既然在測試階段窮舉法測試是不可行的,那么為了節(jié)省時間和資源,提高測試效率,就必須精心設(shè)計測試用例。需從大量的可用測試用例中精選出少量的測試數(shù)據(jù),使得采用這些測試數(shù)據(jù)能夠達(dá)到最佳的測試效果,即能高效地、盡可能多地發(fā)現(xiàn)隱藏的錯誤。測試只能發(fā)現(xiàn)錯誤,并不能保證程序沒有錯誤。白盒測試中的窮舉測試黑盒測試技術(shù)黑盒測試概念黑盒測試方法是在已知產(chǎn)品應(yīng)該具有的功能的情況下,通過測試來檢驗是否每個功能都能正常使用的測試方法。對于軟件測試而言,黑盒測試法把程序看成一個黑盒子,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程。黑盒測試是在程序接口進(jìn)行的測試,它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試又稱功能測試。使用黑盒測試法,為了做到窮舉測試,至少必須對所有輸入數(shù)據(jù)的各種可能值的排列組合都進(jìn)行測試。與白盒法相似,由此得到的應(yīng)測試的情況數(shù)往往大到實際上根本無法測試的程度,即黑盒測試使用所有有效和無效的輸入數(shù)據(jù)來測試程序是不現(xiàn)實的。所以,黑盒測試同樣不能做到窮盡測試,只能選取少量最有代表性的輸入數(shù)據(jù),以期用較少的代價暴露出較多的程序錯誤。黑盒測試技術(shù)其他測試方法條件測試:是檢查程序模塊中所包含邏輯條件的測試用例設(shè)計方法。數(shù)據(jù)流測試:按照程序中的變量定義和使用的位置來選擇程序的測試路徑。循環(huán)測試:是一種白盒測試技術(shù).包括簡單循環(huán)、串接循環(huán)、嵌套循環(huán)、不規(guī)則循環(huán)。CMM與項目管理CMM(CapabilityMaturityModel)軟件過程能力成熟度模型。五個等級:

初始級→可重復(fù)級→已定義級→已定量管理級→優(yōu)先級項目管理項目管理:項目資源項目目標(biāo)項目需求項目管理的原則和方法:全目標(biāo)管理過程管理:啟動、計劃、執(zhí)行、控制、結(jié)束整合管理:目標(biāo)整合、方案整合、過程整合ASP由微軟創(chuàng)建的Web應(yīng)用開發(fā)標(biāo)準(zhǔn),ASP服務(wù)器已經(jīng)包含在IIS服務(wù)器中,ASP服務(wù)

溫馨提示

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

評論

0/150

提交評論