• <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: 黑白都是相對于你觀察的層次. 相對于其它從外部觀察"系統"行為, 不涉及源代碼的測試來說, 單元測試深入到內部觀察盒子的行為, 所以是白盒. 而具體到每個單元測試用例, 依然在盡可能的從外部觀察"單元"的行為, 所以又是黑盒.

     

    Q: 但是你們常用的 Mock 技術, 明顯把單元測試推向白盒的境地.

    A: 說來話長, 但可以先說結論: 基于狀態的測試 over 基于交互/行為的測試, 雖然右邊的也有巨大的價值, 但我們認為左邊的更穩定和更富有對系統的洞察力

    基于狀態的測試描述的是需求, 基于交互行為的測試描述的是實現. 相對于需求來說, 實現更易發生變化, 尤其在另外一種實踐"重構"的沖擊下, 描述實現的測試將被修改的面目全非, 帶來相當的返工和維護成本

    一種例外, 就是交互本身就是需求, 這時 mock 是合適的選擇. 一個杜撰的例子參見<<TDD: Tricky Driven Design 3, 方法>>中最后銀行API的例子

    而現實生活中, 存在一些情況, 雖然使用 mock 可能帶來后期的維護成本, 但它帶來的好處也是不可代替的. 比如對先期整體測試代碼的編碼量的降低. 這在 C/C++ 項目中尤其明顯:

    受限于C/C++的編譯模型, 使用常用的預處理期接入點和編譯鏈接接入點技術來接入 stub 實現時, 要小心維護頭文件的防衛宏, 頭文件的名稱, 不同環境下構建腳本的include路徑設置, 庫路徑設置等. 手工寫stub的方式變的及其繁瑣和容易出錯. 這時候, 一個易用的 mock 框架如 mockcpp 等將節省大量的編碼和先期維護工作

    而幾乎所有的mock框架, 都支持將 mock 對象退化為 stub, 如 mockcpp 中 mock 對象的 defaults() 設置, 或者 JMock 2 中的 Allowing . 事實上, 這是我推薦的 mock 使用方式: 通常情況下讓它退化為簡單的stub, 必要時才使用它強大的期待設置和驗證能力.

    通常單元測試有兩個公認的約束需要滿足:

    1. 隔離依賴.

    重申一遍結論就是: 在滿足單元測試的快和隔離依賴的前提下,

    1. 優先選擇基于狀態的黑盒測試(可使用手寫stub或mock退化的stub)

    2. 除非交互和行為本身就是需求(可使用mock對象的全部特性)

     

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

    53/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>