软测理论基础
软测理论
感谢:
b站博主: https://space.bilibili.com/1577736184
csdn: http://t.csdnimg.cn/IEkdK
基本概述
测试的定义
- 使用人工或者自动的手段来运行或者测试某个系统的过程
- 目的在于检验它是否满足规定的需求
- 弄清
预期结果
和实际结果
的差别
测试的原则
- 证明软件中存在缺陷
- 不能穷尽测试
- 测试应该尽早介入
- 28原则
- 不存在缺陷谬论
- 妥善保存一切文档
测试的基本要求
- 外观界面测试
- 易用测试
- 兼容性测试
- 安全性测试
- 性能测试
- 功能测试
测试的流程
1、需求分析
阅读需求文档、产品文档、产品详细设计说明书,分析需求的点,参与需求评审
2、制定测试计划和测试方案
测试计划:测试整个项目的整体规划,人力物力的安排、整体的测试策略、测试的范围,风险的评估
测试方案:被测试的目标,选取何种测试工具、测试方法、测试重点
3、设计测试用例
4、执行测试用例
5、评估阶段、测试报告
软件测试的分类
1、按照测试阶段:单元测试、集成测试、系统测试
2、是否覆盖源代码: 白盒测试、黑盒测试
3、是否运行: 静态测试、动态测试
4、其他: 回归测试、冒烟测试、随机测试、验收测试
5、是否自动化: 人工测试、自动测试
详解
黑盒测试:基于软件需求,而不是基于软件内部设计和程序实现的测试方式
白盒测试:基于软件内部设计和程序实现的测试方式
单元测试:主要测试软件模块的源代码 。一般由开发人员而非独立测试人员来执行,因为测试者需要懂得该单元的设计与程序的实现,测试者可能需要编写额外的 测试驱动程序
集成测试:将一些“构件”集成一起时,测试他们能否正常运行。这里的“构件”可以是程序模块、客户机-服务器程序等待
功能测试:测试软件的功能是否符合功能性需求,通常采用黑盒测试方法。一般由独立的测试人员执行
系统测试:测试软件系统是否符合所有需求,包括功能性需求与非功能性需求。一般由独立测试人员执行,通常采用黑盒测试方法
回归测试:指错误被修正后或软件功能、环境发生变化后进行的重新测试。回归测试困难在于不好确定哪些内容应当被重新测试
验收测试:由客户或最终用户执行,测试软件系统是否符合需求规格说明书
负载测试:测试软件系统的最大负载,超出此负载软件可能会失常
压力测试:概念上与负载测试相似,叫法不同
性能测试:测试软件在各种状况下的性能,如正常或最大负载的状况下
易用性测试:测试软件是否易用,主观性比较强。一般要根据很多用户的测试反馈信息,才能评价易用性
安装与反安装测试:测试软件在“全部、部分、升级”等状况下的安装/反安装过程
恢复测试:测试该系统从故障中恢复过来的能力
安全性测试:测试该系统防止非法入侵的能力
兼容性测试:测试该系统与其他软件硬件兼容的能力
比较测试:通过与同类产品比较,考察该系统的优点缺点
Alpha测试:一种先期的用户测试,此时系统刚刚开发完成
Beta测试:一种后期的用户测试,此时系统已经通过内部测试,大部分错误已经改正,即将正式发行
软件测试过程模型
V模型:
用户需求—需求分析与系统—概要设计—详细设计—编码
单元测试—集成测试—系统测试—验收测试
- 测试后置,忽视了测试对需求分析、系统设计的验证
- 需求的满足情况一直到后期的验收测试才被验证
W模型:
用户需求—需求分析与系统设计—概要设计—详细设计—编码—集成—实施—交付
用户需求&验收测试设计—需求分析与系统分析&确认与系统测试设计—概要设计&集成测试设计—详细设计&单元测试设计—单元测试—集成测试— 确认测试与系统测试—验收调试
- 测试的活动与软件开发同步进行
- 测试对象不仅是程序,包括需求和设计
- 尽早发现软件缺陷,降低软件开发的成本
测试用例、自动化测试理念
测试用例
特性
- 有效性:测试用例能够被使用,且被不同的人员使用测试结果一致
- 可复用性:如回归测试的使用
- 可评估性
- 可管理性
八大要素
- 测试编码:方便归档和查询
- 测试模块/功能
- 预置条件:(测试前提条件)
- 测试输入
- 预期输出
- 操作步骤
- 测试用例标题(目的)
- 级别(高、中、低)
- 其他要素:用例设计日期、设计者、开发人员、测试结果、测试类型(功能、性能、压力等)
等价划分法
- 有效等价类(有效输入)
- 无效等价类(无效输入)
边界值
对输入或输出边界值进行测试,如4位数字,那么可选取9999、1000附近几个边界值
进行输入
等价类划分和边界值法适用于普通文本输入框,因为可输入的内容很广泛
判定表法
也称为决策表,可以理解为因果图的最终产物,将复杂问题按照各种可能的情况全部列举出来,简明并且避免遗漏。用判定表能设计出完整的测试用例集合
场景法
从起点,通过一系列操作步骤,达成某一结果,到终点的过程测试,场景法主要用于冒烟测试。
分为基本流和备用流
测试力度&用例方法总结
力度
- 简单:仅仅测试刚要,过于简单
- 复杂:包含具体输入项、每个步骤、期待结果,过于复杂浪费时间成本
- 中庸:一般介于两者之间即可。
总结
- 先关注主要功能的业务流程、逻辑是否正确:
场景法
- 需要输入数据的地方:
等价类划分法
- 任何情况都可使用
边界值法
- 若程序包含输入条件的组合情况:
因果图法和判定表法
- 对于配置类软件,选项过多,需要考虑参数的很多组合情况:
正交表法
缺陷报告
当发现了软件的缺陷和错误时,需要整理报告发送给相关人员处理。
一般在公司内部会有缺陷报告的书写模板,或可能使用高效管理bug的平台。
自动化测试
定义
- 程序测试程序
- 代码代替思维
- 脚本代替人工
目的就是:更高的质量和效率。
手工&自动化
二者并不对立,什么手段效率高就使用什么手段。两者是互补的。
分类
按产品类型:PC端产品自动化测试、Web端产品自动化测试、App移动端产品自动化测试
按产品研发阶段:单元自动化测试、接口自动化测试、契约自动化测试、集成自动化测试、验收自动化测试
优势
- 提高测试效率
- 避免测试人员重复劳动
- 回归测试方便可靠
- 自动化脚本可复用
- 支持多环境下的测试
劣势
- 不能取代手工测试
- 测试不容易发现界面、布局问题
- 自动化测试工具是死的,不具备任何想象力
- 开展前期,自动化测试投入成本高、风险大,且对测试员的技术、工具契合度都有要求