关于软件测试(4):闰年输入的判断以及非法输入的处理测试

针对这周的软件测试课程,讲解了非法输入的不正当处理会对程序造成不必要的损失,因此通过简单的闰年检测程序来处理关于闰年测试的非法输入。

一、需求分析

要求输入框输入年份,点击按钮,出现提示。并能有效的处理任何输入

二、测试用例

内容 取值 预期结果
被400整除 2000 是闰年
被100整除但不被400整除 1900 不是闰年
被4整除且不被100整除 1904 是闰年
不被4整除 1901 不是闰年
非数字字符 abc 非法输入
负数 -1234 非法输入
小数 2000.5 非法输入
空字符串 null 非法输入

三、代码实现 

以下只贴出关键的按钮代码,在visual studio里跑的程序。

private void button1_Click(object sender, EventArgs e)
        {
            String test = tb.Text;
            //tb.Text = a + "#";
            string regexString = @"^[0-9]\d*$";
            if (Regex.IsMatch(test, regexString))
            {
                label2.Text = "OK";
                int nian = int.Parse(test);
                if (nian % 400 == 0)
                    label2.Text = test + "年是闰年";
                else if(nian%100 ==0)
                    label2.Text = test + "年不是闰年";
                else if(nian%4==0)
                    label2.Text = test + "年是闰年";
                else
                    label2.Text = test + "年不是闰年";
            }
            else
                label2.Text = "请输入合法的年份";

        }

四、输出结果

   

五、问题解决方案

我使用正则表达式的方法避免了将字符串转化为数字时非法输入导致的输入错误,只有非负整数才能够进入转换的那一步。

欢迎大家批评指正。

时间: 2024-10-11 05:49:58

关于软件测试(4):闰年输入的判断以及非法输入的处理测试的相关文章

【软件测试】闰年问题(不考虑非法输入)

问题描述 输入年份,输出输入年份是否为闰年(不考虑非法输入) 一个年份是闰年的条件是: 该年份能被4整除但是不能被100整除或 该年份能被400整除 代码实现 import javax.swing.JOptionPane; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Pos; impo

闰年测试(非法输入的判断)

1. 问题描述: 输入一个年份,判断其是否为闰年,若为非法输入则给出提示 2. 问题分析: 闰年的判断: 1)输入一个年份,若它能被400整除,则它是闰年:若它能被4整除,且它不能被100整除,则它是闰年 由此判断,若它是闰年,则输出“该年是闰年”:否则,则输出“该年不是闰年” 2)若为非法输入,给出提示,则输出“输入不合法” 3. 测试用例: 编号 输入 期望输出 1 2004 该年是闰年 2    2000 该年是闰年 3 1900 该年不是闰年 4 200,. 输入不合法 4. 测试结果:

JAVA闰年测试与解决非法输入

问题实现 实现一个闰年测试的JAVA代码如下: package leapyear; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextFi

[软件测试学习]考虑到测试的代码编写/int.parse的非法输入—由一个简单的c#闰年检测程序说起

一个简单的C#的闰年检测程序 1.闰年检测的函数编写 当提起检测平年闰年时候,第一反应写出的代码 1 public static bool isLeapYear(int year){ 2 return ((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0)) 3 } 但是这个并不易于测试和出现错后的修改,更改代码如下 1 public static bool isLeapYear(int year){ 2 bool check = ne

软件测试第四周--闰年问题的非法输入处理

闰年的判断条件: ①.普通年能被4整除且不能被100整除的为闰年.②.世纪年能被400整除的是闰年③.对于数值很大的年份,这年如果能整除3200,并且能整除172800则是闰年.如172800年是闰年,86400年不是闰年 测试用例: 编号 输入 输出 1 2004 此年是闰年 2 2008 此年是闰年 3 2000 此年是闰年 4 1999 此年非闰年 5 1998 此年非闰年 6 -1200 非法输入 基本逻辑:#include<stdio.h>void main(){ int year,

【软件测试】考虑闰年问题中的非法输入

问题提出 在上一篇中提到了闰年问题的实现以及测试,但是在上篇中并没有提及输入框中如果输入非法输入会发生什么问题 观察如下,当我们在输入框中输入"ab"时: 会出现下面java.lang.NumberFormatException: java.lang.NumberFormatException: For input string: "ab" at java.lang.NumberFormatException.forInputString(Unknown Sourc

闰年测试处理非法输入

本周问题为:输入任意年份,判断是否为闰年. 判断是否为闰年,可以通过下面代码实现: public boolean ifLeapYear(int year) { if (year % 400 == 0) return true; else if (year % 100 == 0) return false; else if (year % 4 == 0) return true; else return false; } 然而,输入的年份是保存为string类型的,因此,这时候就要把输入的字符串转

关于闰年测试中非法输入的处理

在软件测试技术课当中我们进行了关于闰年的测试,闰年的测试方法如下所示: public static boolean isLeapYear(int year)        {             if (year % 400 == 0)                return true;             if (year % 100 == 0)                return false;             if (year % 4 == 0)         

闰年的非法输入的问题

1.问题描述 输入年份,判断其是否为闰年. 2.判断条件 1)能被4整除且不能被100整除的为闰年. 2)能被100整除且被400整除的为闰年. 3.等价类划分 编号 有效等价类 编号 无效等价类 1 能被400整除 3 能被100整除不能被4整除   2 能被4整除不能被100整除 4 不能被4整除 5 非法输入(包括负数) 4.测试用例 编号 输入 覆盖等价类 输出 1 1600 1 1600是闰年 2 2012 2 2012是闰年 3 1700 3 1700非闰年 4 2014 4 201