ISTQB认证工程师学习笔记(4)——测试技术

2023-11-10

测试技术一般可分为黑盒测试、白盒测试、基于经验的测试技术

黑盒测试

黑盒测试技术(也称为行为的或基于行为的技术)基于对适当测试依据的分析(例如:正式需求文档、规格说明、用例、用户故事或业务流程)。这些技术适用于功能和非功能测试。黑盒测试技术关注在测试对象的输入和输出,而不考虑其内部结构。

黑盒测试技术的共同特点包括:
 测试条件、测试用例和测试数据的获取源自测试依据,可能包括软件需求、规格说明、用例和用户故事
 测试用例可用于检查需求和需求实现之间的差距,以及需求本身的错误
 覆盖度量是根据在测试依据中已测试的项和应用到测试依据的技术

常见的黑盒测试技术

等价类划分
等价类划分将数据划分为不同分区(也叫等价类),使得给定分区内所有成员期望被相同方式处理。
等价分区有针对有效值和无效值。

有效值:组件或系统应接受的值,包含有效值的等价分区称为“有效等价类”。
无效值:组件或系统应拒绝的值,包含无效值的等价分区称为“无效等价类”。

可以为与测试对象相关的任何元素数据识别有效分区,包括输入、输出、内部值、与时间相关的值,接口参数等。
如果有必要,可将等价分区进一步细化成为子分区。
每个值必须属于且只属于一个等价类。
当测试用例中使用无效等价类时,必须保证单独使用,而不是和其他无效等价类同时使用,以确保没有失效屏蔽。当多个失效同时发生,而只能观察到一个失效时,代表其他失效被屏蔽,这导致其他失效无法被发现。
等价类划分适用于所有测试级别。

边界值分析
边界值分析是等价类划分的扩展,但仅适用于等价类是有序的、由数字或顺序数据组成。等价类的最小和最大值(或第一和最后的值)是其边界值。
在区域的边界上的行为往往比在区域内的行为更容易出现错误。值得注意的是,不仅定义的边界,而且已实现的边界可能会被移动到它们预期位置的上方或下方,或可能会被完全忽略,或还可能会增加不需要的额外边界。边界值分析和测试是通过激发软件显示出与边界值所属区域预期不同的行为,边界值分析和测试将能发现几乎所有这类缺陷。
边界值分析可以应用于所有的测试级别。这个技术通常用来测试需要调用一系列数字的测试需求(包括日期和时间)。
对区域的边界值覆盖度量是测试的边界值数量除以识别的边界测试值总数,通常用百分比表示。

判定表测试
判定表是记录系统必须实现的复杂业务规则的一种很好的方法。当建立判定表时,测试员识别系统的条件(通常为输入)和导致的动作(输出)。通常情况下条件在顶部,动作在底部。判定表的每一列对应了一个判定规则,该规则定义了各种条件下的一个唯一组合,其表示与该规则相关的动作的执行。条件值和动作通常表示为布尔值(“真、假”或“1、0”)或离散值(如红、黄、蓝),但也可以是数字或者数字范围。这些不同的动作和条件可能一起出现在一个判定表中。

判定表的常见符号如下:
对条件:
 Y 表示条件是真(也可能显示为 T 或 1)
 N 表示条件是假(也可能显示为 F 或 0)
 - 表示条件值不关心(也可能显示为 N/A)
对动作:
 X 表示动作应发生(也可能显示为 Y 或 T 或 1)
 空格 表示动作不应该发生(也可能显示为 - 或 N 或 F 或 0)

完全的判定表有足够多的列(测试用例)来覆盖条件的每个组合。通过删除不影响结果的列,测试用例的数量可以大大减少。
判定表测试的最小覆盖标准通常是对判定表中每个判定规则至少有一个测试用例。这通常涉及覆盖所有条件的组合。
覆盖度量是至少被一个测试用例测试过的判定规则的数量,除以判定规则总数,通常以百分比表示。
判定表测试的优点是可以帮助识别所有重要的条件组合,否则其中有些条件组合有可能被忽视。判定表测试也会帮助发现需求中的漏洞。判定表测试可能应用到所有基于条件组合决定软件行为的情况,可以在任何测试级别进行。

状态转换测试
根据组件或系统当前条件或先前历史(例如自从系统初始化后发生过的事件),组件或系统可能会产生不同的响应。先前历史可以用状态的概念来总结。状态转换图不但显示可能的软件状态,同时包含了软件如何入口、出口,以及状态之间的转换的。转换是通过事件触发的(例如,用户输入一个值到输入域内)。事件导致转换。相同的事件从相同状态能导致两个或多个不同转
换。状态改变可能导致软件采取动作(例如,输出计算或错误信息)。
状态转换表不但可显示状态之间所有有效转换和潜在的无效转换,而且可表示有效转换的事件和导致的动作。状态转换图通常仅仅显示有效转换,而不包括无效转换。
设计测试可以用来覆盖典型的状态序列、执行所有状态、执行每个转换、执行转换的特定序列,或测试无效的转换。
状态转换测试可以用于基于菜单的应用,其广泛使用在嵌入式软件行业。此技术也适用于有特定状态的业务场景的建模,或测试屏幕上显示的引导或“菜单”。状态的定义是抽象的,即可能表示几行代码或整个业务流程。
覆盖度量通常是识别出已测试状态或已测试转换的数量,除以测试对象已识别出的状态或转换的总数,一般以百分比表示。

用例测试

测试可以从用例中推导出来,用例又是设计软件项交互的一种特殊方式,包含了软件的功能需求。
用例关联了参与者(用户,外部设备等)和主体(用例所应用的组件或系统)。每个用例规定了一个主体能与一个或多个参与者合作开展的行为。一个用例能通过交互和活动以及前置条件、后置条件进行描述,如合适,还可以以自然语言进行描述。参与者和主体之间的交互可能导致主体的状态改变。交互可能以工作流、活动图,或业务流程模型的图示方式表示。
用例包含了其基本行为的可能变化,包括期望行为和错误处理(系统对程序、应用和通讯错误的反应和恢复,例如,导致一个错误信息)。设计测试来执行已定义的行为(基本的、异常的或替代的和错误处理)。覆盖度量是已测试的用例行为数除以用例行为的总数,通常以百分比表示。

白盒测试

白盒测试是基于测试对象的内部结构。白盒测试技术能用在所有的测试级别,但更多运用在组件测试环节。

语句测试和覆盖
语句测试执行代码中可执行语句。覆盖度量是被测试执行的语句数,除以测试对象中可执行语句总数,通常以百分比表示。

判定测试和覆盖
判定测试执行代码中的判定,以及测试基于判定结果的可执行的代码。为此,测试用例跟随发生在判定点的控制流(例如,针对 IF 语句,一个对真(true)结果和一个对假(false)结果;针对 CASE 语句,测试用例将要求对所有可能结果,包括缺省(default)结果进行覆盖)。
覆盖度量是被测试执行的判定结果数,除以测试对象中判定结果的总数,通常以百分比表示。

语句测试和判定测试的价值
当实现 100%语句覆盖时,它确保代码中的所有可执行语句至少已被测试过一次,但不能确保所有判定逻辑都已被测试过

当达到 100%的判定覆盖时,它会执行所有判定结果,包括测试取值为真(true)的结果和取值为假(false)的结果,即使没有清晰的假(false)语句(例如,IF 语句的代码中没有 else)。语句覆盖有助于发现那些未被其他测试执行到的代码中的缺陷。判定覆盖有助于发现那些在其他测试中没有对其所有真值(“真”/“假”)都执行到的代码(例如,判定语句)中的错误。

实现 100%的判定覆盖可保证 100%的语句覆盖(但反之不成立)。

基于经验的测试技术

在应用基于经验的测试技术时,测试用例源自测试员的技能和直觉,以及他们在类似应用和技术方面的经验。这些技术有助于识别一些其它系统化技术无法轻易识别的测试用例。根据测试员的方法和经验,这些技术可以达到不同程度的覆盖和有效性。使用这些技术,可能会难以评估和度量覆盖。

错误推测
错误推测法是一种基于测试员的知识来预估错误、缺陷和失效发生的技术,包括:
 应用软件在过去是如何工作的
 常犯的错误类型
 在其它应用软件中发生的失效

错误推测技术的一个系统化方法是创建一个可能的错误、缺陷和失效的列表,并设计测试以发现失效以及导致它们出现的缺陷。可以根据经验或缺陷和失效的信息,也可根据软件故障原因的一般知识创建此错误、缺陷和失效列表。

探索性测试
在探索性测试中,在测试执行期间动态地设计、执行、记录、和评估非正式的(非预定义的)测试。测试结果常用来进一步了解组件或系统,并对可能需要进一步测试的区域生成测试。
探索性测试有时通过基于会话的测试来构造活动。在基于会话的测试中,探索性测试在定义的时间盒内进行,测试员使用包含测试目标的测试章程来指导测试。测试员可能使用测试会话表格来记录随后步骤和发现。
探索性测试在规格说明文档较少或不充分,或测试的时间压力大的情况下是最有帮助的。探索性测试作为对其他更正式的测试技术的补充也是有用的。

基于检查表的测试
在基于检查表的测试中,测试员设计、实施和执行测试来覆盖检查表中的测试条件。作为分析的一部分,测试员可以创建新的检查表或扩充现有的检查表,但测试员也可能使用没有修改的现有检查表。可以基于检验、对用户重要内容的了解,或对软件失效的原因和方式的理解来构建检查表。
可产生用于支持各种测试类型的检查表,包括功能和非功能测试。在没有详细测试用例的情况下,基于检查表的测试能提供指南和在一定程度上保持一致性。由于它们是概要性的列表,因此在实际测试中往往会出现一些变化和衍生,可能导致更高的覆盖,但又保持了低重复性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ISTQB认证工程师学习笔记(4)——测试技术 的相关文章

  • 软件测试开发/全日制/测试管理丨用户端 App 自动化测试

    随着移动应用的普及和发展 用户端 App 自动化测试成为确保应用质量 提高测试效率的关键环节 这一测试方法不仅可以模拟用户真实的操作行为 还能够覆盖多种设备和平台 为移动应用的稳定性和用户体验提供可靠的保障 选择合适的自动化测试框架 在用户
  • 【性能测试入门】:压力测试概念!

    压力测试可以验证软件应用程序的稳定性和可靠性 压力测试的目标是评估软件在极端负载条件下的鲁棒性和错误处理能力 并确保软件在紧急情况下不会崩溃 它甚至可以进行超出软件正常工作条件的测试 并评估软件在极端条件下的工作方式 在软件工程中 压力测试
  • 等价类划分法

    专注于分享软件测试干货内容 欢迎点赞 收藏 留言 如有错误敬请指正 软件测试面试题分享 1000道软件测试面试题及答案 软件测试实战项目分享 纯接口项目 完整接口文档 软件测试实战项目分享 WEB 测试自动化项目实战 软件测试学习教程推荐
  • JMeter 批量接口测试

    一 背景 最近在进行某中台的接口测试准备 发现接口数量非常多 有6 70个 而且每个接口都有大量的参数并且需要进行各种参数验证来测试接口是否能够正确返回响应值 想了几种方案后 决定尝试使用JMeter的csv读取来实现批量的接口测试 二 脚
  • Python接口自动化测试处理不同接口间参数依赖

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • #私密朋友圈被吐槽有bug?官方致歉!网友:尴尬了......

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Jmeter 性能-并发量计算

    并发概念 指网站在同一时间访问的人数 人数越大瞬间带宽要求更高 服务器并发量分为 业务并发用户数 最大并发访问数 系统用户数 同时在线用户数 估算业务并发量的公式 C nL T C C 3 C的平方根 说明 C是平均的业务并发用户数 n是l
  • 测试工程师能否作为一份「终身职业」?30岁+怎么办?

    讨论 测试工程师可否作为一份终生的职业 这是我在论坛看到的一个讨论 你的答案是什么呢 我希望大家能认真思考后给出一个属于自己的答案 无论你是新手入门 还是资深专家 回答这个问题请不要凭一腔热血 也不用过分消极 别总和钱挂钩 平心而论即可 就
  • 软件测试|使用matplotlib绘制平行坐标系图

    简介 绘制平行坐标系图 Parallel Coordinates Plot 是一种用于可视化多维数据的强大方法 在这篇文章中 我们将介绍如何使用Matplotlib库创建平行坐标系图 以及如何解释和定制这种图表 我们将使用一个示例数据集来演
  • 软件测试|教你如何使用Python绘制出奥运五环旗

    简介 我们之前介绍过使用turtle来绘制正多边形 但是绘制正多边形只是turtle模块最基础的使用 我们可以使用turtle模块绘制出更多不一样的精彩图形 本文就来给大家介绍一个比较简单的turtle绘图实例 绘制奥运五环旗 初始化参数
  • 盲猜你不懂H5架构和原生架构的区别

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Jmeter 性能-阶梯式性能指标监听

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 摸爬滚打多年的打工人,总结了三条职场真理,绝不假大空!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 新手也能看懂的【前端自动化测试入门】

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Python常用的自动化小脚本!

    一 list转json string转json 可以使用Python内置的 json 模块将列表 List 和字符串 String 转换成JSON格式 List转JSON假设我们有一个列表 List my list apple banana
  • 2024拒绝行业内卷!八年软件测试20K*16薪行业心得 想入行必看

    目前工作做软件测试工作8年 属于高级测试员那个级别吧 现在看到各行各业的人都在转行学习软件测试 想给大家一些学习建议和忠告 很多粉丝都跟我说今年行情很差 找不到工资 真的找不到工作了吗 我们常在网上看到的 程序员饱和 程序员过剩 其实一般是
  • Web自动化测试 —— capability参数配置

    一 capability概述 capability是webdriver支持的标准命令之外的扩展命令 配置信息 配置web驱动属性 如浏览器名称 浏览器平台 结合selenium gird完成分布式 兼容性测试 官网地址 https www
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 20年通过校招进入广州某软件公司 干了接近3年的 功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了3年的功能测试 已经让我变得不思进取 谈了2年的女朋
  • 软件测试面试:还没有自动化测试项目经验,3个项目帮你走入软测职场!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 深入解析 YAML 配置文件:从语法到最佳实践

    一 认识YAML YAML YAML Ain t Markup Language 是一种人类可读的数据序列化语言 它的设计目标是使数据在不同编程语言之间交换和共享变得简单 YAML采用了一种简洁 直观的语法 以易于阅读和编写的方式表示数据结

随机推荐

  • 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间

    把一个字符串的大写字母放到字符串的后面 各个字符的相对位置不变 不能申请额外的空间 题目以及要求 把一个字符串的大写字母放到字符串的后面 各个字符的相对位置不变 不能申请额外的空间 我的实现类似冒泡排序 代码为 include
  • nginx配置图片访问路径:root和alias

    图片所在路径 www wwwroot images aaa 1 jpg 访问路径 www images mbox58 com images aaa 1 jpg 使用root location images root www wwwroot
  • 控制器分析-绘制伯德图

    控制器分析 绘制伯德图 设计控制器 需要利用伯德图工具分析控制器的相频特性与幅频特性 本文提供了两种绘制伯德图的方法 第一种是利用MATLAB内置的函数绘制 第二种是自己编写的代码 由于最开始第一种方法获得的图片属性不满意 如坐标轴字体大小
  • Java面试题整理一(反射)

    问题 简述Java中的反射使用 答 1 作用 可以通过配置文件来动态配置和加载类 以实现软件工程理论里所提及的类与类 模块与模块之间的解耦 反射最经典的应用是spring框架 2 定义 反射简单来说 就是动态加载对象 并对对象进行剖析 在J
  • 将div的宽、高按比例设置有什么效果

    在添加div时 对它的大小 宽 高 有两种设置方法 固定值和百分比 1 若div的宽高为固定值 则该div的显示效果会随着其父div的缩放而变化 如下所示 fixed width 200px height 100px background
  • 【C语言】输入三个字符串,比较其大小,最终将它们由大到小输出。利用C指针。

    题目 输入三个字符串 比较其大小 最终将它们由大到小输出 利用C指针 解题思路 定义一个二维字符数组用于存放3组字符串 再定义一个一位指针数组使其分别指向这3个字符串 编写一个函数 利用传入的指针数组 对其指向的字符串的用 选择法 进行排序
  • 函数式接口习题

    基础题 练习一 函数式接口 定义一个函数式接口CurrentTimePrinter 其中抽象方法void printCurrentTime 使用注解 FunctionalInterface 在测试类中定义static void showLo
  • 云解析DNS能为你做什么?

    记录类型 云解析DNS支持A CNAME MX TXT SRV AAAA NS CAA记录类型 您可以参阅 添加解析记录 操作文档 记录类型功能描述AIPV4记录 支持将域名映射到IPv4地址使用AAAAIPV6记录 支持将域名映射到IPv
  • 非printf形式打印各种数据类型的十六进制和二进制

    转载请标明是引用于 http blog csdn net chenyujing1234 欢迎大家提出意见 一起讨论 一 源码实现 为了适配各种数据类型 且可以通过sizeof得到此类型的大小 所以这里采用模板形式开发 以下是实现此功能的源码
  • 在Ubuntu系统安装jdk1.7步骤

    在Ubuntu12 04系统安装sun jdk1 7 可以到 http www oracle com 下载jdk1 7版本 选择平台Linux x64 Accept the license agreement and download th
  • 《再也不怕elasticsearch》es核心概念

    ES核心概念 大家好我是迷途 一个在互联网行业 摸爬滚打的学子 热爱学习 热爱代码 热爱技术 热爱互联网的一切 再也不怕elasticsearch系列 帅途会慢慢由浅入深 为大家剖析一遍 各位大佬请放心 虽然这个系列帅途有时候更新的有点慢
  • 谷歌浏览器官方下载地址

    谷歌浏览器官方下载地址 在线安装版 https www google com chrome browser desktop index html 离线安装版 https www google com intl zh CN chrome br
  • python编写用户登录程序_python初学之用户登录的实现过程(实例讲解)

    要求编写登录接口 1 输入用户名和密码 2 认证成功后显示欢迎信息 3 用户名输错 提示用户不存在 重新输入 5次错误 提示尝试次数过多 退出程序 4 用户名正确 密码错误 提示密码错误 重新输入 密码错误3次 锁定用户名并提示 退出程序
  • python 字符串替换

    在Python中 字符串是一种非常重要的数据类型 它可以用来表示文本 数字 符号等信息 在实际开发中 我们经常需要对字符串进行替换操作 这时就需要用到字符串替换函数 Python中的字符串替换函数主要有replace translate r
  • 30岁后程序员的出路[转]

    那程序员到了30岁 怎样提高自己的不可替代性呢 我们打算做一辈子程序员吗 敢问路在何方 作为一个过来人 一个资深程序员 我觉得有几个方向可以选择 1 成为技术大拿 其实 做一辈子程序员并没有什么问题 重要的是 你必须成为一个不可替代的程序员
  • 在字节跳动做了6年软件测试,4月无情被辞,想给划水的兄弟提个醒

    先简单交代一下背景吧 某不知名 985 的本硕 17 年毕业加入字节 以 人员优化 的名义无情被裁员 之后跳槽到了有赞 一直从事软件测试的工作 之前没有实习经历 算是6年的工作经验吧 这6年之间完成了一次晋升 换了一家公司 有过开心满足的时
  • [JavaScript] async/await面试题 及其解析

    题目 async function async1 console log 1 await async2 console log 2 async function async2 console log 3 console log 4 setT
  • iframe简单使用 、获取iframe 、获取iframe 元素值 、iframe获取父页面的信息

    文章目录 1 iframe简单使用 2 获取iframe 3 获取iframe 元素值 4 iframe获取父页面的信息 1 iframe简单使用 标签规定一个内联框架 一个内联框架被用来在当前 HTML 文档中嵌入另一个文档 width插
  • 图像分类、目标检测、语义分割、实例分割和全景分割的区别

    1 Image Classification 图像分类 图像分类 下图左 就是对图像判断出所属的分类 比如在学习分类中数据集有人 person 羊 sheep 狗 dog 和猫 cat 四种 图像分类要求给定一个图片输出图片里含有哪些分类
  • ISTQB认证工程师学习笔记(4)——测试技术

    测试技术一般可分为黑盒测试 白盒测试 基于经验的测试技术 黑盒测试 黑盒测试技术 也称为行为的或基于行为的技术 基于对适当测试依据的分析 例如 正式需求文档 规格说明 用例 用户故事或业务流程 这些技术适用于功能和非功能测试 黑盒测试技术关