年月日软件测试用例的设计,实验三日期题白盒测试用例设计.doc

实验三日期题白盒测试用例设计

日期问题白盒测试用例的设计(实验时间2012.3.21)

一、实验目的

1.熟练掌握如何运用基路径测试方法进行测试用例设计。

二、实验内容

1、题目

前一日函数PreDate是NextDate的逆函数(代码实现见下),实现功能为:输入1800 年到2050 年之间的某个日期,函数返回这一天的前一天的日期。(此处不考虑无效输入)

请采用基路径方法对前一日函数进行测试用例设计。

代码:(被测函数为PreDate)

#include"stdio.h"

typedef struct MyDate{

int month;

int day;

int year;

}MyDate;

MyDate PreDate(MyDate date);

int Leapyear(int year);

void Print(MyDate date);

MyDate PreDate(MyDate date)

//输入日期有效性检查中其他模块实现,此处假设输入日期都是合法数据

{

1.MyDate yesterday;

2.yesterday.month = date.month; // initialization

3.yesterday.day = date.day;

4.yesterday.year = date.year;

5.int days_month[13]={0,31,0,31,30,31,30,31,31,30,31,30,31};

//初始化每月天数,其中2月不确定,初始化为0

6.if(date.day>1)

7.yesterday.day=date.day-1;

else

{

8.if(date.month==1)

{

9.yesterday.year=date.year-1;

10.yesterday.month=12;

11.yesterday.day=31;

}

12.else if(date.month==3)

{

13.if(Leapyear(date.year))

{

14.yesterday.month=2;

15.yesterday.day=29;

}

else

{

16.yesterday.month=2;

17.yesterday.day=28;

}

}

else

{

18.yesterday.month=date.month-1;

19.yesterday.day=days_month[date.month-1];

}

}

20.return yesterday;

}

21.int Leapyear(int year)

{

22.if((year%4==0&&year%100!=0) || (year%400==0))

23.return 1;

24.else return 0;

}

void Print(MyDate date)

{

25.printf("%d--%d--%d\n",date.year,date.month,date.day);

}

2、测试用例设计

1)控制流图

2)环路复杂度计算

圈复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测试数量的上界。独立路径必须包含一条在定义之前不曾用到的边。

对应上面图中的圈复杂度,计算如下:

流图中有五个区域;

V(G)=4个判定结点+1=5。

3)基本路径集设计

基本路径集为:

A.1、2、3、4、5、6、8、12、13、14、15、20、25

B.1、2、3、4、5、6、8、12、16、17、20、25

C.1、2、3、4、5、6、8、12、18、19、20、25

D.1、2、3、4、5、6、8、9、10、11、20、25

E.1、2、3、4、5、6、7、20、25

根据上面的独立路径,去设计输入数据,使程序分别执行到上面五条路径。

4)测试用例集设计

为了确保基本路径集中的每一条路径的执行,根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到,满足上面例子基本路径集的测试用例是:

2000-1-2 2000-1-1 2000-3-1

1999-3-1 1980-5-1

三、总结与体会

白盒测试是一种被广泛使用的逻辑测试方法,是由程序内部逻辑驱动的一种单元测试方法。只有对程序内部十分了解才能进 行

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

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

相关文章

机制 linux_从一道面试题谈linux下fork的运行机制

今天一位朋友去一个不错的外企面试linux开发职位,面试官出了一个如下的题目:给出如下C程序,在linux下使用gcc编译:#include "stdio.h"#include "sys/types.h"#include "unistd.h"int main(){pid_t …

p1417 烹调方案_Java 8的烹调方式–拼图项目

p1417 烹调方案什么是Project Jigsaw:Project Jigsaw是使Java编译器模块知道的项目。 多年以来,Java API一直是单块的,即从代码的任何部分都可以平等地看到整个API。 还没有任何方法可以声明代码对任何其他用户库的依赖关系。 拼图项目试图以…

jQuery progression 表单进度

progression.js是一款表单输入完成进度插件。支持自定义提示框大小、方向、左边、动画效果、间距等&#xff0c;也支持是否显示进度条、字体大小、颜色、背景色等。 在线实例 实例演示 使用方法 <form id"myform"> <p> <label>点击一个…

教学案例 计算机,宁夏计算机教学案例

宁夏计算机教学案例&#xff0c;答辩老师不仔细看**跟他们发现不了你**中的问题根本是两个概念。宁夏计算机教学案例&#xff0c; 生手指从未使用过计算机系统的学习者。他们不熟悉计算机的操作&#xff0c;缺乏有关计算机系统的知识。他们对计算机会产生一种陌生的感觉。新手指…

python读取多个文件夹图片_python或C++读取指定文件夹下的所有图片

本文实例为大家分享了python或C读取指定文件夹下的所有图片&#xff0c;供大家参考&#xff0c;具体内容如下1.python读取指定文件夹下的所有图片路径和图片文件名import cv2from os import walk,pathdef get_fileNames(rootdir):data[]prefix []for root, dirs, files in wal…

您在2016年会做什么? Apache Spark,Kafka,Drill等

让我们玩得开心。 这是新的一年的开始-我们正处于新事物的门槛上-因此让我们期待您在2016年可能会做的事情。现在我知道做出预测的风险&#xff0c;尤其是有记录的预测&#xff0c;但是我很高兴您能在一年后回访&#xff0c;看看我对2016年的预测是如何完成的。 您在2016年会…

话筒好坏测试软件,如何简单地判断麦克风的质量好坏?

如何简单地判断麦克风的质量好坏&#xff1f;麦克风质量好不好&#xff0c;主要看三点&#xff1a;咪芯&#xff0c;线材和外壳。在挑选麦克风时&#xff0c;我们通常都不会一一上手试用&#xff0c;而是通过它自身的规格参数来进行初步地判断&#xff0c;一般来说&#xff0c;…

怎么保证读取最新数据_Kafka怎么保证数据不丢失?

Kafka怎么保证数据不丢失&#xff1f;这个问题要从3个方面来保证数据不丢失&#xff1a;生产者、服务端、消费者。01producer 生产端是如何保证数据不丢失的1.ack的配置策略acks all (或-1)生产者在发送消息之后&#xff0c;需要等待ISR中所有的副本都成功写入消息之后才能够收…

取模和求余的区别

通常情况下取模运算(mod)和求余(rem)运算被混为一谈&#xff0c;因为在大多数的编程语言里&#xff0c;都用%符号表示取模或者求余运算。在这里要提醒大家要十分注意当前环境下%运算符的具体意义&#xff0c;因为在有负数存在的情况下&#xff0c;两者的结果是不一样的。对于整…

计算机转正述职报告ppt,转正述职报告ppt

转正要做述职演讲?出国留学网提供的新员工转正述职报告ppt就是为您量身定做的述职好帮手&#xff0c;希望大家喜欢!前三页预览&#xff1a;延伸阅读——如何做一个好的PPT演讲一个好的PPT演讲不是源于自然&#xff0c;有感而发。并且&#xff0c;一个好的PPT演讲需要演讲者的精…

怎么圆角变直角_衣柜设计个圆角有什么用?效果好看又实用,会这样装的都是老木工...

衣柜设计个圆角有什么用&#xff1f;效果好看又实用&#xff0c;会这样装的都是老木工随着生活水平的不断提高&#xff0c;大家对于生活质量也有着越来越高的期望。从生活起居以及房子的装修中&#xff0c;我们可以看出来。因此家里的东西堆积的也更加的多&#xff0c;这对于储…

不会吸引人的JavaDocs源样本

JavaDoc源代码嵌入很烂&#xff01; 我喜欢JavaDoc&#xff0c;但年龄不理想。 当您使用其他工具时&#xff08;例如在Microsoft世界中&#xff09;&#xff0c;突然间&#xff0c;嵌入式示例看起来很棒&#xff0c;并且“搜索”功能已内置&#xff01; 我们为什么不能拥有它…

浙大计算机硕士比本科985,二本出身的985研究生与985本科生,哪个更厉害?网友:差的太多!...

原标题&#xff1a;二本出身的985研究生与985本科生&#xff0c;哪个更厉害&#xff1f;网友&#xff1a;差的太多&#xff01;概率&#xff0c;还是概率问题。即便2本考研到985是很优秀&#xff0c;但能优秀到让985本科生服气的还是少数。说到底&#xff0c;是因为考研不是绝对…

cp: omitting directory解决方案

cp: omitting directory是因为目录下面还有目录。应该使用递归方法。需要加入-r参数。 及&#xff1a;cp -r 该目录名。转载于:https://www.cnblogs.com/zipon/p/6391153.html

python 网络服务器框架_Django是Python下的一款网络服务器框架

Django是Python下的一款网络服务器框架。Python下有许多款不同的框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。虽然Django之于Python&#xff0c;达不到Rail之于Ruby的一统江湖的地位&#xff0c;但Django无疑也是Python在网络应用方面的一位…

B系列台达服务器解密码步骤,台达HMI解密,DOP-A解密,DOP-B解密,文件密码解密

DOP-AS35THTD解密,DOP-AS38BSTD解密,DOP-AS57BSTD解密,DOP-A57BSTD解密,DOP-A57CSTD解密,DOP-A57GSTD解密,DOP-A80THTD1解密,DOP-A10TCTD解密,DOP-A10THTD1解密,DOP-AE57BSTD解密,DOP-AE57CSTD解密,DOP-AE57GSTD解密, DOP-AE80THTD解密,DOP-AE94BSTD解密,DOP-AE10THTD解密,DOP-…

Android View相关知识点

View 1,View坐标 Left,Right,Top,Bottom,表示view相对于父控件的距离值&#xff0c;是绝对值&#xff0c;绘制完之后就不会再改变的;X,Y表示view左上角相对于父控件的实时坐标值&#xff0c;是会随着移动view而改变的&#xff1b;TranslationX,TranslationY是view左上角相对于父…

5调用外部浏览器打开代码_浏览器事件循环

浏览器运行过程中会同时面对多种任务&#xff0c;用户交互事件(鼠标、键盘)、网络请求、页面渲染等。而这些任务不能是无序的&#xff0c;必须有个先来后到&#xff0c;浏览器内部需要一套预定的逻辑来有序处理这些任务&#xff0c;因此浏览器事件循环诞生了&#xff0c;再次强…

服务器生成文件怎么配置路径,npm run build生成的文件如何部署到服务器上

其实楼上两个人的回答都是对的&#xff0c;只不过侧重点不一样&#xff0c;一楼是大的方面说&#xff0c;配置好服务器就可以了&#xff0c;该怎么运行就怎么运行&#xff0c;只不过没有部署过项目的人可能就不知道怎么回事了&#xff1b;二楼说的应该是配置windos服务器的环境…

JVM上的高并发HTTP客户端

HTTP可能是最流行的应用程序级别协议&#xff0c;并且有许多库在网络I / O之上实现它&#xff0c;这是常规I / O的一种特殊&#xff08;面向流&#xff09;情况。 由于所有I / O都有很多共同点1 &#xff0c;所以让我们开始对其进行一些讨论。 我将集中讨论具有大量并发HTTP请…