软件测试
软件测试概念
我认为概念是推理的基础,认识概念才能正确的运用相关技术
软件测试是什么
一种发现软件缺陷的的活动
评估软件的特性或能力,确定其是否达到预期
为什么要软件测试
为了保证软件质量
关于软件测试的两种观点
测试是为了证伪(Myers)
假设程序是错误的,证明其正确
测试是为了证明软件是正确的(Bill Hetzel)
假设程序是正确的
什么是软件质量
即产品所满足的特性
这些特性可能是用户的需求,产品固有的性质或者是行业标准所规定的
内部质量
主要是代码,极其相关的特性
外部质量
主要是产品的功能
使用质量
从场景和用户的角度出发分析质量
软件缺陷
从内部看: 软件设计,开发,维护的不合理
从外部看: 软件功能的失效或违背
软件测试分类
按阶段分:
- 需求评审: 需求 SRS 是否完整,正确,清晰
- 设计评审: 设计结果是否符合需求
- 单元测试: 函数,类,模块
- 集成测试: 几个完成的单元作为系统一起测试
- 系统测试: 测试整个系统(软件,硬件)
- 验收测试: 用户参与,在用户环境,使用用户数据作测试
- alpha测试: 开放外部用户参与测试
- beta测试: 如果不出问题就是正式版
按测试目标分:
- 功能测试: 测试功能是否按预定的方式工作
- 负载(压力)测试: 测试系统在高负载情况下的表现
- 性能测试: 测试不同负载情况下的各种指标
- 安全性测试: 测试系统的访问控制和攻击防呼能力
- 恢复测试: 系统发生灾难后恢复到灾难前的能力
- 安装测试: 在多种用户环境下,测试能否正常安装
- 兼容性测试: 测试软件在不同运行环境(硬件,软件)下的表现
- 可用性测试: 测试服务正常运行的时间百分比
- 可靠性测试: 测试用户访问服务时,服务按预期运行的可能性
按测试对象分:
- 单元测试
- 接口测试
- 系统测试
- 数据测试
- 界面测试
- 文档测试
测试的 动 静 黑 白
动 | 静 : 软件是否运行
黑 | 白 : 源代码是否可见
百盒 | 黑盒 | |
---|---|---|
静态 | 源程序语法检查,评审 | 评审非技术文档 |
动态 | 调试 | 输入输出测试 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 QUANWEI!