(白盒测试)简单循环测试

简单循环测试

1.为什么要引入简单循环测试?

用来测试代码中的循环结构是否能正常执行 是否会少执行一次?多执行一次? 通过循环测试就可以得知

2.什么是简单循环?

没有嵌套的循环⇒简单循环

比如 单层的for循环 单层的while循环 单层的while循环 单层的do while循环

3.测试循环的基本步骤

  1. 确定要测试的代码
  2. 分析代码 画出流程图
    1. 找出循环
    2. 确定最大循环次数
  3. 确定七个要执行的循环次数
  4. 设计测试用例
  5. 编写测试代码 (根据设计好的测试用例)

4.被测程序代码

package com.jaylan.example.simple_cycle_test;
//求10以内阶乘
public class Factorial {public int getFactorial(int num) {int result =1;int i=1;//判断num是否在范围内if(num>=1&& num<=10){while(i<=num){result=result*i;i++;}System.out.println(num+"的阶乘="+result);}else{System.out.println("请输入1-10之间的整数!");result=0;}return result;}}

5.进行简单循环测试

5.1画出程序的流程

  • 分析代码弄清楚有哪里有循环 循环的最大次是多少

看代码可知最大的循次数为10 即n=10

image.png

  • 画出流程图的作用主要是找出循环以及确定循环的最大次数(确定n的值)

5.2填写循环次数表格

前面知道n=10 (最大循环次数)

一共要设计七个循环次数

循环次数0次1次2次m次n-1次n次n+1次
num的值012591011

image.png

Q:如何确定m的取值

2<m<n-1 (等价划分的思想)

Q: 明明最大循环次数为n次,为什么还要测试n+1次的情况?

测试n+1可以用来确定 循环是否会多执行一次 相当于测试越界后是否还能得到预期结果

5.3设计测试用例

测试用例编号输入(循环次数)预期结果
test0111的阶乘=1
test0222的阶乘=2
test0333的阶乘=6
test0455的阶乘=120
test0599的阶乘=362880
test061010的阶乘=3628800
test0711请输入1-10之间的整数!
  • 一共有需要七条测试用例

5.4编写测试代码

  • 根据设计好的测试用例编写测代码(对照上面设计好的测试用例)
package com.jaylan.example.simple_cycle_test;import static org.junit.Assert.*;import org.junit.Test;public class FactorialTest {Factorial factorial =new Factorial();//num=0时@Testpublic void test01() {int result=factorial.getFactorial(0);assertEquals(0,result);}//num=1时@Testpublic void test02() {int result=factorial.getFactorial(1);assertEquals(1,result);}//num=2时@Testpublic void test03() {int result=factorial.getFactorial(2);assertEquals(2,result);}//num=5时@Testpublic void test04() {int result=factorial.getFactorial(5);assertEquals(120,result);}//num=9时@Testpublic void test05() {int result=factorial.getFactorial(9);assertEquals(362880,result);}//num=10时@Testpublic void test06() {int result=factorial.getFactorial(10);assertEquals(3628800,result);}//num=11时@Testpublic void test07() {int result=factorial.getFactorial(11);assertEquals(0,result);}}
  • 运行结果

image.png

END 总结

  • 简答循环测试 针对的是 没有嵌套的循环(单层循环)
  • 在进行简单测试时需要设计七个循环值 其中包括n+1(测试边界情况)
  • 循环测试中包含 边界值测试的思想和等价划分的思想(m的取值)
  • 在进行循环测试之前需要弄明白 最大的循环次数n是多少(画出流程图)
  • 设计测用例后再写测试代码 有参照, 而不是一上来边写代码边设计测试用例

?descriptionFromFileType=function+toLocaleUpperCase()+{+[native+code]+}+File&mimeType=application/octet-stream&fileName=简单循环测试.md&fileType=undefined&fileExtension=md

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

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

相关文章

【Qt】鼠标拖拽修改控件尺寸---八个方位修改

前提 在开发一个类似qdesiger的项目中 使用QGraphicsProxyWidget将Qt基础控件作为item放在场景视图中显示和编辑 创建自定义类继承QGraphicsProxyWidget&#xff0c;管理控件 成员变量 有控件的xywh等&#xff0c;其中x、y坐标存储是基于最底层widgetitem的 坐标系 x轴以右为正…

anaconda指定目录创建环境无效/环境无法创建到指定位置

已经设置目录到D盘 创建环境时还是分配到C盘 可能是指定位置没有开启读写权限&#xff0c;如我在这里安装到了anaconda文件夹&#xff0c;则打开该文件夹的属性->安全->编辑 allusers下的权限全都打勾

【DAY05 软考中级备考笔记】线性表,栈和队列,串数组矩阵和广义表

线性表&#xff0c;栈和队列&#xff0c;串数组矩阵和广义表 2月28日 – 天气&#xff1a;阴转晴 时隔好几天没有学习了&#xff0c;今天补上。明天发工资&#xff0c;开心&#x1f604; 1. 线性表 1.1 线性表的结构 首先线性表的结构分为物理结构和逻辑结构 物理结构按照实…

动态规划之使用最小花费爬楼梯【LeetCode】

动态规划之使用最小花费爬楼梯 LCR 088. 使用最小花费爬楼梯解法1解法2 LCR 088. 使用最小花费爬楼梯 LCR 088. 使用最小花费爬楼梯 解法1 状态表示&#xff08;这是最重要的&#xff09;&#xff1a;dp[i]表示以第i级台阶为楼层顶部&#xff0c;到达第i层台阶的最低花费。 状…

LeetCode_Java_移除链表元素(题目+思路+代码)

203.移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5]思路&#xff1a;…

idea打包报错,clean、package报错

一、idea在打包时&#xff0c;点击clean或package报错如下&#xff1a; Error running ie [clean]: No valid Maven installation found. Either set the home directory in the configuration dialog or set the M2_HOME environment variable on your system. 示例图&#xf…

从0开始python学习-53.python中flask创建简单接口

目录 1. 创建一个简单的请求,没有写方法时默认为get 2. 创建一个get请求 3. 创建一个post请求&#xff0c;默认可以使用params和表单传参 4. 带有参数的post请求 1. 创建一个简单的请求,没有写方法时默认为get from flask import Flask, request# 初始化一个flask的对象 ap…

Python入门学习:if语句与条件控制--and、or、in、not in详解与实践

Python入门学习&#xff1a;if语句与条件控制–and、or、in、not in详解与实践 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1…

42.do...while语句

目录 一.什么是do...while语句 二.语法 三.执行流程图 四.举例 五.视频教程 一.什么是do...while语句 do...while语句也是循环语句&#xff0c;和while语句的区别是&#xff0c;while语句是先判断表达式&#xff0c;如果表达式成立才会执行循环体中的内容&#xff0c;否则…

【vmware安装群晖】

vmware安装群晖 vmware安装群辉&#xff1a; vmware版本&#xff1a;17pro 下载链接&#xff0c; https://customerconnect.vmware.com/cn/downloads/details?downloadGroupWKST-1751-WIN&productId1376&rPId116859 激活码可自行搜索 教程&#xff1a; https://b…

【数据结构(C语言)】排序详解

目录 文章目录 前言 一、排序的概念 1.1 排序的概念 1.2 常见的排序算法 二、插入排序 2.1 直接插入排序 2.1.1 基本思想 2.1.2 特性总结 2.1.3 代码实现 2.2 希尔排序 2.2.1 基本思想 2.2.2 特性总结 2.2.3 代码实现 三、选择排序 3.1 直接选择排序 3.1.1…

【技术杂谈】关于线程池在生产环境中的使用

欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址…

快讯|Tubi 更新内容库重新定义自己

在每月一期的 Tubi 快讯中&#xff0c;你将全面及时地获取 Tubi 最新发展动态&#xff0c;欢迎&#x1f31f;星标关注【比图科技】&#xff0c;一起成长变强&#xff01; Tubi 更新内容库&#xff0c;重新定义自己 Tubi 近日宣布为数千万用户免费提供备受观众喜爱、获奖无数的…

Python多线程编程:深入理解threading模块及代码实战【第99篇—Multiprocessing模块】

Python多线程编程&#xff1a;深入理解threading模块及代码实战 在Python编程中&#xff0c;多线程是一种常用的并发编程方式&#xff0c;它可以有效地提高程序的执行效率&#xff0c;特别是在处理I/O密集型任务时。Python提供了threading模块&#xff0c;使得多线程编程变得相…

林曦老师的新年礼物,送你三个学习锦囊

暄桐是一间传统美学教育教室&#xff0c;创办于2011年&#xff0c;林曦是创办人和授课老师&#xff0c;教授以书法为主的传统文化和技艺&#xff0c;皆在以书法为起点&#xff0c;亲近中国传统之美&#xff0c;以实践和所得&#xff0c;滋养当下生活。    在暄桐六阶读书课…

每日一题 2673使二叉树所有路径值相等的最小代价

2673. 使二叉树所有路径值相等的最小代价 题目描述&#xff1a; 给你一个整数 n 表示一棵 满二叉树 里面节点的数目&#xff0c;节点编号从 1 到 n 。根节点编号为 1 &#xff0c;树中每个非叶子节点 i 都有两个孩子&#xff0c;分别是左孩子 2 * i 和右孩子 2 * i 1 。 树…

K8S部署postgresql

&#xff08;作者&#xff1a;陈玓玏&#xff09; 一、前置条件 已部署k8s&#xff0c;服务端版本为1.21.14 二、部署postgresql 拉取镜像&#xff0c;docker pull postgres&#xff0c;不指定版本&#xff0c;自动从docker hub拉取最新版本&#xff1b;配置configmap&…

jetson nano——编译安装PySide2

目录 1.打开我提供的文件or官网自己下载&#xff08;需对应PyQt5的版本&#xff09;2.解压文件3.进入目录4.安装clang5. 编译安装6.报错: error: ‘NPY_ARRAY_UPDATEIFCOPY’ was not declared in this scope7.又报错&#xff1a;error: ‘NPY_ARRAY_UPDATEIFCOPY’ was not de…

4-Bean的循环依赖

Bean的循环依赖 循环依赖指的是依赖闭环的问题 解决 首先我们来实例化A&#xff0c;实例化A时并没有处理依赖注入&#xff0c;因此会得到半成品A。有了半成品A&#xff0c;它会被封装成一个ObjectFactory&#xff0c;并且把它放入第三个缓存区singletonFactories中。 接下来要…

Coursera吴恩达机器学习专项课程02:Advanced Learning Algorithms 笔记 Week02

Week 02 of Advanced Learning Algorithms 笔者在2022年7月份取得这门课的证书&#xff0c;现在&#xff08;2024年2月25日&#xff09;才想起来将笔记发布到博客上。 Website: https://www.coursera.org/learn/advanced-learning-algorithms?specializationmachine-learnin…