什么是软件测试?
广义概念软件测试是指软件生存周期中所有的检查、评审和确认工作,其中包括了对分析、设计阶段,以及完成开发后维护阶段的各类文档、代码的审查和确认 。狭义概念:识别软件缺陷的过程,即实际结果与预期结果的不一致
ü 测试只能证明软件存在缺陷,不能证明软件不存在缺陷
ü 测试可以使软件中缺陷降低到一定程度,而不是彻底消灭
ü 以较少的用例、时间和人力找出软件中的各种错误和缺陷,以确保软件的质量
软件测试原则
ü Good-enough: 一种权衡投入/产出比的原则
ü 保证测试的覆盖程度,但穷举测试是不可能的
ü 所有的测试都应追溯到用户需求
ü 越早测试越好,测试过程与开发过程应是相结合的
ü 测试的规模由小而大,从单元测试到系统测试
ü 为了尽可能地发现错误,应该由独立的第三方来测试
ü 不能为了便于测试擅自修改程序
ü 既应该测试软件该做什么也应该测试软件不该做什么
软件测试的的重点
测试用例的设计
测试用例的设计是整个软件测试工作的核心
测试用例反映对被测对象的质量要求,决定对测试对象的质量评估
测试工作的管理
尤其是对包含多个子系统的大型软件系统,其测试工作涉及大量
人力和物力,有效的测试工作管理是保证有效测试工作的必要前提
什么是软件测试?
测试环境的建立
测试环境应该与实际测试环境一致
黑盒测试 and白盒测试
什么是黑盒测试
又称功能测试或数据驱动测试,是针对软件的功能需求/实现进行
测试,通过测试来检测每个功能是否符合需求,不考虑程序内部的逻辑结构
黑盒测试方法
– 功能划分
– 等价类划分
– 边界值分析
– 因果图
– 错误推测等
什么是白盒测试
–白盒测试也称结构测试或逻辑驱动测试,必须知道软件内部工作
过程,通过测试来检测软件内部是否按照需求、设计正常运行
白盒测试的主要方法
对应于程序的一些主要结构:语句、分支、逻辑路径、变量
白盒测试的主要方法是:
– 语句覆盖方法
– 分支覆盖方法
– 逻辑覆盖方法
测试的流程
ü 单元测试
ü 集成测试
ü 系统测试
ü 用户验收测试
ü 回归测试