集成测试和系统测试

  软件工程测试大致分为三个步骤:单元测试,集成测试,系统测试,单元测试上次已经介绍了,这次就从集成测试开始。

  一、

  集成测试是处在中间阶段,在单元测试之后,而且也必须在单元测试之后,因为顾名思义,它本身就是对不同的单元进行集成,将小的单元构成子系统,进行测试。为此,它有一个大前提,就是所有的单元在本单元内测试是没有问题的,集成测试只负责测试单元之间的接口之类的有没有错误,单元内的问题不该集成测试管了。而且,若是单元内的错误,集成测试有应该也发现不了,因为是寻找接口之间的错误,将错误定位为消息传递,接口函数错误等原因造成的错误。所以这时错误的定位非常困难,测试的成本大增,脑子稍微正常点的都不会这末干。

  由于是将不同的单元组合在一起,所以,组合的方法自然不同,你可以一股脑的把所有的东向都拼在一起,然后看能不能正常工作,也可以一点一点拼,一点一点测,就和工厂机器之类的组装是一个道理,完全可以把不同单元看成机器的零件,整个软件看成机器来理解。

  当然这种测试是必要的,其实,只要是现在还存在,而且出现在企业中而不是只出现在教科书中,那这种方法应该就有可取之处,那些企业家不是傻子,相反,它们精明着呢。而集成测试已经可以说用的很频繁了。集成测试是在单元测试之后,将不同单元集成起来,测试接口(单元间的接口,非单元内的接口,后者已经在单元测试的过程中测试过了)。这些是单元测试过程中没有涉及到的部分,谁也不敢说它没有问题。还是拿机器做比喻,你做出来一堆零件没问题,但是组装起来,机器不一定能正常开机。所以你还是需要测试一下,组装起来之后情况。

  一股脑的拼起来有个专业点的叫法,叫做“非渐增式集成测试”,它就是组装机器的时候,一下把整台机器都攒出来。至于机器能不能动,到时候再说,这种方法省事,不用再做什么技术含量的东西,就是组装,但是之后就麻烦了,要是机器动起来没问题,那自然再好不过,万一机器不动(这种情况估计是不可能的),你想找问题出在哪就不好找了,这末大一团,很多地方出错都有可能导致问题的发生,排查起来相当麻烦。

  一点一点拼也有一个文雅点的名字,叫做“渐增式集成测试”,从名字上就可以看出来,东西是逐渐增多的。和“非渐增式集成测试”不同,它是一个单元一个单元来增加的。

  单元之间大部分有树形图的结构,所以渐增式就有大致两种增加的方法,一种是自顶向下,一种是自底向上,前者从最主要的模块开始,起初,用一些桩模块(对一个模块的简单模拟)替代它的子模块,然后,逐渐往下,将桩模块替换成真正的子模块,知道所有的模块都被替代,也就完成了集成测试。往下的方法就用我们常用的深度优先或者广度优先即可。

  自底向上相反,先从子模块开始,然后将它的主控模块加进来,由于子模块已经准备好了,所以这次不需要桩模块了。

  当然有种折中的方法,可以先从中间开始,然后向两边分别用两种方法扩展,叫做“三明治集成”。

  三种方法都有的一个缺点是,由于单元添加有先后顺序,总是一部分单元测试不够充分。自顶向下,由于一开始使用的桩模块,最下层的模块测试程度不够。自底向上,对高层测试被推迟到最后,整体设计的错误发现较晚。三明治法,目标层在集成前测试不充分。

  二、

  再看系统测试,这个测试基本上是最后阶段了,这时候软件部分基本上已经完成了,所以,需要一个最后的从用户的角度来观测的测试。

  因为是从用户的角度,所以系统测试是黑盒测试,而且可以说是最大范围的黑盒测试,针对整个软件所有功能的。同时,这个时间也要兼顾硬件了,因为将来所有用户的硬件是不可能完全相同的,这时候要开始检验硬件的兼容性了。

  系统测试有很多种方法,首先由于本身是黑盒测试,黑盒测试的方法都可以用,然后,由于是一个针对整体的测试,还有一些特殊的方法,比如压力测试,容量测试,备份测试,安装测试等。

  

  

  

  

  

  

  

  

原文地址:https://www.cnblogs.com/tiandaliang/p/4471620.html