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

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

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

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

    軟件測試之遺留代碼的測試方法

    發布: 2009-3-23 09:37 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 34次 | 進入軟件測試論壇討論

    領測軟件測試網

            }
            menubar = view.getJMenuBar();
        }
        public void testFileIsFirstMenu() {
            JMenu file = menubar.getMenu(0);
            assertEquals(\"File\", file.getText());
        }
        public void testEditIsSecondMenu() {
            JMenu edit = menubar.getMenu(1);
            assertEquals(\"Edit\", edit.getText());
        }
        public void testHelpIsLastMenu() {
            JMenu help = menubar.getMenu(menubar.getMenuCount()-1);
            assertEquals(\"Help\", help.getText());
        }
        // Tests for other menus...
    }


      與典型的 test-first 編程不同,我在此處編寫了很多測試代碼卻沒有必要編寫任何模型代碼。標準的 TDD 只編寫能夠使一個測試失敗的足夠多的代碼。然后,它就切換到模型代碼中直到測試通過為止。我并不是說 TDD 原則是錯誤的,但當兩百萬行的遺留模型代碼已經存在時,它的確不能成為一個有用的選擇。那時的目的是為了盡快地獲得盡可能大的覆蓋率。
    測試還是調試?

      如果遺留系統是一個好的系統,您的大多數測試還是很有希望通過的。盡管如此,您也會找到 bug。當測試一個以前從未經過測試的代碼基礎時,這種情況很可能很快就出現而不是以后才出現。這時,標準的 TDD 方法是停止測試并且開始進行修改直到測試通過。然而,這是假設您已經測試了模型中的其他所有內容并且相當自信如果您的修改中斷了系統中的其他部分,您可以立即發現。在遺留測試中,這不是一個安全的方法。在修改一個以前的 bug 時,您很有可能將一個新的 bug 引入未經測試的代碼中;而且假如這樣的話,您可能不能立即注意到這個新 bug。因此,強烈建議首先編寫更多的測試,稍后再對 bug 進行修復。歸根結底,這是一種基于如下一些因素的判斷調用:

      bug 是不是看起來簡單、明顯并且是局部的?
      您是否理 bug 出現的那段代碼?
      您是否理解所作的修復?
      如果上面問題的回答都是 “是”,那么就去修復這個 bug。如果回答是 “否”,則應該在修復改代碼之前首先盡力擴充測試套件。

    通過功能劃分進行測試

      在最高層次上開始測試能夠以最快速度獲得代碼覆蓋率。對于遺留代碼,應該考慮應用程序在做什么而不是考慮單個方法。盡量為它所做的每件事編寫測試。對于一個 GUI 應用程序如 jEdit,菜單項提供應用程序功能的一個好的典型。激活每個菜單并且證實它做了應該做的。例如,清單 3 展示了這樣的測試,向一個窗口輸入一些文本,激活 \"select all\" 菜單項,剪切所選中的文本,然后驗證文本在剪貼板中,而不在窗口中: 清單 3. 測試 jEdit 菜單

    public void testCut() {
          JEditTextArea ta = view.getTextArea();
          ta.setText(\"Testing 1 2 3\");
          JMenu edit = menubar.getMenu(1);
          JMenuItem selectAll = edit.getItem(8);
          selectAll.doClick();
          JMenuItem cut = edit.getItem(3);
          cut.doClick();
          assertEquals(\"\", ta.getText());
          assertEquals(\"Testing 1 2 3\", getClipboardText());
    }
    private static String getClipboardText() {
          Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
          Transferable contents = clipboard.getContents(null);

    延伸閱讀

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

    53/5<12345>

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