如何避免软件bug?优化你的测试流程和设计用例方法就对啦!

news2024/11/13 15:56:25

目录

引言

一、测试流程

二、测试用例设计方法

等价类

边界值

场景设计法

判定表

错误推测法

结语


引言

对于大多数软件开发者和测试人员而言,避免出现bug是一项非常重要的任务。但是,在实际的开发过程中,我们经常容易忽略一些细节或者流程上的问题,导致测试的结果不尽如人意。因此,对于软件测试的流程和用例设计方法进行优化是非常有必要的。

为了更好地帮助你成功hold住bug,本文将介绍一些非常实用的软件测试基础知识,包括测试流程、用例设计方法等方面,这些内容都是来自于专业的软件测试领域,经过实践和总结得出的经验。相信只要你能够认真学习并灵活应用这些知识,就一定可以在软件测试方面取得更好的效果。

一、测试流程

测试流程:需求分析-->编写测试计划-->测试设计-->测试执行-->测试结果输出

需求分析阶段:阅读需求,理解需求,主要就是对业务的学习,分析需求点,参与需求评审会议。

测试计划阶段:主要任务就是编写测试计划,参考软件需求规格说明书制定项目总体计划,内容包括测试范围,环境资源的准备,进度安排,人力物力的分配,整体测试策略的制定,风险评估与规避措施有一个制定。

测试设计阶段:主要是编写测试用例,会参考需求文档(原型图),概要设计,详细设计等文档,用例编写完成之后会进行评审。

测试执行阶段:搭建环境,执行冒烟测试,然后按照测试用例进入正式测试,进行bug跟踪管理直到测试结束。

测试结果输出:出测试报告,确认是否可以上线

详细测试流程:了解用户需求-->参考需求规格说明书-->测试计划-->编写测试用例-->评审用例-->搭建环境-->冒烟测试-->执行测试用例-->bug跟踪处理-->测试报告输出-->版本上线-->上线验证-->面向用户

二、测试用例设计方法

软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果

测试用例设计常用的7种方法:等价类、边界值、场景设计法、判定表、因果图、正交法、错误猜测法。

等价类

等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其他值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分有两种不同的情况:有效等价类和无效等价类。

(1)有效等价类

是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明所规定的功能和性能。

(2)无效等价类

指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能多个。

设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。

边界值

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

与等价划分的区别:

(1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。

(2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。

场景设计法

通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。用例场景来测试需求是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。

 基本流:是经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束)

备选流:一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不在加入到基本流中;(各种错误情况)

场景法的运用:

例:有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时需要使用帐号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。

· 基本流

   · 备选流:

           1)进入购物网站,选择物品,登录账号,付费,生成订单

           2)账号不存在

           3)账户余额不足

           更多的备选流。。。。。。

判定表

判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。

1)条件桩:在左上部,列出了问题的所有条件。通常认为列出的条件的次序无关紧要。

2)动作桩:在左下部,列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。

3)条件项:在右上部,列出针对它左列条件的取值。在所有可能情况下的真假值。

4)动作项:在右下部,列出在条件项的各种取值情况下应该采取的动作。

判定表的建立步骤:

1)确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有2的n次方种规则。

2)列出所有的条件桩和动作桩。

3)填入条件项。

4)填入动作项。得到初始判定表。

5)简化.合并相似规则(相同动作)

判定表实例:

例1:思想品德好,身体好,学习好,全部合格才能成为三号学生,否则不能成为

  A.确定规则个数:3个条件,故规则个数= 2^3 =8

  B.得到条件桩和动作桩。

  C.生成判定表

例2:需要确保电脑有打印机的驱动,打印机正常工作、打印机的纸张充足、打印机墨粉充足才能满足打印。

  A.确定规则个数:4个条件,故规则个数= 2^4 =16

  B.得到条件桩和动作桩

   C.生成判定表

 * 其中出现多个动作项的情况,按照最先触发的情况给出。

  D.简化

    1)在2/3/4/6/7/10/12/15列中,结果都为X2,所以只要C1=0,就用不管C2/C3/C4是什么,那么这几列就可以合并;

    2)在1/8/9/13列中,结果都是X3,所以只要C1=1,C2=0,就不用管C3/C4是什么,那么这几列就可以合并;

    3)在5/14列中,结果都是X4,所以只要C1=1,C2=1,C3=0,就不用管C4是什么,那么这两列就可以合并;

  化简后如下:

  

错误推测法

 错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。

例如, 输入数据和输出数据为0的情况;输入表格为空格或输入表格只有一行。 这些都是容易发生错误的情 况。可选择这些情况下的例子作为测试用例。

例如,测试手机终端的通话功能,可以设计各种通话失败的情况来补充测试用 例:

1) 无SIM 卡插入时进行呼出(非紧急呼叫)

2) 插入已欠费SIM卡进行呼出

3) 射频器件损坏或无信号区域插入有效SIM卡呼出

4) 网络正常,插入有效SIM卡,呼出无效号码(如1、888、333333、不输入任何号码等)

5) 网络正常,插入有效SIM卡,使用“快速拨号”功能呼出设置无效号码的数字

例如,测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:

1) 输入的线性表为空表;

2) 表中只含有一个元素;

3) 输入表中所有元素已排好序;

4) 输入表已按逆序排好;

5) 输入表中部分或全部元素相同。

结语

这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。

 获取方式:留言【软件测试学习】即可

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

 

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

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

相关文章

【Spring Boot】Spring Boot配置文件与Spring Boot日志文件

文章目录 1. 什么是Spring Boot?2. 如何创建Spring Boot项目?3. 验证Spring Boot项目的创建3.1 补充添加依赖3.2 代码示例 4. Spring Boot配置文件4.1 配置文件的作用4.2 配置文件的格式4.2.1 properties的语法4.2.2 yml的语法4.2.3 properties与yml的对…

性能测试工具的选购细节

近年来,随着软件技术的不断发展,为了保证软件系统的稳定性、可靠性和高效性,在软件开发过程中越来越多地使用性能测试工具。但是,如何选择一款合适的性能测试工具并不是一件容易的事情。下面是一些性能测试工具的选购细节&#xf…

Python学习笔记 - 探索5种数据类型

Python作为一门易学且功能强大的编程语言,吸引了众多编程爱好者。在学习Python的过程中,了解其数据类型是十分重要的。这里将向大家介绍Python中的五种常见数据类型,分别是:整数、浮点数、字符串、列表和字典,并且将通…

【华为新版模拟器eNSP Lite实验界面一览,赶紧来学习】

eNSP Lite是华为新开发的数据通信领域网络环境模拟软件,用于支持数通领域的考试认证、网络环境模拟和技术学习而开发的新版模拟器。相比于旧版模拟器eNSP的本地部署模式,新版模拟器eNSP Lite基于云端部署的模式使得软件在使用的过程中变得更加灵活&#…

使用Socket技术进行数据传输、传输文件;浏览器访问Socket服务器

文章目录 计算机网络基础IP地址和端口TCP和 UDP Socket技术使用Socket进行数据传输使用Socket传输文件使用浏览器访问Socket服务器 计算机网络基础 利用通信线路和通信设备,将地理位置不同的、功能独立的多台计算机互连起来,以功能完善的网络软件来实现…

Visual Studio 2022 v17.6 正式发布

Visual Studio 17.6 正式发布,这个最新版本提供了一系列强大的工具和功能,旨在使你能够制作出最先进的应用程序。 提高生产力 通过 Visual Studio 2022,目标是帮助你在更短的时间内完成 IDE 内的所有开发任务,在这个版本中&…

Vue3 QQ登录

Vue3 QQ登录 开发前需要去 QQ互联平台申请认证&#xff0c;创建应用 拿到对应的APPID、APPKey 一、引用QQjsdk 1、可直接引用 QQjsdk //绑定对应的APPID跟页面回调地址 <script type"text/javascript" charset"utf-8" src"https://connect.qq…

图像识别和计算机视觉:如何应用人工智能技术实现自动化检测和识别

章节一&#xff1a;引言 在数字化时代&#xff0c;图像数据成为了我们日常生活中不可或缺的一部分。然而&#xff0c;随着图像数据的急剧增加&#xff0c;传统的手动处理和分析方法已经无法满足我们的需求。这就引出了图像识别和计算机视觉技术的重要性。本文将介绍人工智能技…

程序员降薪40%去国企,只因要35岁了!值得吗?

说到程序员&#xff0c;大家首先想到的就是“高薪”&#xff0c;“有实力”&#xff0c;程序员是个比较吃香的职业&#xff0c;发展前景和薪资待遇都非常可观。 但是在程序员的世界里&#xff0c;一直有一个传言&#xff0c;35岁是技术人的天花板。这个观点&#xff0c;无意中…

君正X2000 Linux SDK

一、测试所用的硬件 深圳君正开发板&#xff1a;PD_X2000_EVB_CORE_V1P1 二、SDK源码下载 参考君正官方教程&#xff1a;君正全平台linux源码同步教程&#xff08;除X1830人脸识别板&#xff09;_君正a1n linux_北京君正的博客-CSDN博客 教程中要求的系统为Ubuntu20.4&#…

批量提取某音文案

牙叔教程 简单易懂 我想学习某个人的文案, 怎么把它的文案全下载下来? 批量下载视频和音频批量音频转文字 下载视频和音频 我在github找到的是这个仓库 GitHub - Johnserf-Seed/TikTokDownload: 抖音去水印批量下载用户主页作品、喜欢、图文、音频 经过实际测试, 可以使用,…

[FMC149】基于VITA57.1标准的16通道65MSPS 14位直流耦合AD采集FMC子卡

板卡概述 FMC149是一款16通道65MHz采样率14位直流耦合AD采集FMC子卡&#xff0c;符合VITA57.1规范&#xff0c;可以作为一个理想的IO模块耦合至FPGA前端&#xff0c;16通道AD通过FMC连接器&#xff08;HPC&#xff09;连接至FPGA从而大大降低了系统信号延迟。 该板卡支持板上可…

【STL】vector的模拟实现

目录 前言 结构解析 构造析构 构造 默认构造 初始化成 n 个 val 以迭代器区间构造 拷贝构造 析构 运算符重载 赋值重载 下标访问 迭代器 const迭代器 容量操作 查看大小和容量 容量修改 数据修改 尾插尾删 指定位置插入和删除 insert erase 清空 判空 …

Redis系列--主从复制

一、redis主从复制介绍 在 Redis 复制的基础上&#xff0c;使用和配置主从复制非常简单&#xff0c;能使得从 Redis 服务器&#xff08;下文称 slave&#xff09;能精确得复制主 Redis 服务器&#xff08;下文称 master&#xff09;的内容。每次当 slave 和 master 之间的连接断…

chatGpt 对前端的开发帮助

chatGpt 是 什么&#xff1f; ChatGPT是一个基于GPT-3的聊天机器人&#xff0c;可以用来帮助前端开发人员解决各种问题。它可以回答关于前端开发的各种问题&#xff0c;包括HTML、CSS、JavaScript、React、Vue等等。它可以提供代码片段、示例代码、文档链接等等&#xff0c;帮助…

javascript 创建 array

javascript 创建 array 补一下笔记&#xff0c;constructor 这块之前还真没怎么太琢磨过…… 最常见的就是 literal array syntax: const arr1 [1, 2, 3];console.log(arr1);这是最主流的用法&#xff0c;也是目前最推荐的用法&#xff0c;原因有以下几点&#xff1a; 这是…

SOLIDWORKS 30个使用技巧

很多人在学习SolidWorks时&#xff0c;会有很多疑问&#xff0c;都不知道如何解答&#xff0c;所以走了很多弯路。今天&#xff0c;我们就来讲讲在学习SolidWorks中的那些小技巧吧&#xff01; 1、按“空格键&#xff1a;”弹出快捷菜单双击某一视图&#xff0c;模型将转向某一…

3分钟带你入门接口自动化测试(建议收藏)

接口测试简介 1&#xff09; 什么是接口测试 开始学习接口自动化测试之前&#xff0c;我们先要来了解什么是接口&#xff0c;以及什么是接口测试。 我们都知道&#xff0c;测试从级别上划分可以分为 ◆ 组件测试 ◆ 集成测试 ◆ 系统测试 ◆ 验收测试 其中在集成测试这个…

Vue3系列——computed、watch

目录 Computed watch 侦听单个数据 侦听多个数据 immediate deep 精确侦听对象的某个属性 Computed 计算属性computed是依赖于使用它的数据&#xff0c;当数据发生变化时&#xff0c;自定义方法重新调用执行一次计算属性&#xff0c;监测的是依赖值&#xff0c;依赖值不…

GPT专业应用:生成会议通知

正文共 917 字&#xff0c;阅读大约需要 3 分钟 公务员/文秘必备技巧&#xff0c;您将在3分钟后获得以下超能力&#xff1a; 快速生成会议通知 Beezy评级 &#xff1a;B级 *经过简单的寻找&#xff0c; 大部分人能立刻掌握。主要节省时间。 推荐人 | Kim 编辑者 | Linda ●图…