集成测试

简介:         集成测试是软件测试的第二步,其具体过程如下。         第一,非增量式测试。         非增量式测试是采用一步到位的方法来构造测试:对所有模块进行个别的单元测试后,按照程序结构图将各模块连接起来,把连接后的程序当作一个整体进行测试。

        集成测试是软件测试的第二步,其具体过程如下。

        第一,非增量式测试

        非增量式测试是采用一步到位的方法来构造测试:对所有模块进行个别的单元测试后,按照程序结构图将各模块连接起来,把连接后的程序当作一个整体进行测试。

        采用非增量式测试方法进行集成测试如下图所示:

        非增量式测试的缺点:当一次集成的模块较多时,非增量式测试容易出现混乱,因为测试时可能发现了许多故障,为每一个故障定位和纠正非常困难,并且在修正一个故障的同时,可能又引入了新的故障;新旧故障混杂,很难判定出错的具体原因和位置。

 

        第二,增量式测试

        增量式测试的集成是逐步实现的:逐次将未曾集成测试的模块和已经集成测试的模块(或子系统)结合成程序包,再将这些模块集成为较大系统,在集成的过程中边连接边测试,以发现连接过程中产生的问题。

        按照不同的实施次序,增量式集成测试又可以分为三种不同的方法:自顶向下增量式测试,自底向上增量式测试和混合增量式测试。

(1)自顶向下增量式测试

        自顶向下增量式测试表示逐步集成和逐步测试是按照结构图自上而下进行的,即模块集成的顺序是首先集成主控模块(主程序),然后依照控制层次结构向下进行集成;从属于主控模块的按深度优先方式(纵向)或者广度优先方式(横向)集成到结构中去。

         深度优先方式的集成:首先集成在结构中的一个主控路径下的所有模块,主控路径的选择是任意的。

         广度优先方式的集成:首先沿着水平方向,把每一层中所有直接隶属于上一层的模块集成起来,直到底层。

         集成测试的整个过程由3个步骤完成:

1)主控模块作为测试驱动器

2)根据集成方式(深度或广度),下层的桩模块一次一次地被替换为真正的模块

3)在每个模块被集成时,都必须进行单元测试;重复第2)步,直到整个系统被测试完成

         按照广度优先方式进行集成测试如下图所示:

         按照深度优先方式进行集成测试如下图所示:

(2)自底向上增量式测试

        自底向上增量式测试表示逐步集成和逐步测试的工作是按结构图自下而上进行的,即从程序模块结构的最底层模块开始集成和测试。

        由于是从最底层开始集成,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)已经集成并测试完成,所以不再需要使用桩模块进行辅助测试;在模块测试过程中需要从子模块得到的信息可以直接运行子模块得到。

       采用自底向上增量式测试方法进行集成测试如下图所示:

(3)混合增量式测试

        混合增量式测试是把自顶向下测试和自底向上测试这两种方式结合起来进行集成和测试;这样可以兼具两者的优点,而摒弃其缺点。

        常见的两种混合增量式测试方式:

1)衍变的自顶向下的增量式测试:基本思想是强化对输入/输出模块和引入新算法模块的测试,并自底向上集成为功能相对完整且相对独立的子系统,然后由主模块开始自顶向下进行增量式测试

2)自底向上-自顶向下的增量式测试:首先对含读操作的子系统自底向上直至根节点模块进行集成和测试,然后对含写操作的子系统做自顶向下的集成与测试

 

        第三,不同集成测试方法的比较

(1)非增量式测试与增量式测试的比较

        非增量式测试的方法是先分散测试,然后集中起来再一次完成集成测试;假如在模块的接口处存在错误,只会在最后的集成测试时一下子暴露出来。

        增量式测试是逐步集成和逐步测试的方法,把可能出现的差错分散暴露出来,便于找出问题和修改;而且一些模块在逐步集成的测试中,得到了较多次的考验;因此,可能会取得较好的测试效果。

        结论:增量式测试要比非增量式测试具有一定的优越性。

(2)自顶向下与自底向上增量式测试的比较

        自顶向下增量式测试:主要优点在于它可以自然的做到逐步求精,一开始就能让测试者看到系统的框架;主要缺点是需要提供桩模块,并且在输入/输出模块接入系统以前,在桩模块中表示测试数据有一定困难。

        自底向上增量式测试:优点在于,由于驱动模块模拟了所有调用参数,即使数据流并未构成有向的非环状图,生成测试数据也无困难;主要缺点在于,直到最后一个模块被加进去之后才能看到整个程序(系统)的框架。

目录
相关文章
|
7月前
|
Java 测试技术 持续交付
自动化测试实践:从单元测试到集成测试
【6月更文挑战第28天】-单元测试:聚焦代码最小单元,确保每个函数或模块按预期工作。使用测试框架(如JUnit, unittest),编写覆盖所有功能和边界的测试用例,持续集成确保每次变更后自动测试。 - 集成测试:关注模块间交互,检查协同工作。选择集成策略,编写集成测试用例,模拟真实环境执行测试,整合到CI/CD流程以持续验证软件稳定性。 自动化测试提升软件质量,降低成本,加速开发周期,是现代软件开发不可或缺的部分。
|
3月前
|
安全 Java 测试技术
单元测试一篇汇总
本文详细介绍了软件开发中的单元测试,包括其重要性和好处。单元测试主要用于确保程序模块代码的正确性,常使用的测试框架有JUnit和TestNG。文章重点讲解了JUnit框架,包括其注解、断言方法及JUnit 3.x和4.x的区别。此外,还列举了八大常用的单元测试框架,如Arquillian、JTest、The Grinder、TestNG、JUnit、JWalk、Mockito和PowerMock,帮助读者更好地理解和应用单元测试。
单元测试一篇汇总
|
8月前
|
jenkins 测试技术 持续交付
单元测试和集成测试
单元测试和集成测试
81 1
|
8月前
|
测试技术
为什么要单元测试
刹⻋是降低了⻋速还是提升了⻋速?我们通常认为写单测费⼒耗时、耽误研发进度,仿佛在给项⽬“踩刹⻋”。⼤家不妨带着这个问题往下看,详细聊聊为什么单元测试可以让软件开发跑得更快。
|
Java 测试技术 C语言
代码质量保障第2讲:单元测试 - 浅谈单元测试
代码质量保障第2讲:单元测试 - 浅谈单元测试
162 0
|
测试技术 编译器 Linux
浅谈c++单元测试
浅谈c++单元测试
|
Java 测试技术
单元测试的正确姿势
软件测试是软件质量保证的关键步骤。越早发现软件中存在的问题,修复问题的成本就越低,软件质量也就越高,软件发布后的维护费用越低。为了能更好的保障软件质量,制定统一的系统自测指南,形成统一的流程达到此目标。
388 0
单元测试的正确姿势
|
Java 测试技术 Go
【自动化测试】单元测试
【自动化测试】单元测试
106 0
|
Java 测试技术 容器
还在手动写单元测试?
还在手动写单元测试?
123 0
|
敏捷开发 测试技术 程序员

热门文章

最新文章