zoukankan      html  css  js  c++  java
  • 集成测试深度理解

        这两天在复习软件测试的考试,对于之前不大理解的集成测试有了新的理解。

        集成测试,也叫组装测试或者联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。

        可以说,集成测试是处于系统测试和单元测试之间,承上启下的重要测试。

        具体方法有两个:

        自下向上集成

      对任何系统几乎都可以采用这一策略。该策略是从低层次的、相互之间依赖性最步的模块开始的,可以用驱动程序来测试这些模块。这种策略能用来逐步建立系统,或者首先并行地建立起子系统,然后集成为一个完整系统。这种集成可以从开发过程的早期就开始进行。当然,如果项目计划中模块提交也是采用自下而上的方式,那么采用这种方法就能够尽早检测出接口问题,而且这些接口问题也比较容易被隔离,因此解决起来成本就低。其主要缺点是需要使用许多驱动程序来执行这一策略,而且因为测试需要迭代,所以也是一种非常耗时的策略。

        自上向下集成

      这种策略由系统的控制结构来引导。控制结构按照自上向下的顺序开发,这也提供了从上层控制模块开始,自上而下集成模块的能力。对每一个新的层次,位于同一层次的相关模块被集成起来并得到测试。还不存在的模块角色可以用占位来实现。采用该集成策略的一个缺点是:如果需求发生了变化,变化对底层模块产生影响,从而也将导致上层模块需要更改。这可能导致需要(部分)重新开始集成以及测试过程。另一个缺点是用于测试每个集成步骤所必须用的占位数目很大。如果在早期从上层模块开始集成测试,即使采用占位来替代系统的主要部件。仍然可以观察到整个系统的概貌以及工作方式。

        举个例子:

      被测试段代码实现的功能是:如果a>b,则返回a,否则返回a/b

      被测试段代码由两个函数实现,分别是

      ---int  max (int a, int b, char *msg)

      ---void divide (int *a, int *b)

      divide函数实现a/b功能,max函数实现其他对应功能,并进行结果输出

      int  max (int a, int b, char *msg)

      {

      char dsp[20];      /*声明一个大小为20的char型数组*/

      if (a<0 || b<0)       /*如果a和b中有一个数不是正数*/

      return -1;             /*则直接返回*/

      if (a>b)                 /*如果a大于b,*/

      ;                  /*什么也不做*/

      else

      divide (&a, &b);

      sprintf (dsp, ”%s %d”,msg,a);

      printf (dsp);

      return  a;

      }

      void divide (int *a, int *b)

      {

      (*a)=(*a)/(*b);

      return ;

      }

      画出结构图为:

      集成测试操作步骤

      确定集成测试策略

      ---采用自底向上的测试策略

      确定集成测试粒度

      ---函数

      选定测试用例设计方法

      ---等价类划分、边界值等

      编写测试用例

      ---因为测试策略是自底向上,所以先测试divide( int *a, int *b)函数

      构造驱动(其中m和n是测试用例输入)

      int  test ( )

      {

      int a=m;

      int b=n;

      divide( &a, &b);

      }

      依次执行测试用例,完成测试

      

  • 相关阅读:
    HDU2141 Can you find it?(搜索,二分)
    HDU1253 胜利大逃亡(搜索)
    辗转相除法证明
    POJ2230 Watchcow(欧拉回路)
    POJ2524Ubiquitous Religions, 1611The Suspects(并查集)
    POJ3259 Wormholes(最短路)
    HDU3018Ant Trip(欧拉回路)
    SDUT1500Message Flood(字典树)
    HDU1010 Tempter of the Bone(搜索,dfs)
    HDU1305Immediate Decodability(字典树)
  • 原文地址:https://www.cnblogs.com/qbcq/p/4457086.html
Copyright © 2011-2022 走看看