<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>

            如何編寫(xiě)單元測試用例

            發(fā)表于:2007-08-26來(lái)源:作者:點(diǎn)擊數: 標簽:單元測試
            前段時(shí)間公司進(jìn)行有關(guān)測試的 培訓 , 集成測試 , 性能測試 , 壓力測試 說(shuō)了很多。由于本人還處于Coder階段,只是對單元測試有了些了解。寫(xiě)下來(lái)怕以后自己忘記了。都是些自己的看法,不一定準確,歡迎高手指教。 一、 單元測試的概念 單元通俗的說(shuō)就是指一
             前段時(shí)間公司進(jìn)行有關(guān)測試的培訓,集成測試,性能測試,壓力測試說(shuō)了很多。由于本人還處于Coder階段,只是對單元測試有了些了解。寫(xiě)下來(lái)怕以后自己忘記了。都是些自己的看法,不一定準確,歡迎高手指教。

            一、 單元測試的概念

                    單元通俗的說(shuō)就是指一個(gè)實(shí)現簡(jiǎn)單功能的函數。單元測試就是只用一組特定的輸入(測試用例)測試函數是否功能正常,并且返回了正確的輸出。
                    測試的覆蓋種類(lèi)
                    1.語(yǔ)句覆蓋:語(yǔ)句覆蓋就是設計若干個(gè)測試用例,運行被測試程序,使得每一條可執行語(yǔ)句至少執行一次。
                    2.判定覆蓋(也叫分支覆蓋):設計若干個(gè)測試用例,運行所測程序,使程序中每個(gè)判斷的取真分支和取假分支至少執行一次。
                    3.條件覆蓋:設計足夠的測試用例,運行所測程序,使程序中每個(gè)判斷的每個(gè)條件的每個(gè)可能取值至少執行一次。
                    4.判定——條件覆蓋:設計足夠的測試用例,運行所測程序,使程序中每個(gè)判斷的每個(gè)條件的每個(gè)可能取值至少執行一次,并且每個(gè)可能的判斷結果也至少執行一次。
                    5.條件組合測試:設計足夠的測試用例,運行所測程序,使程序中每個(gè)判斷的所有條件取值組合至少執行一次。
                    6.路徑測試:設計足夠的測試用例,運行所測程序,要覆蓋程序中所有可能的路徑。
                    用例的設計方案主要的有下面幾種:條件測試,基本路徑測試,循環(huán)測試。通過(guò)上面的方法可以實(shí)現測試用例對程序的邏輯覆蓋,和路徑覆蓋。

            二、開(kāi)始測試前的準備
                   
                    在開(kāi)始測試時(shí),要先聲明一下,無(wú)論你設計多少測試用例,無(wú)論你的測試方案多么完美,都不可能完全100%的發(fā)現所有BUG,我們所需要做的是用最少的資源,做最多測試檢查,尋找一個(gè)平衡點(diǎn)保證程序的正確性。窮舉測試是不可能的。   所以現在進(jìn)行單元測試我選用的是現在一般用的比較多的基本路徑測試法。

            三、開(kāi)始測試

                   基本路徑測試法:設計出的測試用例要保證每一個(gè)基本獨立路徑至少要執行一次。

                    函數說(shuō)明 :當i_flag=0;返回     i_count+100
                                            當i_flag=1;返回   i_count  *10
                                            否則  返回   i_count  *20


                    輸入參數:int i_count , 
                                        int i_flag
                    輸出參數: int  i_return;
                   
                  
                    代碼:
                    

             1  int Test(int i_count, int i_flag)
             2         {
             3             int i_temp = 0;
             4             while (i_count>0)
             5             {
             6                 if (0 == i_flag)
             7                 {
             8                     i_temp = i_count + 100;
             9                     break;
            10                 }
            11                 else
            12                 {
            13                     if (1 == i_flag)
            14                     {
            15                         i_temp = i_temp + 10;
            16                     }
            17                     else
            18                     {
            19                         i_temp = i_temp + 20;
            20                     }
            21                 }
            22                 i_count--;
            23             }
            24             return i_temp;
            25         }


             

            1.畫(huà)出程序控制流程圖
                    
                圖例:
                    

            事例程序流程圖:
                                

                    圈中的數字代表的是語(yǔ)句的行號,也許有人問(wèn)為什么選4,6,13,8......作為結點(diǎn),第2行,第3行為什么不是結點(diǎn),因為選擇結點(diǎn)是有規律的。讓我們看程序中;第2行,第3行是按順序執行下來(lái)的。直到第4行才出現了循環(huán)操作。而2,3行沒(méi)有什么判斷,選擇等分支操作,所以我們把2,3,4全部合并成一個(gè)結點(diǎn)。其它的也是照這個(gè)規則合并,然后就有了上面的流程圖。

            原文轉自:http://kjueaiud.com

            ...
            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>