調(diào)試器在軟件測(cè)試中的應(yīng)用問(wèn)題分享_第1頁(yè)
調(diào)試器在軟件測(cè)試中的應(yīng)用問(wèn)題分享_第2頁(yè)
調(diào)試器在軟件測(cè)試中的應(yīng)用問(wèn)題分享_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

第第頁(yè)調(diào)試器在軟件測(cè)試中的應(yīng)用問(wèn)題分享調(diào)試器在軟件測(cè)試中的應(yīng)用問(wèn)題分享

發(fā)表于:2023-03-17來(lái)源::點(diǎn)擊數(shù):標(biāo)簽:軟件測(cè)試應(yīng)用調(diào)試器分享

和大家一起把調(diào)試器在軟件測(cè)試中的應(yīng)用問(wèn)題分享問(wèn)一下,Ruby為什么沒(méi)有很好的調(diào)試器支持,就像問(wèn)海豚為什么沒(méi)有鰓一樣。Ruby沒(méi)有很好的調(diào)試器支持,是因?yàn)镽uby程序員不應(yīng)該使用調(diào)試器。Ruby比任何其他語(yǔ)言(可能除Smalltalk之外)都更好地支持TDD和BDD

和大家一起把調(diào)試器在軟件測(cè)試中的應(yīng)用問(wèn)題分享問(wèn)一下,Ruby為什么沒(méi)有很好的調(diào)試器支持,就像問(wèn)海豚為什么沒(méi)有鰓一樣。Ruby沒(méi)有很好的調(diào)試器支持,是因?yàn)镽uby程序員不應(yīng)該使用調(diào)試器。Ruby比任何其他語(yǔ)言(可能除Smalltalk之外)都更好地支持TDD和BDD。調(diào)試器支持是不能優(yōu)雅地運(yùn)行測(cè)試的語(yǔ)言才需要的。

解釋:TDD是指\"測(cè)試驅(qū)動(dòng)設(shè)計(jì)/開(kāi)發(fā)(TestDrivenDesign/Development)\",BDD是指\"行為驅(qū)動(dòng)開(kāi)發(fā)(BehaviourDrivenDevelopment)\"。

這篇文章引起了很大的反響,其中有許多是來(lái)自Smalltalk社區(qū)。這點(diǎn)尤其相關(guān),因?yàn)镾malltalk和Ruby是近親。CincomSystem的JamesRobertson,甚至錄了一段截屏視頻(Sceencast),來(lái)說(shuō)明Smalltalk調(diào)試器在進(jìn)行TDD時(shí)的用處:

我寫(xiě)了一個(gè)測(cè)試,并運(yùn)行它。測(cè)試失敗了。我調(diào)試測(cè)試,讓調(diào)試器替我創(chuàng)建漏掉的方法——于是我在調(diào)試器中給該方法編寫(xiě)代碼,并再次運(yùn)行它。調(diào)試器并不是一件不該過(guò)于依賴的工具:它把TDD提升了一個(gè)層次。

AviBryant——SmalltalkSeasideWeb框架的創(chuàng)建者,說(shuō):

Giles忽略的一點(diǎn)是,你首先怎樣去理解代碼。要想理解代碼——無(wú)論是你寫(xiě)的,還是其他人寫(xiě)的——沒(méi)什么比得上調(diào)試器中逐步跟蹤一遍。既然Giles曾經(jīng)是一位劇作家,或許可以這樣比喻:閱讀代碼就像閱讀一部電影劇本。編寫(xiě)測(cè)試可能就像在描繪故事板(它們幫助你將最終的產(chǎn)品形象化)。而使用調(diào)試器就像實(shí)際觀看這部電影。有了調(diào)節(jié)輪,你就可以一幀一幀慢慢看。

BlaineBuxton提出了調(diào)試器角色的另一種觀點(diǎn):

當(dāng)你正好在試驗(yàn)一種新的框架,并想觀察它是如何工作的時(shí)候,調(diào)試器在檢測(cè)程序方面就非常棒。我喜歡一行行地跟蹤。我在學(xué)習(xí)Seaside的時(shí)候就是這么做的,它比任何文檔都更好。此外,看著漂亮的代碼在你的調(diào)試器中展開(kāi),簡(jiǎn)直就像在閱讀一本好書(shū)。在處理一些難看的代碼時(shí),調(diào)試器會(huì)給我展示出在我看代碼時(shí)被眼睛所蒙騙了的一些東西。如果動(dòng)物活著的時(shí)候就能觀察各器官是如何工作的,我為什么要解剖它的尸體呢?

BenMatasar認(rèn)為\"調(diào)試器\"這個(gè)名稱可能是問(wèn)題的根源:

我認(rèn)為\"調(diào)試器\"這個(gè)名稱讓人們對(duì)它的作用產(chǎn)生了誤解,至少在Smalltalk是這樣。當(dāng)我去年12月剛接觸Smalltalk的時(shí)候,我盡力不用調(diào)試器,我的確認(rèn)為它是一件不該過(guò)于依賴的工具?,F(xiàn)在我時(shí)刻用它來(lái)作為研究代碼的支撐點(diǎn)。事實(shí)上,我直接在調(diào)試器中編寫(xiě)相當(dāng)多的代碼,而讓W(xué)eb瀏覽器呆在后臺(tái),等待我發(fā)送響應(yīng)。

我現(xiàn)在把它當(dāng)作是一種方法上下文瀏覽器,在這里,你在調(diào)用堆棧的每一步中都有一個(gè)活動(dòng)的REPL。這樣很好,因?yàn)槟憧梢园l(fā)送消息給對(duì)象,捅捅它們,然后觀察它們?nèi)绾螌?duì)消息做出響應(yīng)。

因此,傳統(tǒng)的調(diào)試器工具允許你通過(guò)斷點(diǎn)或者在任意時(shí)間中止執(zhí)行,并允許你查看當(dāng)前的狀態(tài)。它與其他工具一起,幫助開(kāi)發(fā)人員理解系統(tǒng)在運(yùn)行時(shí)實(shí)際上是如何表現(xiàn)的——與只查看源代碼相對(duì)照。同類(lèi)的工具還包括覆蓋工具(coveragetools)(如rcov)、剖析器(profiler)、跟蹤器(tracer)或者日志記錄器(logger)。

雖然Giles的文章認(rèn)為Ruby缺乏調(diào)試器支持,但我們不太確定他指的是什么。Ruby攔截器具有調(diào)試器支持,既有用Ruby編寫(xiě)的較慢的版本,也有像ruby-debug這樣的快速版本。JRuby的情形也一樣,快速版的方案(jruby-debug)目前正在開(kāi)發(fā)當(dāng)中。其他的Ruby實(shí)現(xiàn),如Rubinius具有低開(kāi)銷(xiāo)的調(diào)試,也有的使用底層的VM調(diào)試支持。[Page]

當(dāng)然,調(diào)試器實(shí)現(xiàn)只是一個(gè)方面——還必須有調(diào)試器的用戶界面。但是這在Ruby領(lǐng)域中也不缺。所有主要的現(xiàn)代RubyIDE都支持調(diào)試。RDT(現(xiàn)在是Aptana的一部分)已具有調(diào)試支持多年了——最新的NetBeans的調(diào)試支持與RDT源自相同的代碼。EclipseDL

溫馨提示

  • 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)論