一、 单元测试的概念

  单元通俗的说是指一个实现简单功能的函数。单元测试是只用一组特定的输入(测试用例)测试函数是否功能正常,并且返回了正确的输出。

  测试的覆盖种类

  1.语句覆盖:语句覆盖是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次。

  2.判定覆盖(也叫分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次。

  3.条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次。

  4.判定——条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次,并且每个可能的判断结果也至少执行一次。
    5.条件组合测试:设计足够的测试用例,运行所测程序,使程序中每个判断的所有条件取值组合至少执行一次。

  6.路径测试:设计足够的测试用例,运行所测程序,要覆盖程序中所有可能的路径。

  用例的设计方案主要的有下面几种:条件测试,基本路径测试,循环测试。通过上面的方法可以实现测试用例对程序的逻辑覆盖,和路径覆盖。

  二、开始测试前的准备

  在开始测试时,要先声明一下,无论你设计多少测试用例,无论你的测试方案多么完美,都不可能完全的发现所有BUG,我们所需要做的是用少的资源,做多测试检查,寻找一个平衡点保证程序的正确性。穷举测试是不可能的。所以现在进行单元测试我选用的是现在一般用的比较多的基本路径测试法。

  三、开始测试

  基本路径测试法:设计出的测试用例要保证每一个基本独立路径至少要执行一次。

  函数说明 :当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 }