<ruby id="rxdll"></ruby><strike id="rxdll"></strike>

    <rp id="rxdll"></rp>
      <del id="rxdll"><meter id="rxdll"></meter></del>
      <pre id="rxdll"><font id="rxdll"></font></pre>
        <pre id="rxdll"></pre>
      <p id="rxdll"><thead id="rxdll"></thead></p><dl id="rxdll"><progress id="rxdll"><form id="rxdll"></form></progress></dl>

      <ol id="rxdll"><thead id="rxdll"><track id="rxdll"></track></thead></ol>
      <i id="rxdll"><dfn id="rxdll"></dfn></i>
      <font id="rxdll"><meter id="rxdll"></meter></font>

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

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

        以下是我寫的幾點有關談論單元測試的內部輸入問題,大家參考一下

        發布: 2010-8-04 09:58 | 作者: 網絡轉載 | 來源: 領測軟件測試網采編 | 查看: 156次 | 進入軟件測試論壇討論

        領測軟件測試網

        先來說一下我對于單元測試的認識吧,我覺得有三種情況:
        一是輸入輸出為值,且與數據庫無關
        二是輸入輸出為值,且與數據庫有關
        三是輸入輸出不是值的情況
        第一種情況常見于控制類,它的方法,一般情況下,參數就是輸入值,返回值就是輸出值,此時輸出值只受輸入值的影響
        第二種情況常見于實體類,它的方法,一般情況下,與控制類的方法相同,但是輸出值不只是受輸入值的影響,同時還受當前數據庫的內容影響。
        第三種情況常見于邊界類(一般就是界面,不知道我這樣理解對不對),一般情況下,它的方法是系統定義的方法,雖然也有參數和返回值,但是對開發人員來說并不是很重要,有時甚至不用。如界面中一個按鈕的clicked事件。
        對應于上面的三種情況,測試也有不同。
        對于第一種情況,比較好辦,在設計這個類時,就可以寫出測試用例,包括具體的輸入值和期望輸出。
        對于第二種情況,在寫測試用例時,就必須先假定數據庫中相應表的數據值,但是在真正測試時,并不能保證數據庫中的真實數據就是我假定的數據,這種情況下,就需要測試人員去查看數據庫的當前內容,就有些麻煩。
        對于第三種情況,我根本就不知道怎么去寫測試用例。如一個按鈕的clicked事件,其中有很多步驟,受影響的部分可能也有很多,這些情況在設計時都已經有說明了,如果對照著設計文檔,應該是可以測試的,但要寫測試用例,我就不知從何下手,總不能從設計文檔中抄一遍吧。這種情況下,我現在的觀點是不寫測試用例,讓測試人員直接看設計文檔進行測試。
        以上是我的拙見,不知道這種分類是否科學,另外,對于我說的第二種情況和第三種情況,各位有何高見

        以下是我寫的幾點有關談論單元測試的內部輸入問題,大家可以參考

        內部輸入是函數內部獲得的輸入,包括調用子函數獲得的輸入和局部靜態變量。請看下面的兩組功能完全一樣代碼(差異部分用粗體標出):

        代碼一(代碼清單4.1.cpp):

        //計算圓的外接正方形的面積
        int GetArea(int r)
        {
            return (r+r) * (r+r);
        }

        //判斷指定的正方形是否可以容納圓
        //參數int r:圓的半徑
        //參數int x:指定正方形邊長
        //返回值:不能容納,返回-1;正好可以容納,返回0;有多余空間,返回1
        int Compare(int r, int x)
        {
               int a1 = GetArea(r);
               int a2 = x*x;
               
                if(a1 == a2)
                        return 0;

                if(a1 < a2)
                        return 1;

                return -1;
        }

        //調用compare
        int Func(int r, int x)
        {
                int result = Compare(r, x);
                printf("result %d\n", result);
                return result;
        }

        代碼二(代碼清單4.2.cpp):

        //計算圓的外接正方形的面積
        int GetArea(int r)
        {
                return (r+r) * (r+r);
        }

        //判斷指定的正方形是否可以容納圓
        //參數int a1:圓的外接正方形的面積
        //參數int x:指定正方形邊長
        //返回值:不能容納,返回-1;正好可以容納,返回0;有多余空間,返回1
        int Compare(int a1, int x)
        {
                int a2 = x*x;
               
                if(a1 == a2)
                        return 0;

                if(a1 < a2)
                        return 1;

                return -1;
        }

        //調用compare
        int Func(int r, int x)
        {
               int a1 = GetArea(r);
                int result = Compare(a1, x);
                printf("result %d\n", result);
                return result;
        }

        兩組代碼的差別在對GetArea()的調用是在Compare()之內還是之外。假如我們的測試目標是Comapre(),圓的外接正方形的面積a1在代碼一中通過調用Compare()取得,在代碼二中通過參數傳遞,顯然,兩者之間并無本質區別。Compare()的功能是,計算指定正方形的面積后并與外接正方形面積比較,GetArea()只是一個取得數據的調用,GetArea()本身是否正確,不是我們的測試目標,測試目標在于:對參數輸入和 GetArea()的各種輸出是否做了合適的計算,只要這些計算正確,Comapre()就沒有錯誤。因此,從測試角度來看,被測函數調用其他函數(稱為底層函數)所取得的數據,完全可以和通過參數傳遞的數據同等對待,都是一種輸入,稱為內部輸入。

        延伸閱讀

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

        TAG: 單元 輸入 談論

        21/212>

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

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

        国产女主播精品_国产片婬乱18一级毛片视频_国产午夜激无码av毛片不卡_国产精品欧美久久久天天影院
          <ruby id="rxdll"></ruby><strike id="rxdll"></strike>

          <rp id="rxdll"></rp>
            <del id="rxdll"><meter id="rxdll"></meter></del>
            <pre id="rxdll"><font id="rxdll"></font></pre>
              <pre id="rxdll"></pre>
            <p id="rxdll"><thead id="rxdll"></thead></p><dl id="rxdll"><progress id="rxdll"><form id="rxdll"></form></progress></dl>

            <ol id="rxdll"><thead id="rxdll"><track id="rxdll"></track></thead></ol>
            <i id="rxdll"><dfn id="rxdll"></dfn></i>
            <font id="rxdll"><meter id="rxdll"></meter></font>

              <mark id="rxdll"><dfn id="rxdll"></dfn></mark>