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

何为边缘情况?

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

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

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

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

边缘情况的示例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

如何进行边缘情况测试?

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

手动方式:

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

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

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

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

自动化方式:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows不同的域名由不同的DNS服务器解析

gpedit.msc(组策略)-计算机配置-Windows设置-域名解析策略 本次改动在注册表中体现的位置。 计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Dnscache\Parameters\DnsPolicyConfig\{666881c9-5525-434b-a62a-2ed5c61d53e5} 计算机\HKEY_LOCAL_MACHINE\SYSTEM\Cur…

⑩①【缓存】Redis持久化 RDB + AOF

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ ⑩①Redis持久化 RDB AOF Redis数据快照 - RD…

XXE注入漏洞总结

XXE和XML概念 XML被设计为传输和存储数据,XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具。XXE漏洞全称XML Externa…

C++每日一练(8):图像相似度

题目描述 给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度。 说明:若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。…

软件测试/测试开发丨Linux 数据处理三剑客学习笔记

一、Linux 三剑客之 grep 1、 内容检索 获取行(单行) grep pattern file获取内容 grep -o pattern file获取上下文 grep -A -B -C pattern file 2、 文件检索 递归搜索 grep pattern -r dir/展示匹配文件名 grep -H 111 /tmp/1只展示匹配文件名 grep …

算法学习系列(十四):并查集

目录 引言一、并查集概念二、并查集模板三、例题1.合并集合2.连通块中点的数量 引言 这个并查集以代码短小并且精悍的特点,在算法竞赛和面试中特别容易出,对于面试而言,肯定不会让你去写一两百行的代码,一般出的都是那种比较短的…

FPGA - 231227 - 5CSEMA5F31C6 - 电子万年历

TAG - F P G A 、 5 C S E M A 5 F 31 C 6 、电子万年历、 V e r i l o g FPGA、5CSEMA5F31C6、电子万年历、Verilog FPGA、5CSEMA5F31C6、电子万年历、Verilog 顶层模块 module TOP(input CLK,RST,inA,inB,inC,switch_alarm,output led,beep_led,output [41:0] dp );// 按键…

00-Git 详解

Git 应用 一、Git概述 1.1 什么是Git git 是一个代码协同管理工具,也称之为代码版本控制工具,代码版本控制或管理的工具用的最多的: svn、 git。 SVN 是采用的 同步机制,即本地的代码版本和服务器的版本保持一致(提…

社区医院挂号预约服务管理系统95an6

社区医院管理服务系统具有社区医院信息管理功能的选择。社区医院管理服务系统采用p[ython技术,基于django框架,mysql数据库进行开发,实现了首页、个人中心、用户管理、医生管理、预约医生管理、就诊信息管理、诊疗方案管理、病历信息管理、健…

创建您的第一个记忆卡片游戏

大家好!今天,我们将一起探索如何用HTML、CSS和JavaScript创建一个有趣的记忆卡片游戏。我们的游戏规则很简单:用户需要找到一对一样的卡片。如果你是编程新手,不用担心,我会逐步引导你完成这个项目。 正文&#xff1a…

MFC扩展库BCGControlBar Pro v34.0 - 仪表盘控件全面升级

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中,并为您节省数百个开发和调试时间。 BCGControlBar专业版 v34.0已正式发布了,该版本包括新的主题任务对话框、图像效果、旋转圆形刻度、…

C语言转WebAssembly的全流程,及Web端调用测试

第一步:安装环境 参考网址:https://emscripten.org/docs/getting_started/downloads.html 具体过程: 克隆代码:git clone https://github.com/emscripten-core/emsdk.git进入代码目录:cd emsdk获取最新远端代码&…

uniapp 安卓模拟器链接

下载genymotion 安装 配置adb路径 模拟端口设为 5307

C#上位机与欧姆龙PLC的通信06---- HostLink协议(FINS版)

1、介绍 对于上位机开发来说,欧姆龙PLC支持的主要的协议有Hostlink协议,FinsTcp/Udp协议,EtherNetIP协议,本项目使用Hostlink协议。 Hostlink协议是欧姆龙PLC与上位机链接的公开协议。上位机通过发送Hostlink命令,可…

qt中信号槽第五个参数

文章目录 connent函数第五个参数的作用自动连接(Qt::AutoConnection)直接连接(Qt::DirectConnection - 同步)同线程不同线程 队列连接(Qt::QueuedConnection - 异步)同一线程不同线程 锁定队列连接(Qt::BlockingQueuedConnection) connent函数第五个参数的作用 connect(const …

数据统计的一些专业术语学习

数据统计的一些专业术语学习 1. 极差2. 方差3. 标准差4. 均值绝对差 1. 极差 数据统计的极差,又称全距,是指一组数据中最大值和最小值之差。 举个例子,如果我们有一组数据:1,2,3,4&#xff0c…

C# 图标标注小工具-查看重复文件

目录 效果 项目 代码 下载 效果 项目 代码 using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Windows.Forms;namespace ImageDuplicate {public partial clas…

vue-springboot基于javaEE的二手手机交易平台的设计与实现

在此基础上,结合现有二手手机交易平台体系的特点,运用新技术,构建了以 SpringBoot为基础的二手手机交易平台信息化管理体系。首先,以需求为依据,根据需求分析结果进行了系统的设计,并将其划分为管理员、用户…

C#进阶-IIS应用程序池崩溃的解决方案

IIS是微软开发的Web服务器软件,被广泛用于Windows平台上的网站托管。在使用IIS过程中,可能会遇到应用程序池崩溃的问题,原因可能有很多,包括代码错误、资源不足、进程冲突等。本文将为大家介绍IIS应用程序池崩溃的问题分析和解决方…