软件测试理论基础Part1
测试阶段分类
单元测试
- 程序的最小模块完成后,进行的测试
- 可能是一个函数,也可能是一个类,也可能是一个界面(一般是由程序员进行自测)
集成测试
- 组装测试,在单元测试的基础上,把多个模块组装到一起进行测试,重点关注模块和模块之间的接口
系统测试
- 指的是将整个软件系统看为一个整体进行测试,测试的依据是需求说明书
- 到了系统测试阶段,软件基本是完成的
验收测试
- 检验软件是否符合用户需求的测试
- 站到最终用户的角度来测试
- α测试
- Alpha是内测版本
- 通常只在软件开发者内部交流
- 一般而言,该版本软件的Bug较多,普通用户最好不要安装。
- β测试
- Beta是公测版本,是对所有用户开放的测试版本
- 这一版本通常由软件公司免费发布,用户可从相关的站点下载。
- 通过一些专业爱好者的测试,将结果反馈给开发者,开发者们再进行有针对性的修改。
- γ测试
- Gamma版本,指的是软件版本正式发行的候选版。该版本已经相当成熟了,与即将发行的正式版相当。
- α测试
是否查看源代码分类
黑盒
- 只测试功能,不关注功能的具体实现方式
白盒
- 不但要关注功能,还要关注代码是如何实现的
灰盒
- 介于黑盒和白盒之间的一种测试
按是否运行分类
静态测试
- 不运行软件,静态的观察软件是否符合预期
动态测试
- 运行软件,在运行过程中测试
- 常用的还是动态测试
是否自动化
手工测试
- 通过测试工程师手工对软件进行测试
自动化测试
- 通过编程写代码,通过程序自动测试软件是否有Bug
其他分类
- 冒烟测试
- 对软件最基本的流程和工作做一个粗略的测试,看最基本的流程是否能跑通
- 测试拿到研发的第一个版本,一般先冒烟
- 回归测试
- 当修复一个BUG后,把之前测试用例在新的代码下进行再次测试
- 随机测试
- 针对软件中的重要功能进行复测
- 探索性测试
- 探索性测试意味着同时设计测试和执行测试.测试人员通过测试来不断学习被测系统.一般学习熟悉项目一边测试项目
软件质量模型
软件质量,就是软件与明确地和隐含地定义得需求相一致得程度.
ISO 9126软件质量模型是评价软件质量的国际标准,这个模型是软件质量标准的核心,对于大部分的软件,都可以考虑从这6个特性和27个子特性去测试,评价一个软件.

功能性
- 功能的正确性
- 功能的安全性
- 功能的依从性
可靠性
- 软件要有容错性
- 出现错误后可以很快恢复
易用性
- 软件界面是否流畅
- 提示是否友好
- 用户使用功能是否得当
效率
- 软件一定是要高效的
维护性
可移植性
- 适应不同的系统
软件开发模型
瀑布模型

- 需求分析
- 研发分析需求说明书
- 研判需求的可实现性
- 概要设计
- 用到具体的技术点
- 大概模块划分
- 详细设计
- 详细到可以为编码做支持
- 类和类的关系,类的设计
- 函数设计
- 各种接口的细节
- 数据库表的关系,字段关系
- 编码
- 依托于详细设计进行编码操作
- 测试
- 维护
- 上线后需要持续维护
瀑布模型特点
- 线性模型
- 每一步都是按顺序来执行
- 文档驱动
- 每一阶段都要有文档产出
瀑布模型优点
- 优点
- 每个阶段很清晰
- 只需要关注后续阶段
- 缺点
- 依赖于需求,不能适应需求的变化
- 风险到项目后期才体现,失去早期纠正的机会
快速原型模型
快速原型模型特点
- 快速得构建软件的原型
- 支持用户参与
快速原型模型的优缺点
- 优点
- 克服瀑布模型的缺点,更好地满足用户的需求并减少由于软件需求不明确带来的项目开发风险
- 缺点
- 不适合大型系统的开发(适合开发小型,灵活度高的系统)
螺旋模型
优点
- 引入风险分析
缺点
- 风险分析需要专业的知识和人员
测试过程V模型
- 从研发的瀑布模型来的

- 优点
- 包含了底层和高层的测试过程
- 每个步骤都是文档驱动的
- 缺点
- 当需求变更时将会导致测试阶段反复,返工量非常大,模型灵活性较低(跟瀑布模型类型)
测试过程W模型

- 优点
- 测试工作随着整个研发周期,测试对象不只是代码,文档也需要测试
- 更早的介入研发工作,可以今早发现问题,及时处理
- 缺点
- 对测试工程师要求比较高,实践起来难度比较大
测试用例
定义
- Test Case(测试用例)
- 作用
- 为特定的目的而设计的一组测试输入,执行条件和预期结果的文档(测试用例是在开发产出之前就已经写好的)
测试管理八大要素
- 用例编号
- 用例标题
- 所属项目
- 用例级别
- 预置条件
- 测试数据
- 执行步骤
- 预期结果

浙公网安备 33010602011771号