什么是边缘案例测试?如何查找并确定优先级

何为边缘情况?

在极端条件下发生的情况被称为边缘情况,有时候也叫边界情况,在功能、回归、单元和性能测试中都会应用。如果质量保证团队知道某项功能的最大和最小负载,他们就能防止这些情况发生。当用户不按照程序的预期工作流程操作时,就属于边缘情况。

虽然用户在使用程序时可能没有按照其设计功能进行操作,但他们不应该面临任何故障。通过测试边缘案例,质量保证团队可以通过发送有意的安全攻击来识别漏洞。这种测试还能确保合规性,并能隔离程序中的风险。边缘案例会对程序的整体性能和用户体验产生影响。

那么,你遇到过这样的情况吗?

比如,当你关闭某社交软件上的视频时,声音却在后台继续播放几秒钟?这就是边缘情况的典型示例!

边缘情况的示例

此类情况可能会导致难以诊断和修复的问题或错误。边缘情况的示例包括但不限于:

用户错误:用户输入数据或执行系统无法处理的操作的情况。例如,设计可能不会预期用户输入无效数据或单击他们未预期的按钮。

误用:当用户以非预期方式使用产品时,例如,将CD驱动器用作杯架。

依赖关系:当产品依赖于不可用或发生变化的资源时,例如互联网连接或代码库。

极端情况:当不太可能发生的事件同时发生并产生意外结果时,例如多个用户使用相同的名称同时注册。

技术变革:当用户尝试使用系统无法支持的过时或创新技术时。

所以,开发人员在设计和开发过程中需要考虑边缘情况,以最大程度地降低错误风险并确保产品能够处理意外场景。

边缘情况的类型,包括不限于以下情况:

输入边缘情况:使用极端输入值测试程序,包括非常大或很小的数字。

硬件边缘情况:使用不常见的硬件配置或设备测试程序。

时序边缘情况:在异常时序条件下测试程序,例如高负载或低网络带宽。

配置边缘情况:使用独特的设置或禁用的功能测试程序。

安全边缘案例:在非典型安全条件下测试程序,例如使用不同的权限或禁用的安全功能。

为什么边缘情况需要考虑?

如果你想知道为什么边缘情况如此重要,你必须首先了解一些不平常发生但很严肃的事实!

1.边缘案例可以揭示系统或流程中在典型场景中可能不明显的缺陷。我们可以通过考虑边缘情况来识别和解决潜在问题,以免它们成为更大的问题。

2.边缘案例通常代表现实世界中的场景,这些场景可能很少发生,但如果处理不当,仍然会产生严重后果。考虑到这些场景,我们可以确保我们的系统和流程足够强大来处理它们。

3.边缘案例还可以通过识别用户可能遇到意外行为或错误的情况来帮助我们改善用户体验。解决这些边缘情况,可以使我们的系统更加友好,并减少用户的不良体验。

4.边缘案例可能会严重影响某些行业(例如医疗保健或金融)的患者安全或财务稳定性。查看这些场景,我们可以确保系统和流程的设计能够最大限度地降低风险,并保护依赖它们的人。

边缘案例测试和测试自动化

如果你正在使用具有有限范围的可重复和可控输入值的应用程序,应该考虑自动化边缘情况测试。

测试自动化通常执行边缘情况测试,以使用自动化测试验证预定的软件输出。

自动化测试确保系统满足测试用例的预期性能、质量、行为和配置。自动化测试脚本可以检测手动测试无法识别的问题。团队经常使用自动化测试来加速测试套件并检查复杂Web应用程序和系统的边缘情况。

如何在软件测试中找到边缘案例?

因此,软件测试中的边缘情况是指超出正常输入和行为范围的场景。它们就像我们必须测试的疯狂异常值,以防万一。

有时,我们必须测试我们没有预料到或计划之外的事情。这就像测试可能发生但可能不会发生的古怪而意料之外的事情。

当测试人员需要处理大量数据并认为测试可能在数据的最高或最低限制时失败时,他们会使用称为边界值分析的方法。这意味着我们正在检查输入数据值的上限和下限,因为我们认为这就是我们的测试用例可能出错的地方。当我们有大量测试数据时,这种技术效果最好。

假设你正在测试一个仅允许包含6-12个字符的用户名的网站。通过边界值分析,你可以测试下限(6个字符)、精确限制(7个字符)和上限(12个字符)。

接下来是等价分区。这是关于将一个巨大的数据集分解成更小的块。如果我们传递一个块中的任何随机值,我们可以假设我们已经覆盖了该块,并且不需要单独测试其中的所有内容。

假设你正在测试一个仅允许使用字母数字字符的用户名的网站。你可以将其分为两个等价类:所有字母字符和所有数字字符。然后,你可以测试这两个类中每一类的一个值,以确保网站接受数字和字母。

如何进行边缘情况测试?

边缘案例测试是软件测试的重要组成部分,涉及测试系统的极端或边界条件,而这些条件在常规测试中经常被忽视。

手动方式:

识别边缘情况:第一步是识别应用程序的边缘情况。这可以通过分析系统的要求和规格来完成。

创建测试用例:确定边缘情况后,创建涵盖这些场景的测试用例。应该包含等于或超出这些测试用例中预期限制的输入。

执行测试用例:手动执行每个测试用例并观察系统在这些条件下的行为方式。

记录结果:记录每个测试用例的结果,包括测试期间发现的任何问题或缺陷。

自动化方式:

1.识别潜在的边缘情况:第一步是识别系统中潜在的边缘情况。这可以通过分析需求、用户故事和用例来完成。

2.开发测试场景:一旦识别出潜在的边缘情况,下一步就是开发涵盖这些情况的测试场景。这些场景应旨在测试系统在极端条件下的行为。

3.使用自动化工具:Selenium、Appium等自动化工具可以自动执行这些测试场景。这些工具可以模拟用户与系统的交互并验证其在不同条件下的行为。

4.分析结果:执行自动化测试后,分析结果以识别可能已发现的任何问题或缺陷非常重要。此分析可以通过识别需要改进或进一步测试的领域来帮助提高系统的质量。

为什么在发布前进行边缘案例测试?

在产品发布之前,边缘情况测试对于检查系统在极端条件下的表现非常重要。系统的意外行为可能会让用户体验极差并导致他们放弃该产品。

边缘情况测试涉及通过输入超出正常使用限制的值来测试系统的边界,例如提供异常大或负的输入。这可以识别并消除极端用例中的错误或意外行为。边缘案例测试可以帮助为客户提供流畅、无缝的用户体验。

如何确定边缘情况的优先级?

测试人员一旦发现边缘案例缺陷,就必须对其进行优先排序,以便分流。

通常情况下,组织对边缘案例缺陷的优先级排序与回归测试周期中报告的缺陷略有不同。

比如,我们正在测试安全性和身份验证–我可以尝试在用户界面中直接绕过它的任何可能方式。你可能会在应用程序工作流程的任何地方发现并测试边缘案例缺陷。为了有效地确定边缘案例测试和缺陷的优先级,就需要考虑问题被发现的频率,以及对公司和用户的潜在业务结果。

想想我们前面的例子,如果我能使用用户界面规避登录流程,并获得所有账户的访问权限,这就是一个重大缺陷,企业必须立即解决。但不太严重的边缘测试用例缺陷可能不会立即在代码中得到修复,尤其是如果产品或开发团队不相信有人真的会走这条路。

这就是确定优先级如此重要的原因:严重的边缘测试用例缺陷必须立即修复,但轻微的缺陷可能会被搁置。

边缘测试用例很难辩护,因为它们并不常见或出乎意料。但是,组织在审查和优先处理边缘案例时,不应将其视为不常见的情况,而应将其视为在某些时候会出现的缺陷,这取决于用户的狡猾程度。也许他们不会在工作流程之外随意点击。但如果他们这样做了呢?黑客会花大量时间测试边缘情况和利用缺陷。

他们会测试系统的方方面面,而这些都是没人认为重要的。如果要保持客户对应用程序的信任,边缘案例测试就是重中之重。

请记住,你也可以在设备级别发现边缘案例。安卓系统有许多不同的版本,因此边缘案例缺陷会存在于某个版本,但不会存在于另一个版本。在确定边缘案例的优先级时,要考虑用户拥有哪些设备,以决定是否值得花精力修复该缺陷。要同时解决所有缺陷,设备/操作系统组合实在是太多了,因此有必要采取分清主次的方法。

总之,不要忽视边缘缺陷,要将边缘测试纳入项目的整体质量保证计划。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保100%免费】
在这里插入图片描述

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/701822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gma 2.0.6 (2024.02.21) 更新日志

安装 gma 2.0.6 pip install gma2.0.6网盘下载: 链接:https://pan.baidu.com/s/1P0nmZUPMJaPEmYgixoL2QQ?pwd1pc8 提取码:1pc8 注意:此版本没有Linux版! 编译gma的Linux虚拟机没有时间修复,本期Linux版继…

Go Module常用命令

Go Module常用命令TOC Go Module常用命令 go mod init #初始化go.mod go mod tidy #更新依赖文件 go mod download #下载依赖文件 go mod vendor #将依赖转移至本地的vendor文件 go mod edit #手…

ChatGPT需要什么资源?

在ChatGPT走红之后,国内有很多的媒体和人一下子慌了神。特别是自媒体上,铺天盖地的都是说“为什么中国没有诞生ChatGPT”、“美国将要爆发一场新的技术革命”之类的文章。很多的一些研究机构和企业都宣称,我们马上就要推出自己的ChatGPT了。还…

@ 代码随想录算法训练营第8周(C语言)|Day59(动态规划)

代码随想录算法训练营第8周(C语言)|Day59(动态规划) Day59、动态规划(包含题目 ● 583. 两个字符串的删除操作 ● 72. 编辑距离 ) 583. 两个字符串的删除操作 题目描述 给定两个单词 word1 和 word2&am…

Spring Cloud Gateway官方文档学习

文章目录 推荐写在前面一、熟悉Gateway基本概念与原理1、三大概念2、工作流程 二、基本使用路由断言的两种写法 三、路由断言工厂1、After路由断言工厂2、Before路由断言工厂3、Between路由断言工厂4、Cookie路由断言工厂5、Header路由断言工厂6、Host路由断言工厂7、Method路由…

如何远离原生家庭并与原生家庭相处

1、绝不主动联系。 2、任何辩理立即停止,即使你是对的。 3、绝不做任何取悦父母、感动父母的事。 4、只负责父母病了给他们送医院,得到应有的治疗。其他的和你无关。 5、遭遇道德绑架立即挂电话,立即离场,立即拉黑,绝不…

静态时序分析:SDC约束命令set_drive详解

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 目录 指定电阻值 指定端口列表 简单使用 指定上升、下降沿 指定最大最小、条件 写在最后 本章将讨论使用set_drive命令,它用于对输入端口的驱动能力建模。首先需要说明的…

XXXX系统等级保护定级报告

XXXX系统等级保护定级报告 *标红内容为样例文本,请根据实际填写替换,非重要系统一般级别为一级 一、信息系统描述 对系统功能、运维方式、部署方式进行描述。 二、XX系统安全保护等级确定 (一)业务信息安全保护等级的确定 1、业务信息描…

130 如何通过vs2017开发linux c++程序

使用VS2017开发linux下的应用程序(C/C)_vc_linux.exe vs2017-CSDN博客 参考上面这哥们的,写的很详细 前言 本文章记录如何使用VS2017进行linux应用程序的开发(针对新手小白),VS2017能较为方便的通过SSH编辑…

基于回归支持向量机svr的确诊人数预测,基于lstm的确诊人数预测,基于bilstm的确诊人数预测,基于ga-lstm-svr的确诊人数预测

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 基于lstm的确诊人数预测,基于bilstm的确诊人数预测 完整代码: 基于svr的确诊人数预测,基于lstm的确诊人数预测,基于bilstm的确诊人数预测,基于ga-lstm-svr的确诊人数预资源-CSDN文库 https://download.csdn.net/download/ab…

python中name=‘main’的理解

1、__name__的理解 Python解释器在导入模块时,会将模块中没有缩进的代码全部顺序执行一遍(模块就是一个独立的Python文件)。开发人员通常会在模块下方增加一些测试代码,为了避免这些测试代码在模块被导入后执行,可以利…

公司数据迁移,服务器小文件多复制慢解决方案

企业普遍面临一个挑战:如何高效地处理和移动大量的小型文件。这些文件虽然单个体积不大,但数量庞大,累积起来会占据极大的存储空间,而且在迁移过程中,复制这些文件的速度往往非常缓慢。这不仅影响了企业的运营效率&…

10-pytorch-完整模型训练

b站小土堆pytorch教程学习笔记 一、从零开始构建自己的神经网络 1.模型构建 #准备数据集 import torch import torchvision from torch.utils.tensorboard import SummaryWriterfrom model import * from torch.utils.data import DataLoadertrain_datatorchvision.datasets.…

如何运用Mybatis Genertor

MyBatis Generator是一个MyBatis的代码生成器,它可以帮助我们快速生成Mapper接口以及对应的XML文件和模型类。在Java开发中,能大大提升开发效率。本文将介绍如何在IntelliJ IDEA中使用MyBatis Generator。 1. 添加MyBatis Generator依赖 我们首先需要在…

计网 - 深入理解HTTPS:加密技术的背后

文章目录 Pre发展历史Http VS HttpsHTTPS 解决了 HTTP 的哪些问题HTTPS是如何解决上述三个风险的混合加密摘要算法 数字签名数字证书 Pre PKI - 数字签名与数字证书 PKI - 借助Nginx 实现Https 服务端单向认证、服务端客户端双向认证 发展历史 HTTP(超文本传输协…

《凤凰架构》-本地事务章节 读书笔记

1、写锁又名排它锁,写锁禁止其他事务施加读锁和写锁,而不禁止其他事务读取数据(如果遇到了个不加任何锁的另一个事务2,写锁是无法阻止事务2读取数据的),这就是读未提交隔离级别中的脏读问题产生的根因。 2…

vue3语法笔记

定义变量 ref reactive toRefs let presonreactive({name:zhangsan,age:19 })//直接解构不是响应式,需要加toRefs let {name,age}toRefs(preson)toRef let presonreactive({name:zhangsan,age:19 })变成响应式 let nametoRef(preson,name) console.log(name.valu…

代码随想录算法训练营第二十五天补|216.组合总和III ● 17.电话号码的字母组合

组合问题:集合内元素的组合,不同集合内元素的组合 回溯模板伪代码 void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtrackin…

人工智能绘画的时代下到底是谁在主导,是人类的想象力,还是AI的创造力?

#ai作画 目录 一.AI绘画的概念 1. 数据集准备: 2. 模型训练: 3. 生成绘画: 二.AI绘画的应用领域 三.AI绘画的发展 四.AI绘画背后的技术剖析 1.AI绘画的底层原理 2.主流模型的发展趋势 2.1VAE — 伊始之门 2.2GAN 2.2.1GAN相较于…

深度学习系列60: 大模型文本理解和生成概述

参考网络课程:https://www.bilibili.com/video/BV1UG411p7zv/?p98&spm_id_frompageDriver&vd_source3eeaf9c562508b013fa950114d4b0990 1. 概述 包含理解和分类两大类问题,对应的就是BERT和GPT两大类模型;而交叉领域则对应T5 2.…