白盒测试:NextDate的基本路径覆盖法以及测试用例设计

程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12、1≤day≤31、1900≤ year ≤2050。),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上下一天的日期。例如,输入为2005年11月29日,则该程序的输出为2005年11月30日。

一:测试用例设计。

被测代码:

/**Created by IntelliJ IDEA.User: StarfallDate: 2022/11/16Time: 18:10*/
public class GetNextDay {public static String getNextDay(int year, int month, int day){//闰年、平年每月的天数int[][] days={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};int index;if(1900 <= year && 2050>= year ) {if(year%4==0 && year%100!=0 || year%400==0)index = 1;//index=0:平年,index=1:闰年elseindex = 0;}else return "输入日期不正确";//判断输入日期是否正确if( month<1 || month>12 || day>days[index][month-1]|| day<1)return "输入日期不正确";//小于当前月份的天数if(day < days[index][month-1])day++;else{if(month==12){year++;month=1;}else{month++;}day=1;}return year + "-" + month + "-" + day;}
}

1、画出当前程序流程图:

2、根据程序流程图画出控制流图:

3、计算环路复杂度:

1)根据区域计算:V(G)=12

2)根据边数和节点数计算:V(G)=E-N+2=29-19+2=12

3)根据判断节点数计算:V(G)=P+1=11+1=12

4、确定独立路径集合:

独立路径条数为V(G),即为12条:

路径1:1-2-3-7-19

路径2:1-2-7-19

路径3:1-2-3-4-5-8-10-7-19

路径4:1-2-3-4-6-8-10-7-19

路径5:1-2-3-4-6-9-10-7-19

路径6:1-2-3-4-5-6-8-10-7-19

路径7:1-2-3-4-6-8-10-11-7-19

路径8:1-2-3-4-6-8-10-11-12-7-19

路径9:1-2-3-4-6-8-10-11-12-13-7-19

路径10:1-2-3-4-6-8-10-11-12-13-14-15-19

路径11:1-2-3-4-6-8-10-11-12-13-14-16-17-19

路径12:1-2-3-4-6-8-10-11-12-13-14-16-18-19

二:用设计的测试用例测试程序。

1、根据基本路径,准备测试用例:

2、编写测试程序:

GetNextDayTest代码:

import org.junit.Assert;
import org.junit.Test;/**Created by IntelliJ IDEA.User: StarfallDate: 2022/11/16Time: 18:16*/public class GetNextDayTest {@Testpublic void GetNextDaytest01() {String GetNextDate = GetNextDay.getNextDay(2051,1,1);Assert.assertEquals("输入日期不正确", GetNextDate);System.out.println("GetNextDaytest01:"+GetNextDate);}@Testpublic void GetNextDaytest02() {String GetNextDate = GetNextDay.getNextDay(1800,10,10);Assert.assertEquals("输入日期不正确", GetNextDate);System.out.println("GetNextDaytest02:"+GetNextDate);}@Testpublic void GetNextDaytest03() {String GetNextDate = GetNextDay.getNextDay(2020,11,31);Assert.assertEquals("输入日期不正确", GetNextDate);System.out.println("GetNextDaytest3:"+GetNextDate);}@Testpublic void GetNextDaytest04() {String GetNextDate = GetNextDay.getNextDay(2000,11,31);Assert.assertEquals("输入日期不正确", GetNextDate);System.out.println("GetNextDaytest04:"+GetNextDate);}@Testpublic void GetNextDaytest05() {String GetNextDate = GetNextDay.getNextDay(1900,2,29);Assert.assertEquals("输入日期不正确", GetNextDate);System.out.println("GetNextDaytest05:"+GetNextDate);}@Testpublic void GetNextDaytest06() {String GetNextDate = GetNextDay.getNextDay(2022,2,30);Assert.assertEquals("输入日期不正确", GetNextDate);System.out.println("GetNextDaytest06:"+GetNextDate);}@Testpublic void GetNextDaytest07() {String GetNextDate = GetNextDay.getNextDay(2022,0,0);Assert.assertEquals("输入日期不正确", GetNextDate);System.out.println("GetNextDaytest07:"+GetNextDate);}@Testpublic void GetNextDaytest08() {String GetNextDate = GetNextDay.getNextDay(2022,13,11);Assert.assertEquals("输入日期不正确", GetNextDate);System.out.println("GetNextDaytest08:"+GetNextDate);}@Testpublic void GetNextDaytest09() {String GetNextDate = GetNextDay.getNextDay(2022,11,0);Assert.assertEquals("输入日期不正确", GetNextDate);System.out.println("GetNextDaytest09:"+GetNextDate);}@Testpublic void GetNextDaytest10() {String GetNextDate = GetNextDay.getNextDay(2022,11,10);Assert.assertEquals("2022-11-11", GetNextDate);System.out.println("GetNextDaytest10:"+GetNextDate);}@Testpublic void GetNextDaytest11() {String GetNextDate = GetNextDay.getNextDay(2022,12,31);Assert.assertEquals("2023-1-1", GetNextDate);System.out.println("GetNextDaytest11:"+GetNextDate);}@Testpublic void GetNextDaytest12() {String GetNextDate = GetNextDay.getNextDay(2022,10,31);Assert.assertEquals("2022-11-1", GetNextDate);System.out.println("GetNextDaytest12:"+GetNextDate);}}

三:记录测试结果。

1、运行测试:

2、运行覆盖测试:

白盒测试——NextDate函数测试(基本路径覆盖法)相关推荐

  1. 黑盒测试——nextDate函数测试(等价类划分法、边界值分析法、判定表驱动法)

    实验目的 (1)掌握应用黑盒测试技术进行测试用例设计. (2)掌握对测试用例进行优化设计方法. 实验内容 日期问题 测试以下程序:该程序有三个输入变量month.day.year(month.day和 ...

  2. 白盒测试用例设计----基本路径覆盖法

    转载至:https://blog.csdn.net/xieminyao123/article/details/79133449

  3. 白盒测试---基本路径覆盖法

    转载自:https://blog.csdn.net/xieminyao123/article/details/79133449 白盒测试的测试方法有代码检查法.静态结构分析法.静态质量度量法.逻辑覆盖 ...

  4. 黑盒测试——NextDate函数测试(判定表驱动法)

    黑盒测试:NextDate的判定表驱动法及测试用例设计 程序有三个输入变量month.day.year(month.day和year均为整数值,并且满足:1≤month≤12.1≤day≤31.190 ...

  5. 语句覆盖、分支覆盖、谓词测试和路径覆盖

    目录 语句覆盖 分支覆盖(判定覆盖) 谓词测试 原子谓词覆盖(条件覆盖) 分支-谓词覆盖(判定条件覆盖或分支条件覆盖) 复合谓词覆盖(条件组合覆盖) 路径覆盖 包含关系 语句覆盖 "语句覆盖 ...

  6. 单元测试基本路径覆盖法(转)

    http://blog.csdn.net/zzzmmmkkk/article/details/4288980 转载于:https://www.cnblogs.com/orchid-sky/p/3808 ...

  7. nextdate函数白盒测试问题 软件测试_nextdate白盒测试用例

    日期问题白盒测试用例的设计( 日期问题白盒测试用例...题目 前一日函数PreDate是NextDate的逆函数(代码...请采用基路径方法对前一日函数进行测试用例设计. 代码...... NEXTD ...

  8. 【无标题】逻辑覆盖-路径覆盖(白盒测试)

    本关任务:以闯关的模式,让学生在自己设计测试用例的过程中一步一步掌握逻辑覆盖的各个等级. 相关知识 路径覆盖 定义 路径覆盖(Path Coverage)的含义是,选取足够多的测试用例,覆盖程序中所有 ...

  9. 软件测试(基本路径测试、环形复杂度、路径覆盖)

    程序集中独立路径的确定方法 如图所示的控制流图,采用基本路径测试法,给出此程序的基本集: 环形复杂性是一种为程序逻辑复杂性提供定量测量的软件度量.当该度量用于基本路径测试方法,计算所得的值给出了程序基 ...

最新文章

  1. Python 类—类属性(私有属性、公有属性、实例属性、局部变量)类方法(实例方法、静态方法)
  2. sublime配置全攻略
  3. Halcon资料:image,region,xld三者如何转化和保存
  4. php加密解密p源码可以吗,论 如何做好PHP的加密解密呐,源码教学
  5. 一文彻底搞懂快速幂(原理、实现、矩阵快速幂)
  6. 如何使用matlab得出pid控制参数值,基于MATLAB的PID控制器参数整定及仿真
  7. 学习C++/C的宏与for循环的结合
  8. 中国工程院院士和科学院院士有什么区别,谁贡献很大却没有入院士?
  9. 连肝7个晚上,总结了66条计算机网络的知识点
  10. caffe自带可运行的两个例子:mnist和cifar10
  11. navicat premium 快捷键
  12. R语言 dataframe 取指定行列filter 随机取数
  13. 微软project服务器搭建,Project Server 2013 安装和部署概述
  14. 【QA】数学符号 word输入问题 在word里面怎么输入字母头顶上的那个小尖儿
  15. 离开华为三年,我才真正认同狼性文化
  16. SVD因式分解实现协同过滤-及源码实现
  17. Java实现ES增删改查
  18. 获取 DOM 实际宽度 offsetWidth | 文本宽度 measureText
  19. 记录一次hadoop的空间清理
  20. 分享一个安卓串口调试助手支持OTG(OTG接USB转TTL)

热门文章

  1. 分解质因数(java解决)
  2. 百事可乐大玩黑罐只换不卖
  3. DM9006 linux driver
  4. Dubbo解析及原理浅析
  5. SP8266搭建简易web
  6. 【操作系统】进程-哲学家进餐问题
  7. 如何复制360doc个人图书馆的文章?
  8. sdk+windows安装教程
  9. jQuery-Ajax的使用
  10. 【Linux命令】ip addr、ip link、ifconfig 用法 二