怎樣才能達到高效開發(fā)與徹底測試_第1頁
怎樣才能達到高效開發(fā)與徹底測試_第2頁
怎樣才能達到高效開發(fā)與徹底測試_第3頁
怎樣才能達到高效開發(fā)與徹底測試_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第第頁怎樣才能達到高效開發(fā)與徹底測試怎樣才能達到高效開發(fā)與徹底測試

發(fā)表于:2023-05-13來源::點擊數(shù):標簽:開發(fā)

“千般路”與“磨豆腐”很久以前聽一個故事:從前有個小伙子,少時有大志,長大后卻無好營生,開了個豆腐作坊,每天磨豆腐累得腰酸背疼。每到夜深人靜,小伙子輾轉反側,總想找條更好的“事業(yè)之路”,可是想過千百條、嘗試過幾十條路,都走不通。夜不成寢,

“千般路”與“磨豆腐”

很久以前聽一個故事:從前有個小伙子,少時有大志,長大后卻無好營生,開了個豆腐作坊,每天磨豆腐累得腰酸背疼。每到夜深人靜,小伙子輾轉反側,總想找條更好的“事業(yè)之路”,可是想過千百條、嘗試過幾十條路,都走不通。夜不成寢,白天干活更累,小伙子不由慨嘆:“晚上想過千般路,白天還得磨豆腐”。

不久以前看過一篇文章:《CMM欺騙了中國的軟件業(yè)》,內容是對CMM熱的反思。CMM當然不會主動欺騙人,實際上是我們的軟件業(yè)自己欺騙自己。我們從來不缺少“某某模式”,“面向某某”,“某某認證”等等聽起來美妙無比的東西,問題是實際的研發(fā)過程中能做得到碼?現(xiàn)實是殘酷的,美妙的概念漫天飛舞,開發(fā)過程仍然是作坊式的,正是:“晚上想過千般路,白天還得磨豆腐”。

中國的故事通常都有圓滿的結局,現(xiàn)在接著說“磨豆腐”的故事。過了很長時間,小伙子終于面對現(xiàn)實,不再沉迷于不切實際的空想,用心磨好豆腐,閑時琢磨些個竅門,慢慢地,他的豆腐質量越來越好,每天產(chǎn)量也越來越多,作坊越開越大,成了遠近聞名的“豆腐老板”,后來,他做起了別的生意,發(fā)現(xiàn)年輕時的空想,其實很多都是可行的,因為現(xiàn)在“能力”和“財力”都不同了。

再說軟件開發(fā)。我們不反對任何理論、技術、方法、模式等等,但第一,您的企業(yè)或團隊做得到嗎?不要做“如果開發(fā)時間延長一倍,就可以做到”之類毫無意義的假設。第二,做了真的有效益嗎?效益是指扣除成本之后的收益。如果不具備這兩點,那么還是不要整天想著“千般路”,首先想想如何好好的“磨豆腐”吧。

對于所有軟件開發(fā)來說,代碼編寫都是無可逃避的“磨豆腐”。改進代碼編寫工作,高率效低成本地開發(fā)出高質量的代碼,對于軟件產(chǎn)品能否在激烈的競爭中勝出,對于軟件企業(yè)的生存和發(fā)展,都具有重要的現(xiàn)實意義。

本文是VisualUnit應用的范例項目C++代碼文檔生成器的主題文檔,敘述的正是改進代碼編寫工作的方法和工具,所有內容均經(jīng)過實戰(zhàn)檢驗,具有"可行"和"效益"兩個特征,"可行"是指較低門檻或沒有門檻,憑現(xiàn)有條件即可實施;"效益"是指能產(chǎn)生立竿見影的效果。

本文所援引的范例項目,模擬最糟糕的開發(fā)團隊,最混亂的開發(fā)流程:由很少寫代碼的測試和預研部門開發(fā),人員不固定,時間也不固定,誰有空就寫上一些;沒有設計,沒有文檔,基至也不在代碼文件中保存編碼人員的信息,成員完全依賴于閱讀代碼和測試用例來理解其他成員寫的代碼;除了簡單的命名規(guī)則外,沒有其他規(guī)范,甚至連一個函數(shù)原則上不能超過50行之類的基本規(guī)范也沒有(范例中有超過200行的函數(shù)CMacro::Unwind(),一萬多條路徑)。任何開發(fā)團隊和開發(fā)流程都會好于范例項目的開發(fā)團隊和開發(fā)流程,因此,范例所展示的方法和工具,具有"廣泛可行性"。

本文介紹如何進行高效編碼調試和實現(xiàn)徹底的單元測試。編碼調試是任何軟件開發(fā)都無可逃避的工作,在VisualUnit的支持下編碼調試,只是把本來就一定要做的工作改變一下方式,不需要多做什么,就可以大幅提高編程效率和質量;另一方面,VisualUnit徹底改變了單元測試難于實施或成本昂貴的局面,無論團隊中開發(fā)與測試人員的比例是怎么樣的,都可以輕松快捷地實現(xiàn)徹底的單元測試。

高效編碼調試

任何軟件開發(fā),都離不開編碼調試。對于稍為復雜一點的函數(shù),一般來說,編寫幾行代碼,就要執(zhí)行一下,看它們是否按預想的工作,然后再繼續(xù)寫,寫完后還要將各種可能輸入都執(zhí)行一下。如何執(zhí)行?一般由別的代碼來調用,也就是說需要驅動,驅動通常是在開始編寫函數(shù)實現(xiàn)代碼之前建立,這樣才能一邊編寫一邊調試。驅動大致可分為自然驅動和專門驅動。

自然驅動:利用項目中已有的代碼作為驅動,通常是在被調試的函數(shù)中加斷點,從界面執(zhí)行一個需要調用該函數(shù)的功能,調試器中斷時就可以調試了;專門驅動:為需要調試的函數(shù)編寫專門的驅動代碼,通過執(zhí)行驅動代碼來執(zhí)行被調試函數(shù)。

自然驅動的主要優(yōu)點是不需要其他工作就可以直接調試,甚至感覺不到需要驅動,主要缺點是輸入數(shù)據(jù)通常是公共的,即很多代碼都使用相同的輸入源進行調試,實際輸入往往是經(jīng)過其他代碼處理后的中間結果,要針對各種可能輸入都進行調試往往很困難,造成調試不全面,程序員的思維受到局限,難于做到全面地考慮各種可能輸入。

專門驅動的主要優(yōu)點是輸入數(shù)據(jù)是專門針對于被測試程序,容易做到比較全面,程序員的思維也會比較全面,對編寫功能齊全的健壯的程序很有好處,要針對某種特定輸入進行調試比較容易,缺點是需要花費大量的時間來編寫驅動代碼。

顯然,自然驅動的主要問題是不全面,代碼錯誤較多,專門驅動的主要問題是編寫驅動代碼很費時。有沒有更

溫馨提示

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

評論

0/150

提交評論