


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第第頁調(diào)試器在軟件測試中的應用問題分享調(diào)試器在軟件測試中的應用問題分享
發(fā)表于:2023-03-17來源::點擊數(shù):標簽:軟件測試應用調(diào)試器分享
和大家一起把調(diào)試器在軟件測試中的應用問題分享問一下,Ruby為什么沒有很好的調(diào)試器支持,就像問海豚為什么沒有鰓一樣。Ruby沒有很好的調(diào)試器支持,是因為Ruby程序員不應該使用調(diào)試器。Ruby比任何其他語言(可能除Smalltalk之外)都更好地支持TDD和BDD
和大家一起把調(diào)試器在軟件測試中的應用問題分享問一下,Ruby為什么沒有很好的調(diào)試器支持,就像問海豚為什么沒有鰓一樣。Ruby沒有很好的調(diào)試器支持,是因為Ruby程序員不應該使用調(diào)試器。Ruby比任何其他語言(可能除Smalltalk之外)都更好地支持TDD和BDD。調(diào)試器支持是不能優(yōu)雅地運行測試的語言才需要的。
解釋:TDD是指\"測試驅(qū)動設計/開發(fā)(TestDrivenDesign/Development)\",BDD是指\"行為驅(qū)動開發(fā)(BehaviourDrivenDevelopment)\"。
這篇文章引起了很大的反響,其中有許多是來自Smalltalk社區(qū)。這點尤其相關,因為Smalltalk和Ruby是近親。CincomSystem的JamesRobertson,甚至錄了一段截屏視頻(Sceencast),來說明Smalltalk調(diào)試器在進行TDD時的用處:
我寫了一個測試,并運行它。測試失敗了。我調(diào)試測試,讓調(diào)試器替我創(chuàng)建漏掉的方法——于是我在調(diào)試器中給該方法編寫代碼,并再次運行它。調(diào)試器并不是一件不該過于依賴的工具:它把TDD提升了一個層次。
AviBryant——SmalltalkSeasideWeb框架的創(chuàng)建者,說:
Giles忽略的一點是,你首先怎樣去理解代碼。要想理解代碼——無論是你寫的,還是其他人寫的——沒什么比得上調(diào)試器中逐步跟蹤一遍。既然Giles曾經(jīng)是一位劇作家,或許可以這樣比喻:閱讀代碼就像閱讀一部電影劇本。編寫測試可能就像在描繪故事板(它們幫助你將最終的產(chǎn)品形象化)。而使用調(diào)試器就像實際觀看這部電影。有了調(diào)節(jié)輪,你就可以一幀一幀慢慢看。
BlaineBuxton提出了調(diào)試器角色的另一種觀點:
當你正好在試驗一種新的框架,并想觀察它是如何工作的時候,調(diào)試器在檢測程序方面就非常棒。我喜歡一行行地跟蹤。我在學習Seaside的時候就是這么做的,它比任何文檔都更好。此外,看著漂亮的代碼在你的調(diào)試器中展開,簡直就像在閱讀一本好書。在處理一些難看的代碼時,調(diào)試器會給我展示出在我看代碼時被眼睛所蒙騙了的一些東西。如果動物活著的時候就能觀察各器官是如何工作的,我為什么要解剖它的尸體呢?
BenMatasar認為\"調(diào)試器\"這個名稱可能是問題的根源:
我認為\"調(diào)試器\"這個名稱讓人們對它的作用產(chǎn)生了誤解,至少在Smalltalk是這樣。當我去年12月剛接觸Smalltalk的時候,我盡力不用調(diào)試器,我的確認為它是一件不該過于依賴的工具。現(xiàn)在我時刻用它來作為研究代碼的支撐點。事實上,我直接在調(diào)試器中編寫相當多的代碼,而讓Web瀏覽器呆在后臺,等待我發(fā)送響應。
我現(xiàn)在把它當作是一種方法上下文瀏覽器,在這里,你在調(diào)用堆棧的每一步中都有一個活動的REPL。這樣很好,因為你可以發(fā)送消息給對象,捅捅它們,然后觀察它們?nèi)绾螌ο⒆龀鲰憫?/p>
因此,傳統(tǒng)的調(diào)試器工具允許你通過斷點或者在任意時間中止執(zhí)行,并允許你查看當前的狀態(tài)。它與其他工具一起,幫助開發(fā)人員理解系統(tǒng)在運行時實際上是如何表現(xiàn)的——與只查看源代碼相對照。同類的工具還包括覆蓋工具(coveragetools)(如rcov)、剖析器(profiler)、跟蹤器(tracer)或者日志記錄器(logger)。
雖然Giles的文章認為Ruby缺乏調(diào)試器支持,但我們不太確定他指的是什么。Ruby攔截器具有調(diào)試器支持,既有用Ruby編寫的較慢的版本,也有像ruby-debug這樣的快速版本。JRuby的情形也一樣,快速版的方案(jruby-debug)目前正在開發(fā)當中。其他的Ruby實現(xiàn),如Rubinius具有低開銷的調(diào)試,也有的使用底層的VM調(diào)試支持。[Page]
當然,調(diào)試器實現(xiàn)只是一個方面——還必須有調(diào)試器的用戶界面。但是這在Ruby領域中也不缺。所有主要的現(xiàn)代RubyIDE都支持調(diào)試。RDT(現(xiàn)在是Aptana的一部分)已具有調(diào)試支持多年了——最新的NetBeans的調(diào)試支持與RDT源自相同的代碼。EclipseDL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- wifi覆蓋工程合同范本
- 充電樁充電合同范本
- 化肥 購銷合同范本
- 公司增資合同范例
- 勞動薪酬合同范本
- 出售新地磅合同范本
- 勞務派遣簡短合同范本
- 公司代理財務記賬合同范本
- 生活用水水箱清洗施工方案
- 農(nóng)村礦山出租合同范本
- 邊坡抗滑樁計算
- 工程建筑部門周例會-課件
- 2022人臉識別安全白皮書
- 體育測量與評價04心肺功能的測量與評價
- 提高意識風險防范化解能力體會發(fā)言
- 無人機應用案例-石油領域油氣管線巡查
- 2023年度危險作業(yè)安全監(jiān)護手冊
- 青島版三年級下冊口算題大全(全冊完整)
- 固定翼飛機的結(jié)構(gòu)和飛行原理
- 內(nèi)蒙古鄂爾多斯杭錦經(jīng)濟開發(fā)區(qū)地質(zhì)災害危險性評估報告
- 馬克思主義哲學十講
評論
0/150
提交評論