测试学习小白必备篇 -- 软件测试的基础知识
软件测试基础知识
一.测试的定义(测试是什么)
- 通过人工或自动的手段,对被测对象进行检测的活动
- 目的在于发现被检测对象是否满足用户的需求,或者搞清楚实际结果与预期结果之间的差异
- 需要理解什么软件 (源代码,用户手册,配置数据)
二.测试的目的(为什么要测试)
- 发现被测对象与用户需求之间的差异(俗称找bug)
- 通过测试活动发现并解决缺陷,增加人们对被测对象的质量信息
- 通过测试活动,获取被测对象的质量信息,为决策提供数据依据
- 通过测试活动,预防缺陷,从而降低项目或产品的风险
三.测试的原则(七个原则)
- 测试证明软件存在缺陷
- 不可能执行穷尽测试
- 测试应尽尽早启动,尽早介入
- 测试存在群集现象
- 杀虫剂悖论
- 不同的测试活动依赖不同的测试背景
- 不存在缺陷的谬论
四.测试的对象(七个对象)
- 软件源代码
- 与软件源代码匹配的文档
- 支撑软件源代码运行的配置数据
- 需求阶段 :需求文档->测试需求文档是否正确实现了用户的需求
- 系统设计阶段->概要设计文档->详细设计文档->是否有设计或逻辑上的错误
- 编码阶段->测试源代码->发现编程上的错误
- 系统测试阶段->被测对象是否满足用户需求
五.测试的级别(测试阶段)
级别 | 解释 |
---|---|
单元测试 | 针对被测系统最小的组成单元实施的测试活动,一般是类或函数,有可能是最小的功能单元 |
集成测试 | 针对组件/单元与组件/单元之间的接口实施的测试活动,验证接口设计是否与设计相符,分三种集成:1.函数间集成,2.模块间集成,3.子系统间集成 |
系统测试 | 将通过集成测试的软件,部署在真实的用户环境下执行测试 |
验收测试 | 以用户为主的测试,验收组应该由项目组成员,用户代表组成 |
验收测试又分为3种,解析如下表
类型 | 解释 |
---|---|
α测试 | 由用户在开发环境下执行的测试活动,开发者在测试人员身边,发现问题并解决;在不受环境下执行测试 |
β测试 | 开发者不在测试人员身边,发现问题由专人统一收集,再由专研人员进行收集 |
UAT测试 | 用户接受度测试;一般商业用户验证系统可用性进行测试 |
六.测试的类型(四种)
1.功能性测试
在指定的使用条件下,使用被测对象,验证其是否满足用户显性或隐性需求。
测试关注点:
- 是否有不正确或遗漏或多余的功能
- 满足系统显性或隐性需求
- 是否对输入输出做出一个正确的响应,输出结果是否能够正确的显示
2.性能测试
- 通过模拟被测对象运行业务压力或使用场景,验证被测对象是否满足预先设计的性能指标
- 验证系统是否具有宣称的能力
- 了解测试系统典型的场景,并具有明确的性能目标
- 要求在真实的环境下实施
3.安全性测试
测试被测对象的安全保护机制保护系统不受非法侵入,能够接受正确授权的操作
4.兼容性测试
验证被测对象在不同的操作系统,硬件信息等环境下的运行情况
七.测试的方法(七种方法)
类型 | 解释 |
---|---|
黑盒测试 | 不关注被测对象内部结构,仅从用户需求考虑,是否满足用户显性需求 |
白盒测试 | 内部结构测试,逻辑驱动测试 |
灰盒测试 | 既关注被测对象的外部特性,又关注其内部设计 |
静态测试 | 不执行被测对象程序,不运行被测对象的测试方法 |
动态测试 | 执行被测对象,进行的检测活动 |
手工测试 | 最传统的方法通过测试工程师试用,验证被测对象是否满足用户需求 |
自动化测试 | 通过自动化测试工具,或脚本语言自动化完成测试过程 |