偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

軟件測試中排錯的基本方法

開發(fā) 測試
排錯(即調(diào)試)與成功的測試形影相隨。測試成功的標志是發(fā)現(xiàn)了錯誤。根據(jù)錯誤跡象確定錯誤的原因和準確位置,并加以改正的主要依靠排錯技術(shù)。本文將為你詳細介紹軟件測試中排錯的基本方法。

  軟件測試中,排錯(即調(diào)試)與成功的測試形影相隨。測試成功的標志是發(fā)現(xiàn)了錯誤。根據(jù)錯誤跡象確定錯誤的原因和準確位置,并加以改正的主要依靠排錯技術(shù)。

  1、排錯過程

  如下圖所示,排錯過程開始于一個測試用例的執(zhí)行,若測試結(jié)果與期望結(jié)果有出入,即出現(xiàn)了錯誤征兆,排錯過程首先要找出錯誤原因,然后對錯誤進行修正。因此排錯過程有兩種可能,一是找到了錯誤原因并糾正了錯誤,另一種可能是錯誤原因不明,排錯人員只得做某種推測,然后再設(shè)計測試用例證實這種推測,若一次推測失敗,再做第二次推測,直到發(fā)現(xiàn)并糾正了錯誤。

排錯過程

 

  排錯是一個相當(dāng)艱苦的過程,究其原因除了開發(fā)人員心理方面的障礙外,還因為隱藏在程序中的錯誤具有下列特殊的性質(zhì):

  (1)錯誤的外部征兆遠離引起錯誤的內(nèi)部原因,對于高度耦合的程序結(jié)構(gòu)此類現(xiàn)象更為嚴重;

  (2)糾正一個錯誤造成了另一錯誤現(xiàn)象(暫時)的消失;

  (3)某些錯誤征兆只是假象;

  (4)因操作人員一時疏忽造成的某些錯誤征兆不易追蹤;

  (5)錯誤是由于風(fēng)時而不是程序引起的;

  (6)輸入條件難以精確地再構(gòu)造(例如,某些實時應(yīng)用的輸入次序不確定);

  (7)錯誤征兆時有時無,此現(xiàn)象對嵌入式系統(tǒng)尤其普遍;

  (8)錯誤是由于把任務(wù)分布在若干臺不同處理機上運行而造成的。[nextpage]

  在軟件排錯過程中,可能遇到大大小小、形形色色的問題,隨著問題的增多,排錯人員的壓力也隨之增大,過分地緊張致使開發(fā)人員在排除一個問題的同時又引入更多的新問題。

  盡管排錯不是一門好學(xué)的技術(shù)(有時人們更愿意稱之為藝術(shù)),但還是有若干行之有效的方法和策略,下面介紹幾種排錯方法。

  2、排錯方法

  無論采用哪種排錯方法,目標只有一個,即發(fā)現(xiàn)并排除引起錯誤的原因,這要求排錯人員能把直觀想象與系統(tǒng)評估很好的結(jié)合起來。

  常用的排錯策略分為三類:

  ① 原始類(brute force)

 ?、?回溯類(backtracking)

 ?、?排除類(cause eliminations)

  原始類排錯方法是最常用也是最低效的方法,只有在萬般無奈的情況下才使用它,主要思想是“通過計算機找錯”。例如輸出存儲器、寄存器的內(nèi)容,在程序安排若干輸出語句等,憑借大量的現(xiàn)場信息,從中找到出錯的線索,雖然最終也能成功,但難免要耗費大量的時間和精力。

  回溯法能成功地用于程序的排錯。方法是從出現(xiàn)錯誤征兆處開始,人工地沿控制流程往回追蹤,直至發(fā)現(xiàn)出錯的根源,不幸的是程序變大后,可能的回溯路線顯著增加,以致人工進行完全回溯到望而不可及。

  排除法基于歸納和演繹原理,采用“分治”的概念,首先懼與錯誤出現(xiàn)有關(guān)有所有數(shù)據(jù),假想一個錯誤原因,用這些數(shù)據(jù)證明或反駁它;或者一次列出所有可能的原因,通過測試一一排除。只要某次測試結(jié)果說明某種假設(shè)已呈現(xiàn)倪端,則立即精化數(shù)據(jù),乘勝追擊。

  上述每一類方法均可輔以排錯工具。目前,調(diào)試編譯器、動態(tài)調(diào)試器(“追蹤器”)、測試用例自動生成器、存儲器映象及交叉訪問示圖等到一系列工具已廣為使用。然而,無論什么工具也替代不了一個開發(fā)人員在對完整的設(shè)計文檔和清晰的源代碼進行認真審閱和推敲之后所起的作用。此外,不應(yīng)荒廢排錯過程中最有價值的一個資源,那就是開發(fā)小組中其他成員的評價和忠告,正所謂“當(dāng)事者迷,旁觀者清”。

  前面多次提到,修改一處老問題可能引入幾處新問題,有時程序越改越亂,但若能做到每次糾錯前都捫心自問三個問題,情況將大為改觀:

  ① 導(dǎo)致這個錯誤的原因在程序其他部分還可能存在嗎?

 ?、?本次修改可能對程序中相關(guān)的邏輯和數(shù)據(jù)造成什么影響?引起什么問題?

 ?、?上次遇到的類似問題是如何排除的?

【編輯推薦】

  1. 什么是軟件測試架構(gòu)師
  2. 軟件評測師;淺析軟件測試過程和質(zhì)量的度量之一
  3. 軟件測試過程中的BUG管理
  4. 如何學(xué)習(xí)軟件測試
  5. 軟件測試人員的獨特價值體會
責(zé)任編輯:韓亞珊 來源: 中國IT實驗室
相關(guān)推薦

2010-06-03 13:56:54

Sendmail 配置

2022-08-24 17:04:19

軟件測試數(shù)據(jù)集合測試效果

2011-05-16 14:24:02

軟件測試

2012-02-20 10:12:04

2021-11-29 05:26:11

軟件測試開發(fā)軟件工程

2023-07-26 08:58:45

Golang單元測試

2009-06-25 15:29:00

軟件測試

2020-03-13 18:10:08

Linuxapt軟件包

2023-08-15 08:01:07

Go 語言排序

2009-12-21 13:55:40

Linux軟件

2019-06-17 15:48:51

服務(wù)器測試方法軟件

2011-01-21 14:33:30

軟件測試

2009-06-22 14:57:09

2011-04-18 17:03:59

動態(tài)測試軟件測試

2020-07-03 11:31:50

云計算測試云計算軟件測試

2011-04-22 16:24:58

維修電腦

2011-04-18 10:46:39

接口測試

2011-05-16 16:52:09

單元測試徹底測試

2009-06-18 11:03:47

經(jīng)理 軟件測試 行業(yè)

2019-09-09 15:13:19

Yum包管理器Linux
點贊
收藏

51CTO技術(shù)棧公眾號