文档介绍:西北工业大学软件与微电子学院软件测试重点总结 2011 学年?软件缺陷: 就是软件产品中所存在的问题, 最终表现为用户所需要的功能没有完全实现,不能满足或不能全部满足用户的需求?软件错误/ 缺陷区别: 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题; 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。软件测试: 在特定的条件下运行系统或构件,观察或记录结果,对系统的某个方面做出评价;分析某个软件项以发现现存的和要求的条件之差别(即错误)并评价此软件项的特性?测试是为了证明程序有错,而不是证明程序无错误一个好的测试用例是在于它能发现至今未发现的错误一个成功的测试是发现了至今未发现的错误的测试?单元测试的对象是程序系统中的最小单元--- 模块或组件上, 在编码阶段进行, 针对每个模块进行测试, 主要通过白盒测试方法, 从程序的内部结构出发设计测试用例, 检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。多个模块可以平行地、对立地测试, 通常要编写驱动模块和桩模块。单元测试一般由编程人员和测试人员共同完成单元测试主要采用白盒测试方法,辅以黑盒测试方法?黑盒测试方法(Blake-box Testing), 是把程序看作一个不能打开的黑盒子,不考虑程序内部结构和内部特性,而是考察数据的输入、条件限制和数据输出,完成测试?白盒测试方法(White-box Testing), 也称结构测试或逻辑驱动测试。白盒测试方法是根据模块内部结构了解,基于内部逻辑结构,针对程序语句、路径、变量状态等来进行测试,检验程序中的各个分支条件是否得到满足、每条执行路径是否按预定要求正确的工作。白盒测试分类:静态/动态静态:关键功能是检查软件的表示和描述是否一致,没有冲突或起义动态: 语句、判断、条件、判定条件、条件组合、路径覆盖。覆盖了所有语句,但不能保证覆盖了所有分支;条件覆盖不能保证分支覆盖?静态测试:不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。代码测试: 主要测试代码是否符合相应的标准和规范。界面测试: 主要测试软件的实际界面与需求中的说明是否相符。文档测试: 主要测试用户手册和需求说明是否真正符合用户的实际需求。?动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。动态测试方法为结构和正确性测试?驱动程序( driver), 对底层或子层模块进行(单元或集成)测试时所编制的调用被测模块的程序,用以模拟被测模块的上级模块?桩程序(stub) ,也有人称为存根程序,对顶层或上层模块进行测试时,所编制的替代下层模块的程序,用以模拟被测模块工作过程中所调用的模块。驱动程序/ 驱动模块( driver ),用以模拟被测模块的上级模块。驱动模块在集成测试中接受测试数据,把相关的数据传送给被测模块,启动被测模块,并打印出相应的结果。桩程序/ 桩模块( stub ), 用以模拟被测模块工作过程中所调用的模块。桩模块由被测模块调用,它们一般只进行很少的数据处理,例如打印入口和返回,以便于检验被测模块与其下级模块的接口 ABCD EF G Test 驱动程序调用运行桩程序桩程序测试结果被测模块 B ?集成测试,也称组装测试、联合测试、子系统测试,在单元测试