软件测试基础理论(2)
软件测试基础理论
一, 为什么要进行软件测试
为了通过软件测试,尽可能减少bug,保证软件质量
二, 软件测试的定义
为了发现软件中的缺陷而执行程序或系统的过程
三, 软件测试的目的
以最少的人力物力发现软件中的缺陷和潜在的问题,满足客户的需求
四, 软件测试的原则
- 测试应该追溯到需求
- 尽早测试,不断测试
- 穷尽测试不可能,需要及时终止
- 80%的bug来源于20%的模块
- 程序员避免检查自己的程序(不代表不用自测)
- 要有计划的,有目的的进行测试
- 测试用例既要正向用例,也需要反向用例
- 要彻底检查用例的执行结果(查看相关联的模块结果)
- 保存测试过程中的相关文档和数据,为项目管理提供依据
五, 软件测试的对象
程序,文档,数据
(不同阶段,测试对象也会不同,eg
: 需求阶段测试, 测试对象就是需求文档)
六, 软件测试分类的划分标准
- 按阶段:单元测试, 集成测试, 系统测试, 验收测试
- 程序是否运行: 动态测试, 静态测试
- 是否查看代码: 白盒测试, 黑盒测试, 灰盒测试
- 其他: 兼容测试, 安全测试, 回归测试, 冒烟测试, 随机测试, app测试, 接口测试
七, 单元测试UT(Unit Testing)
- 对软件的最小组成单元(方法,模块,类) 进行的测试, 主要测试单元内部的数据结构,逻辑控制,异常处理
- 驱动模块:调用其他模块的模块
- 桩模块:被其他模块调用的模块
八, 集成测试IT(Integration Testing) 系统集成测试SIT(System Integration Testing)
- 集成测试也叫组装测试,是属于灰盒测试一种,一般通过接口测试来进行系统集成,包括系统内部接口和外部接口
- 集成测试的方式:非增量式,增量式
- 非增量式:一次性集成所有模块
- 增量式:
- 自顶向下---从顶层模块向下层模块集成
- 自底向上---从底层模块向上层模块集成
九, 系统测试ST(System Testing)
是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方。这种测试可以发现系统分析和设计中的错误。如安全测试是测试安全措施是否完善,能不能保证系统不受非法侵入。再例如,压力测试是测试系统在正常数据量以及超负荷量(如多个用户同时存取) 等情况下是否还能正常地工作。