【测试】测试理论基础

测试理论基础

测试用例的构成

  • 用例编号:唯一编号
  • 用例标题:简单描述测试的功能或问题
  • 测试项目:用例所属的功能
  • 用例级别:重要程度
  • 预置条件:用例执行的前置条件
  • 测试输入:测试用例的数据输入
  • 执行步骤:测试用例的操作步骤
  • 预期结果:对测试结果的预测描述

测试流程

  1. 分析测试需求,明确测试目标,明确软件的功能和非功能需求
  2. 设计测试计划,规划好大概的测试范围,测试方法,明确测试大纲
  3. 测试用例设计,根据测试计划,编写测试用例
  4. 测试环境搭建,包括测试环境,测试工具,测试数据,测试环境的准备工作
  5. 测试执行,功能性测试,性能测试,安全测试,兼容性测试
  6. 缺陷管理,详细记录发现的Bug,包括一些重现步骤,影响程度
  7. 测试报告,包括一些通过率,缺陷统计,测试覆盖情况

测试级别(软件生命周期)

  1. 单元测试:最小级别的测试,比如函数、类、模块的测试。
  2. 集成测试:测试多个模块之间是否能正确的协同工作
  3. 系统测试:通过测试整个系统的功能和性能,包括功能测试、性能测试、兼容性测试、安全测试等。
  4. 验收测试:以用户的角度去进行测试,验证软件是否满足用户的需求。

系统测试的细分(关注点)

  1. 功能性测试:软件的功能是否正常,或者是否会出现一些正确的异常消息
  2. 性能测试:软件的响应时间,吞吐量,性能要求
  3. 兼容性测试:在不同的操作平台上是否会出现一些问题
  4. 安全测试:一些系统安全性上的测试

软件的测试方法

  1. 黑盒测试:无需关注内部代码实现的细节,按照功能的说明,输入数据,验证功能是否正确
  2. 白盒测试:关注内部代码实现,发现一些代码逻辑上的错误,或者一些业务上的逻辑错误
  3. 灰盒测试:结合黑盒和白盒测试,在黑盒测试的基础上,增加一些测试的边界条件,比如输入数据,输出数据,系统状态等
  4. 自动化测试
  5. 手工测试

黑盒测试设计方法

  1. 等价类划分法(Equivalence Partitioning)
    目的:将输入域划分为若干个等价类,使得在每个等价类中选取任何一个元素进行测试,都可以代表该类中所有元素的行为。这样可以减少测试用例的数量,同时保证测试的有效性。
    应用:适用于有明确有效和无效输入范围的情况。比如,一个程序要求年龄输入介于18到60之间,可以划分为三个等价类:小于18岁、18到60岁之间、大于60岁。

  2. 边界值分析法(Boundary Value Analysis, BVA)
    目的:特别关注输入或输出的边界条件,因为这些边界往往是错误的高发区。边界值分析选择边界上的值和边界附近(但不包括边界值本身)的值作为测试数据。
    应用:在等价类划分的基础上,选取边界值进行测试,比如上例中,边界值可以是17、18、59、60、61。

  3. 错误推测法(Error Guessing)
    目的:基于经验和直觉推测软件可能存在的错误或弱点,并设计测试用例来验证这些推测。
    应用:没有固定的规则,测试人员根据以往的经验、类似系统的常见问题或者软件的特定复杂部分来猜测可能出错的地方。

  4. 判定表法(Decision Table Testing)
    目的:当系统的行为依赖于多个条件组合时,使用判定表来组织这些条件及其对应的行动,从而生成测试用例。
    应用:通过表格形式表示不同条件的组合以及每种组合下的预期结果,适用于逻辑复杂的业务规则验证。

  5. 因果图法(Cause-Effect Graphing)
    目的:通过图形化的方式展示输入条件(原因)和系统行为(结果)之间的关系,然后转换为判定表,进而生成测试用例。
    应用:首先识别影响输出的各种输入条件及其相互间的关系(如与、或、异或等),然后根据因果图生成测试用例,确保所有重要的逻辑组合都被测试到。

  6. 场景法(Use Case Testing)
    目的:基于用户场景或业务流程来设计测试用例,确保软件的主要功能路径得到验证。
    应用:识别用户与系统交互的关键场景,包括正常流程和异常流程,每个场景都转化为具体的测试步骤。

白盒测试设计方法

  1. 静态测试:不需要执行代码,在现在的代码编辑器一般都可以实现,一般不使用
  2. 动态测试:需要运行代码,如单元测试就是检查一个单元(函数,一段逻辑判断)是否运行正常
  3. 逻辑覆盖法:发现错误的能力由弱到强,包括语句覆盖、判断覆盖、条件覆盖、判断覆盖、条件覆盖、路径覆盖
语句覆盖

至少每条语句至少被执行一次

判断覆盖

每个判断分支至少被执行一次,如else-if每种情况

条件覆盖

if中的条件至少出现一次,如if(a == true || b == false)
a == true和b == false 至少出现一次

判定-条件覆盖(DC覆盖)

同时满足判定覆盖和条件覆盖的要求

条件组合覆盖

覆盖所有逻辑条件组合至少一次

路径覆盖

执行程序中所有可能的执行路径至少一次

测试大纲思维导图:
在这里插入图片描述

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值