软件测试基础学习Day01-补充篇

软件测试基础学习:探索性测试与流程

注:关于探索性测试内容来自:做好探索性测试,体现你的价值 - 维森特 - 博客园

一、探索性测试

1、定义:

1.1 非书面化语言:

  作为一个研究性的工具,它是用户故事测试和自动化回归集的重要补充。它是一种经过深思熟虑的测试方式,没有测试脚本,可以使你的测试超出各种明显已经测试过的场景

1.2 书面化语言:

  •   明确测试范围
  •   识别被测对象的期望功能和需求
  •   了解被测对象的基本性状
  •   发现被测对象的潜在不稳定区域
  •   创建一个测试纲要并用它来指导测试

                                                                       图1 探索性测试

2、探索性测试的常用方法

  •        破坏法 - 用常规手段破坏系统的正常运作进程 - 比如在提交表单的过程中刷新页面中断提交操作
  •        极限法 - 尝试去接触到系统处理的极限所在 - 比如在文本处理的控件内尝试最大输入的可能性
  •        取消法 - 测试系统能不能正确的处理用户的取消和删除操作 - 比如在一个手机APP打开某模块时,按下home键后,APP有没有正确处理?
  •        暴力法 - 使用非常规操作,看看软件会不会发生崩溃或异常 - 比如测试手机输入键盘时,同时按下多个按键
  •        逆向法 - 通过相反的思维来思考问题,软件能处理异常情况吗 - 比如我们通常都会关注一个系统的支付能不能正常工作,那么当遇到无效支付信息的处理呢?

3、探索性测试的益处

  •        探索性测试可以帮助我们定位到隐藏比较深的问题 -常规测试没有覆盖到的深度,我们可以在探索性测试里去一探究竟
  •        探索性测试可以为后续测试覆盖的延申提供思路 - 在探索性测试中我们可以发现常规测试忽视掉的细节,从而指导我们后续对测试用例库的维护
  •        探索性测试可以加深测试人员对被测系统的了解 - 越探索越了解,越了解越想把他测个明白

4、探索性测试总结

  •        探索性测试更像是对于常规测试的补充
  •        探索性测试虽然自由但仍然存在主线,不可偏离主线
  •        探索性测试是对于整个项目的思考和学习,是发现问题,可以参考的是软件测试中的反向思维

二、软件测试的分类

1、测试设计依据

  • 黑盒: 只关注输入输出,不考虑内部结构(如代码、设计)。基于需求规格说明书。
  • 白盒: 基于软件内部结构(如代码、设计)设计测试用例。需要了解实现细节。
  • 灰盒: 介于黑盒与白盒之间。通常基于有限了解的内部结构(如接口定义、架构图)来设计测试,但执行时仍从外部观察行为。常用于集成测试接口测试

2、 测试范围与层次 (测试级别)

  • 单元: 测试最小的可测试单元(通常是一个函数、方法、类)。属于白盒范畴
  • 集成: 测试多个单元/模块/组件组合在一起后的交互。可以是灰盒黑盒
  • 接口: 特指测试不同系统、模块或服务之间交互的接口(API, Web Service等)。是集成测试的一种重要形式,通常属于灰盒
  • 系统: 测试整个集成完成的软件系统作为一个整体,验证其是否符合需求规格。属于黑盒范畴
  • 验收: 由客户或用户代表执行(或基于其需求执行),验证系统是否满足业务需求和合同要求,决定是否可交付/上线。属于黑盒范畴

3、测试状态

  • 动态: 在软件运行状态下执行测试(如执行测试用例、性能测试)。绝大多数功能和非功能测试属于此类。
  • 静态: 在软件不运行状态下进行检查(如需求/设计文档评审、代码走查/审查、静态代码分析工具扫描)。目的是在早期发现缺陷。

4、测试执行方式

  • 手工: 由测试人员手动执行测试步骤、观察结果、记录缺陷。
  • 自动化: 使用工具或脚本自动执行测试用例、比较实际结果与预期结果、生成报告。常用于回归测试、性能测试、大量重复执行的测试。

5、测试策略
 

  • 随机: 测试策略/方法。无预先设计的测试用例,测试人员凭经验或直觉随机输入数据和操作,旨在发现意外缺陷。
  • 冒烟: 测试策略/方法。在主要新构建(Build)交付后执行的一套最基本、最核心功能的测试。目的是快速验证构建是否足够稳定,以进行后续更深入的测试(“冒烟测试”通不过,通常就不继续测了)。通常手工自动化执行,属于系统测试级别的入口测试。
  • 安全: 测试目标/特性。专门评估软件在抵御恶意攻击、保护数据和功能方面的能力。可以在多个测试级别(单元、集成、系统)进行,可以是黑盒、灰盒或白盒,常用自动化工具辅助。
  • 探索性: 测试策略/方法。将测试设计、执行和学习结合在一起的手工测试方法。测试人员一边探索软件、一边设计测试、一边学习、一边调整策略,高度依赖测试人员的技能和经验。常用于需求不明确或快速迭代的场景。
  • 回归: 测试目标/策略。在软件修改(修复缺陷、新增功能、环境变更)后,重新执行之前已通过的测试用例,以确保修改没有引入新的缺陷或破坏现有功能。是动态测试,可以在多个级别执行(单元回归、集成回归、系统回归),自动化是高效回归的关键。
  • 阿尔法: 测试级别 (接近验收) 和 执行方式。由开发组织内部人员(非项目组成员,如QA、产品、UI/UX)在开发环境或模拟环境中进行的验收测试。通常是黑盒 + 手工
  • 贝塔: 测试级别 (验收) 和 执行方式。由最终用户或客户代表在真实环境中进行的验收测试。用户在实际使用场景下自由操作,提供反馈。通常是黑盒 + 手工

三、软件的生命周期

开发阶段:立项-需求分析-概要设计-详细设计-编码-测试-交付 

运维阶段:运维-废弃

注:软件测试需要在需求分析开始介入

四、测试工作流程

1、工作流程图

2、测试出口和入口

入口:定义了结束某个测试阶段必须满足的前提条件(如:代码冻结、环境就绪、测试用例评审通过、冒烟测试通过)。

出口:件测试过程中的质量闸门它是一些列的标准(如:测试用例的通过率,遗留缺陷数量,时间因素等),只有当这些标准全部或主要部分被满足时,才可以结束当前测试阶段。

3、测试流程各阶段输出

需求分析测试计划测试设计测试执行测试报告
测试点测试计划说明书测试用例测试结果和BUG测试报告

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值