单元测试
单元测试内容:模块接口 出错处理 局部数据结构 独立路径 边界条件
单元测试要求:
• 各种数据特性覆盖
• 单元的软件特性覆盖
• 语句覆盖达到 100%
• 分支覆盖达到 100%
• 错误处理路径达到 100%
单元测试-静态分析和代码审查
• 使用动态测试技术要准备测试用例,进行结果记录和分析,工作量大,
• 发现错误太多会降低动态测试效率
• 目前的动态测试技术局限性比较大,有相当类型的错误靠动态测试
是难以发现的
• 有些错误在动态测试时无法检查到
• 使用代码审查技术,一旦发现错误,就知道错误的性质和位置,
调试代价较低
• 使用静态分析方法一次就能揭示一批错误,并且随后就可以立即纠正错误
单元测试步骤
第一步:构造测试用例的运行坏境,即确定用例运行的前提条件,明确被测模块或被测单元所需的程序环境,启动测试驱动,设置桩,调用被测模块,设置预期输出条件判断,最后恢复环境。
第二步:设计黑盒测试用例,即接口测试用例。
第三步:设计白盒测试用例,即覆盖测试用例,找出单元内部控制结构和数据使用可能存在的问题。
集成测试
集成测试在软件分级测试中的意义:
在单元测试和系统测试间起到承上启下的作用,既能发现大量单元测试阶段不易发现的接口类错误,又可以保证在进入系统测试前及早发现错误,减少损失(事实上,对系统而言,接口错误是最常见的错误);能够较容易地测试到系统测试用例难以模拟的特殊异常流程,从纯理论的角度来讲,集成测试能够模拟所有实际情况。
自顶向下组装测试的具体步骤
以主控模块作为测试驱动模块,把对主控模块进行单元测试时引入的所有
桩模块用实际模块替代
依据所选的集成策略以及新模块的选择原则,每次用一个实际单元替换一
个被调用的桩模块,并开发该单元可能需要的桩模块
每集成一个模块的同时立即进行测试
判断系统的组装测试是否完成,若没有完成则转到②循环进行直到集成结束自底向上组装测试的具体步骤
开发一个测试驱动模块,由驱动模块控制最底层模块的并行测试;也可以
把最底层模块组合成实现某个子功能的模块群,由驱动模块控制它进行测
试
用真实模块代替驱动模块,与它已经通过测试的下属模块组装成为完成更
大功能的新模块群。
每集成一个模块的同时立即进行测试
判断程序组装的过程是否已经达到主模块,如果是则代表完成组装结束测
试,否则从(1)开始循环执行直到组装结束
混合渐增式集成测试方法(或称三明治集成方法)
衍变的自顶向下的渐增式测试
自底向上—自顶向下的渐增式测试
回归测试
组装测试
混合渐增式集成测试方法的优缺点
优点:运用一定的技巧,能够减少桩模块和驱动模块的开发
缺点:集成之前中间层不能尽早得到充分的测
确认测试
概念:
• 确认测试是严格遵循有关标准的一种符合性测试,以确定软件产品是否所给定的要求。
• 确认测试是在完成集成测试后,依据确认测试准则,针对需求规格说明行
的测试,以确定所开发的软件系统是否能满足规定的功能和性能要求。
• 确认测试必须有用户参加,或者是以用户为主进行用户应参与设计测试方案,使用用户界面输入测试数据,并分析测试结果,为使用户积极参与测试,有
效使用系统,通常需要对用户进行培训。
有效性测试
– 在模拟的环境下,运用“黑盒”测试的方法,验证被测软件是否满足需求规格说明书列出的需求
– 仔细设计测试计划和测试过程
– 有效性测试两种结果:
• 功能和性能与用户要求一致
• 功能和性能与用户要求有差距
系统测试
过程定义:
制定测试计划 设计测试系统 实施系统测试 执行系统测试 评估系统测试
系统测试需求分析的几条准则
– 测试需求必须是可观测、可评测的行为
– 每个用例或系统的补充需求与测试需求之间不存在一对一的关系
– 需求规格说明书中的每个功能、性能、安全描述等将派生一个或多个测试需
求
– 功能测试需求和性能测试需求是整个系统测试需求中的核心
系统测试需求的核心
– 功能性测试需求
• 功能性测试需求来自测试对象的功能性说明
– 性能测试需求
• 性能测试需求来自测试对象的指定性能行为
• 性能通常被描述为响应时间和资源使用率的某种评测
系统测试的测试类型一般包括:
– 功能测试、性能测试、接口测试
– 强度测试、人机交互界面测试、余量测试
– 可靠性测试、安全性测试、恢复性测试
– 边界测试、数据处理测试、安装性测试
– 容量测试、互操作性测试、敏感性测试
– 标准符合性测试、兼容性测试、中文本地化测试