单元测试中测试用例的设计示例

2023-10-27

对于多个输入的被测试模块,可以通过正交排列和正交表选取具有代表性的测试用例。模块代码如下:

   int mySum(int a, int b, int c) {
        int aa, bb, cc
        if (a < 0) {
            aa = 0
        } else {
            aa = 1
        }
        if (b < 10) {
            bb = 0
        } else {
            bb = 1
        }
        if (c < 100) {
            cc = 0
        } else {
            cc = 1
        }
        aa + bb + cc
    }

我们先给每个输入参数划分等价类如下:

a: (-∞, 0)、[0, +∞)
b: (-∞, 10)、[10, +∞)
c: (-∞, 100)、[100, +∞)

说明每个参数至少需要选两种值,但是怎样的参数组合才能经济又实惠 呢?

如果将三个输入参数的进行全排列,一共需要222=8个测试用例。这叫做全面测试,这样的话,测试用例太多,所以需要选取最具代表性的组合才行,可以用正交排列和正交表选取。正交表原理如下:
在这里插入图片描述

单元测试中测试用例的设计示例插图
所以对于上面代码,最终选取的测试用例集合为:

  • (-1, -1, -1)
  • (-1, 11, 111)
  • ( 1, -1, 111)
  • ( 1, 11, -1)

项目中测试用例的设计

在实际项目中,等价类的划分,可以是具有某同一属性的对象。

例如,某个程序模块是根据用户的类型计算商品邮费,需要输入用户对象:因此我们可以将用户按照类型分为这几个等价类:普通用户、vip用户、访客用户。再分别从这三个等价类中选取一个测试用例即可。

多个输入因素影响的功能模块,可以根据正交排列选取测试用例的组合进行测试。

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

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

单元测试中测试用例的设计示例 的相关文章

  • Jmeter 性能-并发量计算

    并发概念 指网站在同一时间访问的人数 人数越大瞬间带宽要求更高 服务器并发量分为 业务并发用户数 最大并发访问数 系统用户数 同时在线用户数 估算业务并发量的公式 C nL T C C 3 C的平方根 说明 C是平均的业务并发用户数 n是l
  • 基于Loadrunner的性能分析及调优经验分享

    公司某个系统的微信端计划将开放给几百上千的人员登录查询 并且登录账号为同一账号多人使用 后台服务能够支撑起多用户的并发操作以及成百上千人登录微信端对生产数据库或者登录查询的性能效率高成为交付可靠生产环境的必要条件 因此 项目组决定提交测试
  • 新入职一个00后卷王,每天加班到2点,太让人崩溃了····

    在程序员职场上 什么样的人最让人反感呢 是技术不好的人吗 并不是 技术不好的同事 我们可以帮他 是技术太强的人吗 也不是 技术很强的同事 可遇不可求 向他学习还来不及呢 真正让人反感的 是技术平平 却急于表现自己的人 每天加班到12点 在老
  • 软件测试|SQLAlchemy环境安装与基础使用

    简介 SQLAlchemy 是一个强大的 Python 库 用于与关系型数据库进行交互 它提供了高度抽象的对象关系映射 ORM 工具 允许使用 Python 对象来操作数据库 而不必编写原生SQL查询 本文将介绍如何安装 SQLAlchem
  • ​LeetCode解法汇总83. 删除排序链表中的重复元素

    目录链接 力扣编程题 解法汇总 分享 记录 CSDN博客 GitHub同步刷题项目 https github com September26 java algorithms 原题链接 力扣 LeetCode 描述 给定一个已排序的链表的头
  • 盲猜你不懂H5架构和原生架构的区别

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 测开和测试平台是否有存在的必要?

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

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

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 月薪2W的软件测试工程师,到底是做什么的?

    在生活中 我们常常会遇到以下几种窘迫时刻 准备骑共享单车出行 却发现扫码开锁半天 车子都没有反应 手机导航打车 却发现地图定位偏差很大 司机总是跑错地方 买个水 却遭遇自动售货机吐币 或者不找零钱 好不容易休息打个游戏 却一直出现卡顿 闪退
  • Python常用的自动化小脚本!

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

    目前工作做软件测试工作8年 属于高级测试员那个级别吧 现在看到各行各业的人都在转行学习软件测试 想给大家一些学习建议和忠告 很多粉丝都跟我说今年行情很差 找不到工资 真的找不到工作了吗 我们常在网上看到的 程序员饱和 程序员过剩 其实一般是
  • 程序员找工作难!拿到外包公司的 offer 我应该去么?

    引言 前一阵子有一个帖子引起了非常广泛的讨论 描述的就是一个公司的外包工作人员 加班的时候因为吃了公司给员工准备的零食 被公司的HR当场批评 这个帖子一发出来 让现在测试行业日益新增的外包公司备受关注 那么外包公司和非外包公司有什么样的不一
  • 『力扣刷题本』:逆波兰表达式求值

    大家好久不昂 最近 1 个多月罗根一直在备考期末 文章发的很少 现在已经放寒假啦 学习自然也不能拉下 毕竟 4 月份就要去参加蓝桥杯了 先给自己定个小目标 日更 2 篇 咳咳 下面马上开始讲题 一 题目 给你一个字符串数组 tokens 表
  • 15:00面试,15:06就出来了,问的问题有点变态。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到9月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • Web自动化测试 —— capability参数配置

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

    先说一下自己的情况 本科生 20年通过校招进入广州某软件公司 干了接近3年的 功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了3年的功能测试 已经让我变得不思进取 谈了2年的女朋
  • 一文从0到1手把手教学UI自动化测试之数据驱动!

    在UI的自动化测试中 我们需要把测试使用到的数据分离到文件中 如果单纯的写在我们的测试模块里面 不是一个好的设计 所以不管是什么类型的自动化测试 都是需要把数据分离出来的 当然分离到具体的文件里面 文件的形式其实有很多的 这里主要说明JSO
  • 2024最强Java面试八股文合集(持续更新)

    今天要谈的主题是关于求职 求职是在每个技术人员的生涯中都要经历多次 对于我们大部分人而言 在进入自己心仪的公司之前少不了准备工作 有一份全面细致 面试题 将帮助我们减少许多麻烦 在跳槽季来临之前 特地做这个系列的文章 一方面帮助自己巩固下基
  • 用Python实现高效数据记录!Web自动化技术助你告别重复劳动!

    自动化关键数据记录 简介 关键数据记录是 Web 自动化测试中的关键部分 它们提供了关于系统行为和执行过程的详细信息 有助于验证用例的正确性 排查问题和确保应用程序的质量 行为日志 行为日志是一种用于记录系统或应用程序的操作和事件的技术 它

随机推荐

  • 使用Eclipse中提供的Refactor(重构)工具提取接口

    最近用到网络编程方面的知识 在网上看到帖子 Java Nio的Socket服务端编写 想跑一下提供的代码 但是在 Eclipse 中创建了对应的类 把代码粘贴进去却发现少了一个接口 TCPProtocol 的定义 代码如下 import j
  • gethibernatetemplate的find方法使用说明

    为什么使用gethibernatetemplate的find方法 一般我们 访问数据库 有两种选择 getSession createQuery from Area getHibernateTemplate find FROM Area 一
  • 按照从右向左的阅读顺序,返回一个不含重复数字的新的整数

    描述 输入一个 int 型整数 按照从右向左的阅读顺序 返回一个不含重复数字的新的整数 保证输入的整数最后一位不是 0 数据范围 1 n 10的8次方 输入描述 输入一个int型整数 输出描述 按照从右向左的阅读顺序 返回一个不含重复数字的
  • Centos8安装VirtualBox任意版本

    一 执行以下命令并启用 VirtualBox 和 EPEL 包仓库 dnf config manager add repo https download virtualbox org virtualbox rpm el virtualbox
  • requests介绍_2.02

    requests在本文件中的1 26中有涉及到 一 什么是requests库 requests 是用于http请求的模块 比urllib更加方便 二 requests主要功能 1 requests request 先看一下requests库
  • samba访问window共享 解决中文乱码

    samba访问window共享 解决中文乱码 File systems gt Native language support gt lt gt Simplified Chinese charset CP936 GB2312 lt gt NL
  • LL(1)分析法(一) ——文法预处理以及FIRST集FOLLOW集求解(编译原理)

    LL 1 分析法 预期达到目标 对给定文法 求出各个非终结符的FIRST集 FOLLOW集 根据给定文法建立LL 1 分析表 对输入的表达式符号串能够给出分析过程输出分析结果 LL 1 预测分析程序整体流程 一些初始设定 name sour
  • SM2算法原理及实现

    2019独角兽企业重金招聘Python工程师标准 gt gt gt RSA算法的危机在于其纯在压指数算法 对ECC算法而言一般没有亚指数攻击算法 SM2椭圆曲线公钥密码算法 我国自主知识产权的商用密码算法 是ECC Elliptic Cur
  • 解决jar包冲突

    Jar包冲突是老生常谈的问题 几乎每一个Java程序猿都不可避免地遇到过 并且也都能想到通常的原因一般是同一个Jar包由于maven传递依赖等原因被引进了多个不同的版本而导致 可采用依赖排除 依赖管理等常规方式来尝试解决该问题 但这些方式真
  • databinding include 控件空指针_某大学C语言期末复习题及答案-1:数组和指针

    闲来无事 做做别人家的期末试题 没有答案 自己做的 可能有错 欢迎指正 单选题 include void fun int s int n1 int n2 int i j t i n1 j n2 while i 程序的运行结果是 单选题 单选
  • 大数据技术原理与应用(第八章HBase测试)

    一 选择题 1 不是HBASE的特点 A 大 B 稀疏 C 面向列 D 面向行 2 列族是 的集合 A 列 B qualifier C RowKey D 值 3 是HBASE存储的核心 A Storage B Store C StoreFi
  • Python2 ValueError: chr() arg not in range(256)?

    代码 for i in range 0x4E00 0x4E10 print chr i 错误提示 ValueError chr arg not in range 256 原因 因为Python2问题编码问题导致 解决办法 使用unichr代
  • #Flutter 裁剪布局之 ClipRect、ClipRRect、ClipOval、ClipPath、CustomClipper

    Flutter 裁剪布局之 ClipRect ClipRRect ClipOval ClipPath CustomClipper 文章目录 裁剪布局 ClipRect ClipRRect ClipOval ClipPath 及 Custom
  • 特征工程(四)HashingVectorizer

    将原始数据的word特征数字化为hash特征 并将结果保存到本地 article特征可做类似处理 import pandas as pd from sklearn feature extraction text import Hashing
  • SDNE(Structural Deep Network Embedding )的原理,实现与应用

    文章目录 SDNE基本思想 二阶相似度 无监督 一阶相似度 有监督 核心代码 库实现 应用 阿里凑单算法 SDNE基本思想 SDNE Structural Deep Network Embedding 主要目标是保持网络的一阶相似性和二阶相
  • Unity小地图的放大缩小

    继续承接上篇内容 本篇讲述小地图的放大和缩小功能 如下图 点击 按钮可以放大地图 点击 按钮可以缩小地图 更多内容关注 unity风雨路 上一篇中我们已经讲过小地图的UI结构图 此处不再赘述 如图 我们只需在此基础上给 符号等image图全
  • Linux下C++定时器的使用

    LInux下C 定时器的使用 include
  • 图像分类之花卉图像分类(一)数据增强

    网上有很多图像分类的代码 有很多是必须要在GPU上面才能跑的 因为我想在自己的电脑跑 所以很多都是不能用的 而且说实话很多对我这个小白来说 都很难看懂 所以我找了一个就是之间用CNN写的神经卷积模型用来进行花卉识别 其中主要参考了以下的博主
  • Stable Diffusion 安装

    一 安装 GPU 驱动 CPU 环境跳过这一步 手动安装GPU驱动参考 https docs nvidia com datacenter tesla tesla installation notes index html spm a2c4g
  • 单元测试中测试用例的设计示例

    对于多个输入的被测试模块 可以通过正交排列和正交表选取具有代表性的测试用例 模块代码如下 int mySum int a int b int c int aa bb cc if a lt 0 aa 0 else aa 1 if b lt 1