一、软件测试分类
按阶段划分
单元测试
- 又称模块测试,针对软件设计的最小单位-程序模块,进行正确性检查的测试。单元测试需要从程序内部结构出发设计测试用例。
集成测试
- 又称组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。重点测试不同模块之间的接口部分。
系统测试
- 把软件项目作为一个整体进行测试。测试的依据是需求说明书。
- 到了系统测试阶段,软件基本是完成的。
验收测试
站在最终用户的角度来测试
- α测试
- Alpha是内测版本,通常只在软件开发者内部测试
- 一般而言,该版本软件的bug较多,普通用户最好不要安装
- β测试
- Beta是公测版本,是对所有用户开放的测试版本
- 这一版本通常由软件公司免费发布,用户可以相关的站点下载
- 通过一些专业爱好者的测试,将结果反馈给开发者,开发者们再进行有针对性的修改
- γ测试
- Gamma版本,指的是软件版本正式发行的候选版。该版本已经相当成熟了,与即将正式发行的版本相差不多
按是否覆盖源代码
黑盒测试
- 只测试功能,不关注功能的具体实现方式
白盒测试
- 不但要关注功能,还要关注代码是如何实现的
灰盒测试
- 介于黑盒和白盒之间的一种测试(接口测试倾向于灰盒测试)
按是否运行
静态测试
- 不用运行软件,静态的观察软件是否符合预期
动态测试
- 运行软件,在运行过程中测试
按是否自动化
手工测试
- 通过测试工程师手工对软件进行测试
自动化测试
- 通过编写代码,通过程序自动测试软件是否有bug
更多
冒烟测试
- 对软件最基本的流程和功能做一个粗略的测试,看最基本的流程是否能跑通。
- 在测试拿到研发的第一个版本,一般先冒烟
回归测试
- 当修复一个BUG后,把之前的测试用例在新的代码下进行再次测试。(防止拆东墙补西墙)一般是阶段性的进行回归测试
随机测试
- 随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分
探索测试
- 针对一些新项目、新功能或者刚入职熟悉业务,一边了解和学习项目,一边测试项目
二、软件质量模型
- 功能性
- 适合性
- 准确性
- 互操作性
- 保密安全性
- 功能性的依从性——功能之间依赖关系是否合理
- 可靠性
- 成熟性
- 容错性
- 易恢复性
- 可靠性的依从性
- 易用性
- 易理解性
- 易学性
- 易操作性
- 吸引性
- 易用性的依从性
- 效率
- 时间特性
- 资源利用性
- 效率依从性
- 维护性
- 易分析性
- 易改变性
- 稳定性
- 易测试性
- 维护性的依从性
- 可移植性
- 适应性
- 易安装性
- 共存性
- 易替换性
- 可移植性的依从性
三、软件开发过程模型
瀑布模型
- 需求分析
- 研发分析需求说明书
- 判断需求的可实现性
- 概要设计
- 用到具体的技术点
- 大致模块划分
- 详细设计
- 详细到可以为编码做支持
- 类和类的关系、类的设计
- 函数设计
- 各个接口的细节
- 数据库表的关系、字段关系
- 编码
- 依托于详细设计进行编码操作
- 软件测试
- 软件维护
- 软件上线后也是