• <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次 | 進入軟件測試論壇討論

    領測軟件測試網

    對 main() 方法進行故障診斷

      測試 main() 方法并不作用于所有的應用程序。例如,庫中不包含 main() 方法。一些確實具有 main() 方法的應用程序可能也不希望這個方法被不止一次的調用。如果您這樣做的話,靜態初始化軟件會非;靵y。它們可能不去清除一些對象和類,因為它們假定當程序存在時,虛擬機也存在,所有對象和類都將被自動清除。如果事實如此,您可能需要更深層地觀察您的應用程序,尋找第一個測試點。

      但是,不要走的過深。對于相對于 test-last 開發來說的 test-first 開發,尤其是對于遺留代碼來說,您可能會遇到一個問題是,經常存在未公開的依賴關系和先決條件。一些方法假定其他對象存在并且在它們運行前已經創建了。例如,大多數菜單欄不會脫離它們的父窗體單獨起作用。 實際上,如果您試著不止一次地調用 main() 方法,jEdit 就會變得非;靵y。我希望能一次也不調用它。但是,很多其他代碼依賴于 jEdit.initSystemProperties() 方法已經被調用,并且這個方法是私有的。執行它的惟一方法就是調用 main()。我采用的解決方法是,只有當 main() 方法一次也沒被調用過的時候才調用它,如下所示:

    private static boolean hasMain = false;
     protected void setUp() {
        if (!hasMain) {
            jEdit.main(new String[0]);
            hasMain = true;
        }
        View view = jEdit.getFirstView();
        while (view == null) {
            // First window may take a little while to appear
            view = jEdit.getFirstView();
        }
        menubar = view.getJMenuBar();
       }

    [Page]

      如果能夠自由地重構正在測試的代碼,您的工作會簡單些。特別是將一些私有方法變成公有方法能夠使這個代碼編寫起來更容易。在 test-first 開發中,這些都不成問題,因為您傾向于將代碼編寫得易于測試。然而,遺留代碼幾乎不考慮可測試性,因此,您必須消除這樣的阻礙。

    介紹裝備

      一旦編寫了第一個測試,您就能夠經?焖俚貜耐粋框架下開發更多的測試。將初始化和清理代碼放入 setUp() 和 tearDown() 方法中,注意從那里您可以真正快速地編寫多少測試。例如,我編寫過一些基礎測試來保證 jEdit 菜單欄出現并且在正確的地方顯示正確的菜單,如清單 2 所示:


    清單 2. 測試 jEdit 菜單
    package org.jedit.test;
    import javax.swing.*;
    import org.gjt.sp.jedit.*;
    import junit.framework.TestCase;
    public class MenuTest extends TestCase {
        private JMenuBar menubar;
        private static boolean hasMain = false;
        protected void setUp() {
            if (!hasMain) {
                jEdit.main(new String[0]);
                hasMain = true;
            }
            View view = jEdit.getFirstView();
            while (view == null) {
                // First window may take a little while to appear
                view = jEdit.getFirstView();

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

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