• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    敏捷質疑: TDD

    發布: 2008-7-16 10:14 | 作者: 網絡轉載 | 來源: 測試時代采編 | 查看: 162次 | 進入軟件測試論壇討論

    領測軟件測試網

    Q: 需求變了怎么辦? 豈不是有大量測試用例需要修改?

    A: 難道不是應該的嗎? 難道以前的需求文檔在需求發生變化時不需要修改?  哦, 或許它們不需要, 因為沒人會關心, 對代碼也沒什么影響, 需求文檔在度過最初的幾周后便被扔在配置庫里再也沒人管它了.

     

    Q: 我的單元測試編譯鏈接速度很慢, 而且有些條件很難測, 比如內存不足, 或者環境很難搭建, 比如需要網絡數據庫, 怎么解決?

    A: 這是集成測試, 不是單元測試. 你一定把系統所有的組件都編譯鏈接起來了. 那么如果你的測試失敗了, 是哪一部分的問題呢?

    通常單元測試需要滿足一個條件: 不依賴任何其它單元, 即隔離性. 實現手段就是在測試環境中能夠輕易的假冒依賴, 并設定依賴按照我們的意愿進行工作. 一個例子就是你的代碼依賴 malloc 獲取內存, 而你想測試內存不足的情況. 那么我們應在能夠/需要在單元測試中使用使用一個假冒的 malloc 來代替真正的 malloc, 并且我們能控制假冒的 malloc 返回 NULL 以模擬內存不足的情況. 關于如何做到這一點, 可參考一些成熟的"假冒"框架, 如 mockcpp 等.

     

    Q: 我原來的測試都是用真實的代碼來跑, 一個測試能覆蓋多個單元. 你現在都把依賴替換掉了, 那被替換掉的模塊有問題怎么辦? 怎么保證集成真實的代碼后還能正確工作?

    A: 其它單元有其它單元自己的單元測試, 各自關注自己. 集成測試像以前一樣, 該怎么測還怎么測, 并不是有了單元測試就不要其它測試了.

     

    Q: 單元測試就是設計? 單元測試怎么能反映/代替設計 ?

    A: 單元測試反映的是局部的設計, 局限于本單元以及與之交互的其它單元. 前面說的單元測試能夠反映系統的其它部分對當前單元的需求, 所謂設計就是單元之間的職責劃分, 交互和依賴關系

    當你試圖測試一個單元時, 卻發現需要創建大量的其它對象, 而且按照你腦海中的實現, 有些對象是在單元內部創建的, 根本無法在測試環境中假冒它們. 這時候, 你即使只是為了減少測試的難度, 也會逼迫自己思考:

    1. 這個單元是否做了太多的事, 承擔了額外的職責, 違反了單一職責原則?

    2. 是否應該把依賴讓外界設置進來, 而不是自己在內部創建, 這樣測試時就能把依賴設置為假冒的實現?

    是的, 單元測試警示你思考一下自己的設計

     

    Q: 單元測試是設計, 還有人說源代碼是設計, 到底是測試是設計還是源代碼是設計?

    A: 這實際上是另外一種角度. 源代碼就是設計的論斷基于兩個假設

    1. 設計階段中工程師的工作產物, 也就是他的設計, 是應該能夠在實施階段被不同的實施者嚴格并且幾乎一模一樣的實現

    2. 軟件開發人員也是工程師, 即軟件工程

    如果我們認同這兩個假設, 那么軟件工程師的什么產物能夠被嚴格并且重復實現的呢? 是你的Word形式的"設計"文檔嗎? 是CAD工具畫出的UML圖嗎? 都不是, 因為它們都不精確, 有無數種實現方式, 根本談不到嚴格, 不同的開發人員會有完全不同的實現. 事實上, 只有源代碼,才能滿足這個約束. 這樣軟件的設計階段, 就是直到軟件工程師完成源代碼的那一刻, 而軟件的實施階段, 其實就只剩編譯和部署了. 跑題了.

     

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    52/5<12345>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>