軟件工程第七章(3-3)教學(xué)提綱_第1頁(yè)
軟件工程第七章(3-3)教學(xué)提綱_第2頁(yè)
軟件工程第七章(3-3)教學(xué)提綱_第3頁(yè)
軟件工程第七章(3-3)教學(xué)提綱_第4頁(yè)
軟件工程第七章(3-3)教學(xué)提綱_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件工程第七章(3-3)abcTrianglea,b,c三角形的類型?2starta<b+c?b<a+c?c<a+b?a=b?b=c?印出“不是三角形”印出“等邊三角形”印出“等腰三角形”印出“不等邊三角形”a=c?b=c?FTFFTTTTFFFFTTstop程序流程圖程序圖3黑盒測(cè)試(等價(jià)劃分)正常的三角形(a,b,c)不等邊三角形(8,10,12);(10,8,12);(10,12,8)等邊三角形(10,10,10)等腰三角形(10,10,17);(10,17,10);(17,10,10)4黑盒測(cè)試(等價(jià)劃分)退化的三角形(a,b,c)不等邊三角形(10,6,4)等邊三角形(0,0,0)等腰三角形(10,5,5);(5,10,5);(10,5,5)5黑盒測(cè)試(等價(jià)劃分)不能構(gòu)成三角形的非法數(shù)據(jù)(a,b,c)a+b<c(10,10,21)b+c<a(21,10,10)c+a<b(10,21,10)6黑盒測(cè)試(邊界值分析)一條邊長(zhǎng)度為零的情況(0,10,12);(10,0,12);(10,12,0)兩條邊的長(zhǎng)度為零的情況(0,0,17);(0,17,0);(17,0,0)三條邊的長(zhǎng)度為零的情況(0,0,0)7輸入數(shù)據(jù)中包含負(fù)整數(shù)(-10,-10,-10)……輸入數(shù)據(jù)不全(不足三個(gè)正整數(shù))(10,-,-)……輸入數(shù)據(jù)中包含非整數(shù)型的數(shù)據(jù)(a,b,c)(1.2,6e-4,7.8)……黑盒測(cè)試(錯(cuò)誤推測(cè))8調(diào)試(Debug)軟件調(diào)試是在進(jìn)行了成功的測(cè)試之后才開始的工作。它與軟件測(cè)試不同,調(diào)試的任務(wù)是進(jìn)一步診斷和改正程序中潛在的錯(cuò)誤。調(diào)試活動(dòng)由兩部分組成:

確定程序中可疑錯(cuò)誤的確切性質(zhì)和位置。對(duì)程序(設(shè)計(jì),編碼)進(jìn)行修改,排除這個(gè)錯(cuò)誤。

9調(diào)試工作是一個(gè)具有很強(qiáng)技巧性的工作。軟件運(yùn)行失效或出現(xiàn)問(wèn)題,往往只是潛在錯(cuò)誤的外部表現(xiàn),而外部表現(xiàn)與內(nèi)在原因之間常常沒(méi)有明顯的聯(lián)系。如果要找出真正的原因,排除潛在的錯(cuò)誤,不是一件易事??梢哉f(shuō),調(diào)試是通過(guò)現(xiàn)象,找出原因的一個(gè)思維分析的過(guò)程。

10調(diào)試的步驟(1)從錯(cuò)誤的外部表現(xiàn)形式入手,確定程序中出錯(cuò)位置;(2)研究有關(guān)部分的程序,找出錯(cuò)誤的內(nèi)在原因;(3)修改設(shè)計(jì)和代碼,以排除這個(gè)錯(cuò)誤;(4)重復(fù)進(jìn)行暴露了這個(gè)錯(cuò)誤的原始測(cè)試或某些有關(guān)測(cè)試。

11從技術(shù)角度來(lái)看,查找錯(cuò)誤的難度在于:現(xiàn)象與原因所處的位置可能相距甚遠(yuǎn)。當(dāng)其它錯(cuò)誤得到糾正時(shí),這一錯(cuò)誤所表現(xiàn)出的現(xiàn)象可能會(huì)暫時(shí)消失,但并未實(shí)際排除?,F(xiàn)象實(shí)際上是由一些非錯(cuò)誤原因(例如,舍入不精確)引起的。12現(xiàn)象可能是由于一些不容易發(fā)現(xiàn)的人為錯(cuò)誤引起的。錯(cuò)誤是由于時(shí)序問(wèn)題引起的,與處理過(guò)程無(wú)關(guān)?,F(xiàn)象是由于難于精確再現(xiàn)的輸入狀態(tài)(例如,實(shí)時(shí)應(yīng)用中輸入順序不確定)引起?,F(xiàn)象可能是周期出現(xiàn)的。在軟、硬件結(jié)合的嵌入式系統(tǒng)中常常遇到。

13幾種主要的調(diào)試方法調(diào)試的關(guān)鍵在于推斷程序內(nèi)部的錯(cuò)誤位置及原因。可以采用以下方法:強(qiáng)行排錯(cuò) 這種調(diào)試方法目前使用較多,效率較低。它不需要過(guò)多的思考,比較省腦筋。例如:

通過(guò)內(nèi)存全部打印來(lái)調(diào)試,在這大量的數(shù)據(jù)中尋找出錯(cuò)的位置。14

在程序特定部位設(shè)置打印語(yǔ)句,把打印語(yǔ)句插在出錯(cuò)的源程序的各個(gè)關(guān)鍵變量改變部位、重要分支部位、子程序調(diào)用部位,跟蹤程序的執(zhí)行,監(jiān)視重要變量的變化。

自動(dòng)調(diào)試工具。利用某些程序語(yǔ)言的調(diào)試功能或?qū)iT的交互式調(diào)試工具,分析程序的動(dòng)態(tài)過(guò)程,而不必修改程序。

15 應(yīng)用以上任一種方法之前,都應(yīng)當(dāng)對(duì)錯(cuò)誤的征兆進(jìn)行全面徹底的分析,得出對(duì)出錯(cuò)位置及錯(cuò)誤性質(zhì)的推測(cè),再使用一種適當(dāng)?shù)恼{(diào)試方法來(lái)檢驗(yàn)推測(cè)的正確性?;厮莘ㄕ{(diào)試

這是在小程序中常用的一種有效的調(diào)試方法。

一旦發(fā)現(xiàn)了錯(cuò)誤,人們先分析錯(cuò)誤征兆,確定最先發(fā)現(xiàn)“癥狀”的位置。16 然后,人工沿程序的控制流程,向回追蹤源程序代碼,直到找到錯(cuò)誤根源或確定錯(cuò)誤產(chǎn)生的范圍。例如,程序中發(fā)現(xiàn)錯(cuò)誤處是某個(gè)打印語(yǔ)句。通過(guò)輸出值可推斷程序在這一點(diǎn)上變量的值。再?gòu)倪@一點(diǎn)出發(fā),回溯程序的執(zhí)行過(guò)程,反復(fù)考慮:“如果程序在這一點(diǎn)上的狀態(tài)(變量的值)是這樣,那么程序在上一點(diǎn)的狀態(tài)一定是這樣...”,直到找到錯(cuò)誤的位置。

17歸納法調(diào)試歸納法是一種從特殊推斷一般的系統(tǒng)化思考方法。歸納法調(diào)試的基本思想是:從一些線索(錯(cuò)誤征兆)著手,通過(guò)分析它們之間的關(guān)系來(lái)找出錯(cuò)誤。

收集有關(guān)的數(shù)據(jù)

列出所有已知的測(cè)試用例和程序執(zhí)行結(jié)果??茨男┹斎霐?shù)據(jù)的運(yùn)行結(jié)果是正確的,哪些輸入數(shù)據(jù)的運(yùn)行結(jié)果有錯(cuò)誤。

18

組織數(shù)據(jù)

由于歸納法是從特殊到一般的推斷過(guò)程,所以需要組織整理數(shù)據(jù),以發(fā)現(xiàn)規(guī)律。常以3W1H形式組織可用的數(shù)據(jù):“What”列出一般現(xiàn)象;“Where”說(shuō)明發(fā)現(xiàn)現(xiàn)象的地點(diǎn);“When”列出現(xiàn)象發(fā)生時(shí)所有已知情況;“How”說(shuō)明現(xiàn)象的范圍和量級(jí);1920“Yes”描述出現(xiàn)錯(cuò)誤的3W1H;“No”作為比較,描述了沒(méi)有錯(cuò)誤的3W1H。通過(guò)分析找出矛盾來(lái)。

提出假設(shè) 分析線索之間的關(guān)系,利用在線索結(jié)構(gòu)中觀察到的矛盾現(xiàn)象,設(shè)計(jì)一個(gè)或多個(gè)關(guān)于出錯(cuò)原因的假設(shè)。如果一個(gè)假設(shè)也提不出來(lái),歸納過(guò)程就需要收集更多的數(shù)據(jù)。此時(shí),應(yīng)當(dāng)再設(shè)計(jì)與執(zhí)行一些測(cè)試用例,以獲得更多的數(shù)據(jù)。

21

證明假設(shè)把假設(shè)與原始線索或數(shù)據(jù)進(jìn)行比較,若它能完全解釋一切現(xiàn)象,則假設(shè)得到證明;否則,就認(rèn)為假設(shè)不合理,或不完全,或是存在多個(gè)錯(cuò)誤,以致只能消除部分錯(cuò)誤。22演繹法調(diào)試

演繹法是一種從一般原理或前提出發(fā),經(jīng)過(guò)排除和精化的過(guò)程來(lái)推導(dǎo)出結(jié)論的思考方法。演繹法排錯(cuò)是測(cè)試人員首先根據(jù)已有的測(cè)試用例,設(shè)想及枚舉出所有可能出錯(cuò)的原因做為假設(shè);然后再用原始測(cè)試數(shù)據(jù)或新的測(cè)試,從中逐個(gè)排除不可能正確的假設(shè);最后,再用測(cè)試數(shù)據(jù)驗(yàn)證余下的假設(shè)確是出錯(cuò)的原因。23

列舉所有可能出錯(cuò)原因的假設(shè)

把所有可能的錯(cuò)誤原因列成表。通過(guò)它們,可以組織、分析現(xiàn)有數(shù)據(jù)。

利用已有的測(cè)試數(shù)據(jù),排除不正確的假設(shè)

仔細(xì)分析已有的數(shù)據(jù),尋找矛盾,力求排除前一步列出所有原因。如果所有原因都被排除了,則需要補(bǔ)充一些數(shù)據(jù)(測(cè)試用例),以建立新的假設(shè)。24

改進(jìn)余下的假設(shè)

利用已知的線索,進(jìn)一步改進(jìn)余下的假設(shè),使之更具體化,以便可以精確地確定出錯(cuò)位置。

證明余下的假設(shè)25調(diào)試原則在調(diào)試方面,許多原則本質(zhì)上是心理學(xué)方面的問(wèn)題。調(diào)試由兩部分組成,調(diào)試原則也分成兩組。確定錯(cuò)誤的性質(zhì)和位置的原則用頭腦去分析思考與錯(cuò)誤征兆有關(guān)的信息。避開死胡同。26只把調(diào)試工具當(dāng)做輔助手段來(lái)使用。利用調(diào)試工具,可以幫助思考,但不能代替思考。避免用試探法,最多只能把它當(dāng)做最后手段。修改錯(cuò)誤的原則在出現(xiàn)錯(cuò)誤的地方,很可能還有別的錯(cuò)誤。2

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論