软件测试----用例篇(设计测试用例保姆级教程✅)

2024-06-22 22:44

本文主要是介绍软件测试----用例篇(设计测试用例保姆级教程✅),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、测试用例
    • 概念
  • 二、如何设计测试用例
  • 三、设计测试用例的方法
    • 3.1基于需求的设计方法
    • 3.2具体的设计方法
      • 等价类
      • 边界值
      • 正交法
      • 判定表法
      • 场景法
      • 错误猜测法


前言

在软件开发过程中,测试用例是至关重要的一环。它们帮助软件开发人员和测试人员确定软件是否按照预期方式运行,并且可以帮助找出和修复软件中的 bug。编写测试用例是一项技能,它需要逻辑思维和专业知识。在本篇博客中,我们将介绍一些编写测试用例的方法,帮助你更好地理解软件测试用例的重要性,并提高编写测试用例的能力。让我们一起来深入了解吧!


一、测试用例

概念

什么是测试⽤例?
测试⽤例(Test Case)是为了实施测试而向被测试的系统提供的⼀组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。 设计测试⽤例原则⼀: 测试⽤例中⼀个必需部分是对预期输出或结果进⾏定义.

为什么需要测试⽤例呢,不写测试⽤例可以进⾏测试吗?
测试中可能会遇到很多问题,诸如:
• 不知道是否较全⾯的测试了所有功能
• 测试的覆盖率⽆法衡量
• 对新版本的重复测试很难实施(即回归测试⽆法仅通过⼈⼯测试的⽅式进⾏历史功能的回归)
• 存在⼤量冗余测试影响测试效率
测试⽤例的出现就是解决这些问题。

二、如何设计测试用例

设计测试用例的万能公式:万能公式:功能测试+界⾯测试+性能测试+兼容性测试+易用性测试+安全测试

  • 功能测试

功能测试是⼀个试图发现程序与其外部规格说明之间存在不⼀致的过程。外部规格说明是⼀份从最终用户的⻆度对程序⾏为的精确描述。功能测试通常是⼀项⿊盒操作。在进⾏功能测试时,需要对规格说明进⾏分析以提炼测试⽤例,本课程中讨论的具体设计测试⽤例的⽅法尤其适⽤于功能测试。

  • 界⾯测试

对软件界⾯上所有的内容都需要进⾏测试。

  • 性能测试

性能测试和功能测试的区别是:功能测试检查软件是否做了,⽽性能测试测试软件做的好不好。

  • 兼容性测试

软件是部署在硬件系统之上,并依赖所需要的软件环境。如QQ可以在PC端打开,也可以在移动端打开;移动端⼜分为IOS系统和Android系统,且市⾯上⼿机⼜有不同的品牌、不同的机型、不同的版本。软件是否能够在不同的环境下正确运⾏需要测试⼈员进⾏验证。

  • 易⽤性测试

易⽤性测试的标准是检查产品是否具备简单易上⼿的属性。假如测试⼈员从来没有安装或使⽤过该产品,作为⼀个新用户,对当前产品是否能够快速适⽤产品的使⽤流程。

  • 安全测试

安全测试和性能测试⼀样都是⽐较⼤的领域。常⻅的安全问题如:
隐私数据明文显示。
参数未强校验导致SQL注⼊。
越权:普通用户也可以执⾏管理员权限的操作。

  • 弱⽹测试

弱⽹测试的⽬的就是尽可能保证用户体验,关注的关键点包括:
• 页面响应时间是否可以接受,关注包括热启动、冷启动时间、页面切换、前后台切换、⾸字时间,
⾸屏时间等。
• 页面呈现是否完成⼀致。
• 超时⽂案是否符合定义,异常信息是否显⽰正常。
• 是否有超时重连。
• 安全⻆度:是否会发⽣dns劫持、登陆ip更换频繁、单点登陆异常等。

弱⽹需要借助⼯具来构造弱⽹,这⾥推荐使⽤fiddler
1)fiddler配置代理
2)fiddler进⾏抓包(桌⾯/移动端)
3)fiddler如何构造弱⽹条件

在这里插入图片描述

  • 安装卸载测试

针对需要进⾏部署的软件,除了软件功能外,我们还需要关注软件的能够成功安装和卸载

在这里插入图片描述

正确设计测试用例的思想:常规思维+逆向思维+发散性思维

设计测试用例的原则⼆:
1.测试用例的编写不仅应当根据有效和预料到的输⼊情况,⽽且也应该根据⽆效和未预料到的输⼊情况。
2.检查程序是否“未做其应该做的”仅是成功的⼀半,测试的另⼀半是检查程序是否“做了其不应该做的”。(是上⼀条原则的必然结果)
3.计划测试⼯作时不应默许假定不会发现错误

三、设计测试用例的方法

3.1基于需求的设计方法

基于需求的设计⽅法也是总的设计测试⽤例的⽅法,在⼯作中,我们需要参考需求⽂档/产品规格说明 书来设计测试⽤例。测试⼈员接到需求之后,要对需求进⾏分析和验证,从合理的需求中进⼀步分析细化需求,从细化的 需求中找出测试点,根据这些测试点再去设计测试⽤例。

eg.注册邮箱账号需求为例来设计测试⽤例。
①明确需求中的功能点:账号注册,账号登陆
②结合万能公式设计测试点
在这里插入图片描述

3.2具体的设计方法

等价类

依据需求将输⼊(特殊情况下会考虑输出)划分为若⼲个等价类,从等价类中选出⼀个测试⽤例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以⽤较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。

等价类分类:
•有效等价类:对于程序的规格说明书是合理的、有意义的输⼊数据构成的集合,利⽤有效等价类验证程序是否实现了规格说明中所规定的功能和性能 。
•⽆效等价类:根据需求说明书,不满⾜需求的集合。

根据等价类设计测试⽤例的⽅式:
1.确定有效等价类和⽆效等价类
2.编写测试⽤例,设计具体测试数据

缺点:等价类只考虑输⼊域的分类,没有考虑输⼊域的组合,需要其他的设计⽅法和补充。

eg.对邮箱注册中姓名进行等价类设计用例。
在这里插入图片描述

边界值

边界值分析法就是对输⼊或输出的边界值进⾏测试的⼀种⿊盒测试⽅法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试⽤例来自等价类的边界。

边界值包含:边界值+次边界值

在这里插入图片描述

继续将上述⽤例通过边界值补充完整:
在这里插入图片描述

正交法

正交法的⽬的是为了减少⽤例数⽬。⽤尽量少的⽤例覆盖输⼊的两两组合。
正交试验设计(Orthogonal experimentaldesign)是研究多因素多⽔平的⼀种设计⽅法,它是根据正交性,由试验因素的全部⽔平组合中挑选出部分有代表性的点进⾏试验,通过对这部分试验结果的分析了 解全⾯试验的情况,找出最优的⽔平组合。正交试验设计是⼀种基于正交表的、⾼效率、快速、经济的试验。

下图是最简单的正交表----
在这里插入图片描述
正交表的性质:
• 每⼀列中,不同的数字出现的次数相等。
• 任意两列中数字的排列⽅式⻬全⽽且均衡

根据正交表的性质,⼀般⼈很难通过⼿动设计出正交表,正交法设计测试⽤例的步骤:

  1. 找到因素和⽔平

  2. ⽤allparis⼯具⽣成正交表
    a. 将因素和⽔平写⼊Excel表格中
    请添加图片描述

    b. allparis⽬录下创建新的⽂本⽂件new.txt,复制Excel中的因素和水 平,直接粘贴到⽂本中保存并退出

    c. 使用allparis命令⽣成正交表:allparis.exe new.txt>zhengjiao.txt
    在这里插入图片描述

  3. 根据正交表编写测试用例
    在这里插入图片描述

  4. 补充遗漏的重要测试用例
    在这里插入图片描述

判定表法

通过具体的方法能够将测试⽤例设计的更加完整和规范。
需求中会存在各种各样的场景,现在我们把需求改成如下的要求:
⽤户输⼊的账号中包含admin字符,或者通过内部链接进⼊注册页面,提交注册按钮成为管理员⾝份;反之⽆管理员⾝份。
通过这个需求可以看出,不同的组合操作可能对应不同的结果。采⽤正交法⽆法解决这样的问题。而正交法能够解决需要考虑输⼊之间的组合关系对应不同结果的场景。

根据判定表法设计测试⽤例的步骤:

  1. 确认需求中输⼊条件和输出条件
    在这里插入图片描述

  2. 找出输⼊条件和输出条件之间的关系
    在这里插入图片描述

  3. 画判定表
    在这里插入图片描述

  4. 根据判定表编写测试⽤例
    在这里插入图片描述

场景法

场景法就是⼀个常规的流程中,某些阶段可能会出现⼀些意想不到的情况,常规流程是基本流,从阶段中分析出来的不同情况被称之为备选流,场景法⽐较考验我们的发散思维。
在这里插入图片描述

根据场景法设计测试⽤例的步骤
1.确定基本流
2.确定备选流
3.根据备选流补充测试用例
4.编写测试⽤例

以前述邮箱注册为例:
在这里插入图片描述
在这里插入图片描述

错误猜测法

错误猜测法是对被测试软件设计的理解,过往经验以及个⼈直觉,推测出软件可能存在的缺陷,从⽽针对性地设计测试⽤例的⽅法。
这个⽅法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个⼈的经验和直觉。
错误推测法和⽬前流⾏的“探索式测试⽅法”的基本思想⼀致,这类⽅法在敏捷开发模式下的投⼊产出⽐很⾼,被⼴泛应⽤于测试。

这个⽅法的缺点是难以系统化,并且过度依赖个⼈能⼒。

在这里插入图片描述
注意:笔试的时候编写测试⽤例需要使⽤传统的编写方式,须完整写出测试用例以及必要要素。
面试的时候只需要按照思维导图模式说出测试⽤例。


最后,码字不易,如果觉得对你有帮助的话请点个赞吧,关注我,一起学习,一起进步!

这篇关于软件测试----用例篇(设计测试用例保姆级教程✅)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085624

相关文章

在线装修管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,装修队管理,用户管理,装修管理,基础数据管理,论坛管理 前台账户功能包括:系统首页,个人中心,公告信息,论坛,装修,装修队 开发系统:Windows 架构模式:B/S JDK版本:Java JDK1.8 开发工具:IDEA(推荐) 数据库版本: mysql5.7 数据库可视化工具: navicat 服务器:SpringBoot自带 ap

DDei在线设计器-API-DDeiSheet

DDeiSheet   DDeiSheet是代表一个页签,一个页签含有一个DDeiStage用于显示图形。   DDeiSheet实例包含了一个页签的所有数据,在获取后可以通过它访问其他内容。DDeiFile中的sheets属性记录了当前文件的页签列表。   一个DDeiFile实例至少包含一个DDeiSheet实例。   本篇最后提供的示例可以在DDei文档直接预览 属性 属性名说明数

基于Springboot + vue 的抗疫物质管理系统的设计与实现

目录 📚 前言 📑摘要 📑系统流程 📚 系统架构设计 📚 数据库设计 📚 系统功能的具体实现    💬 系统登录注册 系统登录 登录界面   用户添加  💬 抗疫列表展示模块     区域信息管理 添加物资详情 抗疫物资列表展示 抗疫物资申请 抗疫物资审核 ✒️ 源码实现 💖 源码获取 😁 联系方式 📚 前言 📑博客主页:

Steam邮件推送内容有哪些?配置教程详解!

Steam邮件推送功能是否安全?如何个性化邮件推送内容? Steam作为全球最大的数字游戏分发平台之一,不仅提供了海量的游戏资源,还通过邮件推送为用户提供最新的游戏信息、促销活动和个性化推荐。AokSend将详细介绍Steam邮件推送的主要内容。 Steam邮件推送:促销优惠 每当平台举办大型促销活动,如夏季促销、冬季促销、黑色星期五等,用户都会收到邮件通知。这些邮件详细列出了打折游戏、

比较学习难度:Adobe Illustrator、Photoshop和新兴在线设计平台

从入门设计开始,几乎没有人不知道 Adobe 公司两大设计软件:Adobe Illustrator和 Photoshop。虽然AI和PS很有名,有一定设计经验的设计师可以在早期探索和使用后大致了解AI和PS的区别,但似乎很少有人会系统地比较AI和PS。目前,设计软件功能多样,轻量级和网页设计软件已成为许多设计师的需求。对于初学者来说,一篇有针对性的AI和PS比较总结文章具有非常重要的指导意义。毕竟

X-AnyLabeling使用教程

1.AI 模型自动分割标注使用教程 2.AI 模型自动目标检测标注使用教程

基于Java医院药品交易系统详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W+,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码+数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人  Java精品实战案例《600套》 2023-2025年最值得选择的Java毕业设计选题大全:1000个热

青龙面板2.9之Cdle傻妞机器人编译教程

看到有的朋友对傻妞机器人感兴趣,这里写一下傻妞机器人的编译教程。 第一步,这里以linux amd64为例,去官网下载安装go语言安装包: 第二步,输入下方指令 cd /usr/local && wget https://golang.google.cn/dl/go1.16.7.linux-amd64.tar.gz -O go1.16.7.linux-amd64.tar.gz

青龙面板部署通用教程,含服务器、路由器、X86等部署方法

1. 拉取镜像/更新镜像 docker pull whyour/qinglong:latest 2. 删除镜像 docker rmi whyour/qinglong:latest 3. 启动容器 普通服务器 docker run -dit \-v $PWD/ql/config:/ql/config \-v $PWD/ql/log:/ql/log \-v $PWD/ql/db:

宝塔面板部署青龙面板教程【简单易上手】

首先,你得有一台部署了宝塔面板的服务器(自己用本地电脑也可以)。 宝塔面板部署自行百度一下,很简单,这里就不走流程了,官网版本就可以,无需开心版。 首先,打开宝塔面板的软件商店,找到下图这个软件(Docker管理器)安装,青龙面板还是安装在docker里,这里依赖宝塔面板安装和管理docker。 安装完成后,进入SSH终端管理,输入代码安装青龙面板。ssh可以直接宝塔里操作,也可以安装ssh连接