软件测试的不同阶段:单元测试,集成测试,系统测试?

软件测试的目的在软件投入生产性运行之前 , 尽可能多地发现软件产品(主要是指程序)中的错误(缺陷) 。
高效的测试是指用少量的测试用例 , 发现被测软件尽可能多的错误(缺陷) 。
软件测试所追求的目标就是以尽可能少的时间和人力发现软件产品中尽可能多的错误(缺陷) 。
测试用例是由测试数据和预期结果构成的 。 它直接决定了软件测试的好坏!
软件测试通常可分为单元测试、集成测试和系统测试 。
1.单元测试单元测试(unit testing) , 也称模块测试 , 通常可放在编程阶段 , 由程序员对自己编写的模块自行测试 , 检查模块是否实现了详细设计说明书中规定的功能和算法 。
单元测试主要发现编程和详细设计中产生的错误 , 单元测试计划应该在详细设计阶段制定 。
单元测试期间着重从以下几个方面对模块进行测试:模块接口、局部数据结构、重要的
执行通路、出错处理通路和边界条件等 。
在这里需要明白两个模块的含义,驱动模块和若干个桩(stub)模块;
驱动模块:指的是用来调用被测模块 , 它接收测试者提供的测试数据 , 并把这些数据传送给被测模块 , 然后从被测模块接收测试结果 , 并以某种可以看见的方式(例如显示或打印)将测试结果返回给测试者 。
桩模块r指的是用来模拟被测模块所调用的子模块 , 它接受被测模块的调用 , 检验调用参数 , 并
以尽可能简单的操作模拟被调用的子程序模块功能 , 把结果送回被测模块 。 顶层模块测试时
不需要驱动模块 , 底层模块测试时不需要桩模块 。
2.集成测试集成测试(integration testing) , 也称组装测试 , 它是对由各模块组装而成的程序进行测试 , 主要目标是发现模块间的接口和通信问题 。
集成测试主要发现设计阶段产生的错误 , 集成测试计划应该在概要设计阶段制订 。
集成的方式可分为非渐增式和渐增式 。
非渐增式集成是先测试所有的模块 , 然后一下子把所有这些模块集成到一起 , 并把庞大
的程序作为一个整体来测试 。
缺点是:面对众多的错误现象 , 往往难以分清哪些是“真正的”错误 , 哪些是由其他错误引起的“假性错误” , 诊断定位和改正错误也十分困难 。 非渐增式集成只适合一些非常小的软件 。
渐增式集成是将单元测试和集成测试合并到一起 , 它根据模块结构图 , 按某种次序选一
个尚未测试的模块 , 把它同已经测试好的模块组合在一起进行测试 , 每次增加一个模块 , 直
到所有模块被集成在程序中 。
优点是:容易定位和改正错误 , 目前普遍采用的就是渐增式集成 。
渐增式集成又可分为自顶向下集成和自底向上集成 。
自顶向下集成先测试上层模块 , 再测试下层模块 。 由于测试下层模块时它的上层模块已测试过 , 所以不必另外编写驱动模块 。
自底向上集成先测试下层模块 , 再测试上层模块 。 同样 , 由于测试上层模块时它的下层模块
已测试过 , 所以不必另外编写桩模块 。
3.系统测试【软件测试的不同阶段:单元测试,集成测试,系统测试?】系统测试是软件测试中的最后的、最完整的测试 , 它是在单元测试和集成测试的基础上进行的 , 它从全局来考察软件系统的功能和性能要求 。
系统测试计划应该在需求分析阶段制订 。 系统测试包括确认测试和验收测试
确认测试 , 主要依据软件需求说明书检查软件的功能、性能及其他特征是否与用户的需求一致 。
验收测试是确认其所有需求是否都已得到满足 。 在实际工作中 , 验收测试可能会持续到用户实际使用该软件之后的相当长的一段时间 。


    推荐阅读