软件工程实验二----测试用例设计NEFU

这篇具有很好参考价值的文章主要介绍了软件工程实验二----测试用例设计NEFU。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验内容及结果:

题目:某程序的功能规格说明如下:输入一个日期(*年*月*日),通过计算输出该日期的前一天日期(比如,输入1999-3-6,则输出1999-3-5)。设所接收的输入日期的有效范围为1900年到2050年之间的某个日期。当输入日期无效时,输出日期值规定为:年为0,月和日与输入日期值相同(比如,输入1990-5-32,则输出0-5-32)。

1、编程实现上述功能。程序代码如下:

#include <stdio.h>
#include <stdlib.h>
int a=0,b=0,c=0;
int isrun(int year){
if(year%4==0&&year%100!=0||year%400==0)
    return 1;
else return 0;
}
int isrightimport(int year,int month,int day){
    if(day<1)return 0;
    if(month<1||month>12)return 0;
    if(year>2050||year<1900)return 0;
    if(month==2&&day>28||month==2&&day>29)return 0;
    if((month==4||month==6||month==9||month==11)&&day>30)return 0;
    if((month==1||month==3||month==5||month==8|month==10||month==12)&&day>31)return 0;
    return 1;
}
void predate(int year,int month,int day){
    if(isrightimport(year,month,day)==0){
        printf("0-%d-%d\n",month,day);
    }
    else{
        if(day>=2){
            printf("%d-%d-%d\n",year,month,day-1);
        }
        else{
            if(month==5||month==7||month==10||month==12){
                printf("%d-%d-%d\n",year,month-1,30);
            }
            else if(month==2||month==4||month==6||month==8||month==9||month==11)
            {
                printf("%d-%d-%d\n",year,month-1,31);
            }
            else if(month==3){
                if(isrun(year)==1)
                    printf("%d-%d-%d\n",year,2,29);
                else
                    printf("%d-%d-%d\n",year,2,28);
            }
            else if(month==1){
                printf("%d-%d-%d\n",year-1,12,31);
            }
        }
    }
}
int main()
{
    int i=0;
    char str[12],c;
    while(scanf("%s",str)){
    int year=0,month=0,day=0;
    while(str[i]!='-')
    {
        year=year*10+(str[i]-'0');
        i++;
    }
    i++;
    while(str[i]!='-'){
        month=month*10+(str[i]-'0');
        i++;
    }
    i++;
    while(str[i]!='\0'){
        day=day*10+(str[i]-'0');
        i++;
    }
    predate(year,month,day);
    i=0;
    }
    return 0;
}

2、根据功能规格说明,综合使用等价类划分法和边界值分析法,进行黑盒测试用例设计。并使用所设计的测试用例测试你的程序,最后对测试结果进行分析总结。

   (1)分析程序的功能规格说明,列出有效等价类和无效等价类,同时列出可能的边界情况;

  • 有效等价类及边界情况如下:

D1={2<=day<=本月的最后一天}

D2={一个月的第一天}//day=1;

D3={1月1日}//day=1 month=1;

M1={1=<month<=12}

M2={前一个月是30天}//month=5,7,10,12

M3{前一个月是31的月份}//month=2,4,6,8,9,11

M4={前一个月是二月份}//month=3

Y1={1900<=year<=2050}

Y2={平年}//2月份28天

Y3={闰年}//2月份29天

  • 无效等价类及边界情况如下:

D4={day<1}

D5={day>30,month=4,6,9.11}

D6={day>31,month=1,3,5,8,10,12}

D7={day>28,month=2,平年}

D8={day>29,month=2,闰年}

M5={month<1}

M6={month>12}

Y4={year<1900}

Y5={year>2050}

(3)设计测试用例覆盖所有的等价类及边界情况,并执行测试用例。根据执行结果分析程序的功能是否符合要求,完成下表:

  • 测试用例编号

    输入数据

    覆盖情况

    预期输出结果

    实际输出结果

    1

    2018-4-27

    有效等价类D1,M1,Y1

    2018-4-26

    2018-4-26

    2

    2018-4-1

    有效等价类D2,M1,M3,Y1

    2018-3-31

    2018-3-31

    3

    2018-1-1

    有效等价类D3,M1,Y1

    2017-12-31

    2017-12-31

    4

    2018-5-1

    有效等价类D2,M2,Y1

    2018-4-30

    2018-4-30

    5

    2018-3-1

    有效等价类D2,M4,Y2

    2018-2-28

    2018-2-28

    6

    2020-3-1

    有效等价类D2,M4,Y3

    2020-2-29

    2020-2-29

    7

    2018-4-0

    无效等价类D4

    0-4-0

    0-4-0

    8

    2018-4-32

    无效等价类D5

    0-4-32

    0-4-32

    9

    2018-0-27

    无效等价类M5

    0-0-27

    0-0-27

    10

    2018-13-27

    无效等价类M6

    0-13-27

    0-13-27

    11

    0-4-27

    无效等价类Y4

    0-4-27

    0-4-27

    12

    20000-4-27

    无效等价类Y5

    0-4-27

    0-4-27

    13

    2018-4-35

    无效等价类D6

    0-4-35

    2018-4-35

    14

    2018-2-29

    无效等价类D7

    0-2-29

    0-2-29

    15

    2020-2-30

    无效等价类D8

    0-2-30文章来源地址https://www.toymoban.com/news/detail-427076.html

    0-2-30

到了这里,关于软件工程实验二----测试用例设计NEFU的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《软件工程》课程四个实验的实验报告(《可行性研究与项目计划》《需求分析》《系统设计》《系统实现》)

    实验学时:     2        实验地点:        任意           实验日期:    12月15日          了解:软件项目可行性研究及项目计划的基本原理与方法; 掌握:Visio等工具进行可行性研究和制定项目计划。 图书管管理系统更便于对图书进行分类和管理,对借阅

    2024年02月03日
    浏览(30)
  • 软考:软件工程:面向对象技术与UML,时序图,用例图,类对象,封装,继承,多态

    提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 (1)自己的科研经历, 科研内容 ,学习的相关领域知识,要熟悉熟透了 (2)自己的实习经历,做了 什

    2024年02月11日
    浏览(41)
  • 软件质量保证与测试技术实验:白盒测试用例设计

    目录 前言 一、白盒测试 二、实验目的 三、实验内容 四、实验步骤 五、实验过程 题目一 1、程序流程图 2、测试用例​​​​​​​ 3、测试代码 4、测试结果 题目二 1、控制流图 2、独立路径集合 3、测试用例  4、测试代码  5、测试结果 总结 白盒测试是一种基于程序内部

    2024年02月04日
    浏览(37)
  • 【软件工程】软件测试

    软件=程序+文档 测试对象:各个阶段产生的源程序和文档。 基于不同的立场,对软件测试的目的存在着两种完全对立的观点。 (1)一种观点是通过测试暴露出软件中所包含的故障和缺陷(从用户的角度); (2)另一种是希望测试成为表明软件产品中不存在错误的过程,验证该

    2024年02月13日
    浏览(45)
  • 【软件工程】自动化测试保证卓越软件工程能力(3)

    对照目标系统,如下:  给出自动化测试平台目标如下: Case level Case brief Report send to OVERALL User 1 - Process - Customer 1 Boss Level 1 User 1 - Process - Customer 1 User 1 - Process - Customer  2 User  2  - Process - Customer 1 ... Manager, Some users, Developers, Testers Level 2 User 1 - Igeress - Process - Router - Sender 1

    2024年02月04日
    浏览(42)
  • 软件测试03:软件工程和软件生命周期

    软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。 基本软件危机对于计算机发展的阻碍,1968年,在联邦德国召开的国际会议,北大西洋公约组织的计算机科学家讨论软件危机问题。提出了 软

    2024年02月08日
    浏览(45)
  • 软件工程之软件测试(考试复习篇)

      理解软件危机,及其产生的原因。 软件危机:落后的软件生产技术难以满足增长的计算机需求。开发过程碰到的一系列问题。 产生原因:预算、速度、质量低、不能满足需求,混乱杂乱的,维护困难。 (2)软件测试定义: 为了发现错误。 (3)软件质量属性,ISO9126。 功

    2024年02月06日
    浏览(54)
  • 【软件工程】测试三-2

    软件测试的目的是()。 A. 试验性运行软件 B. 发现软件错误 C. 证明软件正确 D. 修改软件中出现的错误 正确答案: B 被测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测,这种测试称为()。 A. 白盒测试 B. 黑盒测试 C. 静态测试 D. 动

    2024年02月11日
    浏览(42)
  • 【软件工程】测试四

    结构化设计的目标是() A. 建立系统软件模型 B. 建立软件体系结构和详细的处理算法 C. 产生设计规格说明书 D. 以上全部 正确答案: D 总体设计不包括() A. 体系结构设计 B. 接口设计 C. 数据设计 D. 数据结构设计 正确答案: D 模块结构图中,如果两个模块之间有直线连接,

    2024年02月10日
    浏览(38)
  • 【软件工程】测试一

    软件产品与物质产品有很大的区别,软件产品是一种()产品。 A. 有形 B. 消耗 C. 逻辑 D. 文档 正确答案: C 在()年的NATO会议上,软件工程的术语被首次提出。 A. 1966 B. 1968 C. 1970 D. 1972 正确答案: B 软件开发中实现映射的基本手段是() A. 抽象 B. 分层 C. 隔离 D. 建模 下列

    2024年02月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包