测试基础
2022年1月17日
测试基础
软件测试的定义
- 在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否满足设计要求进行评估的过程。
- 是使用人工或自动手段对系统运行或测试的过程
软件测试的目的
- 为了发现程序存在的代码或业务逻辑错误
- 检验产品是否符合用户需求
- 提高用户体验
软件测试的原则
经验性原则
- 所有测试活动都应以用户需求(软件需求规格说明书)为标准
- 应尽早、不断进行软件测试
- 程序员应避免自查程序,而测试人员应避免执行自己的测试用例
- 尽量避免测试的随意性
- 测试的“杀虫剂效应”——思维方式操作路径、习惯
- 完全(穷举)测试是不可能实现的,测试需终止
- 制定严格的测试计划
二八原则
- 80%的错误是由20%的模块引起的
站在用户角度,并非研发实现的角度,正确地选择重要模块作为测试重点,从而不偏离方向。
- 80%的测试成本花在20%的软件模块中
设计用例时需要将时间花倾斜在复杂的20%核心模块上,从而设计更高效的测试用例。
- 80%的测试时间花在20%的软件模块中
软件测试执行过程中需要将时间倾斜在重要模块的测试用例中,从而使测试更加有效,发现bug。
软件测试的对象
- 软件:程序、文档
- 程序:源码、模块、部件、软件
- 文档:需求规格说明书,概要设计说明书,详细设计说明书,用户手册
- 数据:字符,图片,视频,音频
60%以上的软件错误并不是程序错误,而是分析和设计错误。
测试概念扩大化,提倡软件全生命周期测试的理念
规定的条件——开发环境、测试环境、真实环境
方式:人工、自动化
周期(过程):测试需求分析,计划,设计,执行,评估
软件测试的分类
按测试技术划分
- 白盒测试:关心软件的内部设计和程序实现 主要依据——设计文档
- 黑盒测试:不关心软件内部,只关心输入输出 主要依据——需求文档
- 灰盒测试(接口测试):介于黑白盒之间的测试,关注输出对于输入的正确性,同时也关注内部表现 主要依据
按测试阶段划分
- 单元测试:粒度最小,开发做,用白盒
- 集成测试:多个单元组成(白+黑)单元之间的调用与被调用,及接口测试,即关注输入输出,也关注代码
- 系统测试:粒度最大,用黑盒,参考规格说明书(用户需求)
- 验收测试:由用户做(黑盒), Apha(内测)公司内部在测试环境下使用,Beta(公测)用户直接使用
测试阶段 主要依据 测试人员、方式 测试内容 单元测试 设计文档 开发,白盒 规范,逻辑,路径 集成测试 设计、需求文档 开发,灰盒 接口,路径,功能,性能 系统测试 需求 测试,黑盒 功能,洁面,安全,兼容性 验收测试 文档 用户,黑盒 易用性,压力,负载,恢复测试
按测试静态/动态划分
- 动态测试
- 静态测试(不运行程序)
- 程序走查(代码走查):程序员交叉检查彼此代码
- 文档检查:测试人员检查文档、术语、图片、操作流程
按系统测试类型划分(重点在于是否能正确理解用户需求)
- 功能测试
- 性能测试:关键软件处理业务的速度
- 界面测试:UI相关
- 安全性测试
- 兼容性测试:不同操作系统、分辨率、浏览器
- 易用性测试:主观测试软件是否好用
- 压力测试
- 负载测试
- 恢复测试
- 冒烟测试
- 回归测试
- 探索性测试
提示
内容正在完善中,请耐心等待...