软件测试 白盒测试案例--代码输入日期计算星期数

文章目录

  • 软件测试 白盒测试案例--代码输入日期计算星期数
    • 一、实验内容
    • 二、实验步骤
    • 三、实验结果

软件测试 白盒测试案例–代码输入日期计算星期数

一、实验内容

以下代码为输入日期计算星期数。对其代码进行白盒测试,设计测试用例。

import java.util.Scanner;
public class Calander {	/**	 * @param args 	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
			int Year, W;    //W星期
			int Month, Day;
			Scanner scan = new Scanner(System.in);
			System.out.println("Please enter the year:");
			Year = scan.nextInt();
			System.out.println("please input the month:");
			Month = scan.nextInt();
		  /*if(Month<=0||Month>=13)
		   *{
		   	 System.out.println("please input the month again");
			 Month = scan.nextInt();
			 }*/
			System.out.println("please input the day:");
			Day = scan.nextInt();
			/*if(Day<=0||Day>=31)
				{
					System.out.println("please input the date again");
					Day = scan.nextInt();
				}	*/		
					//System.out.println(Y);              
			int temp = ((Year - 1) + (Year - 1) / 4 - (Year - 1) / 100 + (Year - 1)/400)%7;   
//公元元年的第一天为周一。
	        //(year-1)/4-(year-1)/100+(year-1)/400计算闰年的个数
			W = temp%7+1;     //W用于计算今年第一天的星期
			int count = W;
			int day = 0;
			for(int m=1;m<=Month-1;m++) //i for month;
			{    	
				if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
				{
					day=31;
				}
				else if(m==4||m==6||m==9||m==11)
				{
					day=30;
				}
					else if(m==2)
						{  					
							if((Year%4==0&&Year%100!=0)||(Year%100==0&&Year%400==0))
								day=29;
							else
								day=28;
						}
				count+=day;
			}//count 合计本年已结束月份的总天数  
			 W=(count+Day-1)%7;
			 System.out.print(Year+"年"+Month+"月"+Day+"日"+"是星期");
			 switch(W)
			 	{
			 		case 1 :
			 			System.out.print("一");break;
			 		case 2 :
			 			System.out.print("二");break;
			 		case 3 :
			 			System.out.print("三");break;
			 		case 4 :
			 			System.out.print("四");break;
			 		case 5 :
			 			System.out.print("五");break;
			 		case 6 :
			 			System.out.print("六");break;
			 		case 0 :
			 			System.out.print("天");break;
			 	}
			 	System.out.print("。");
	}
}

二、实验步骤

  1. 使用VISIO等工具画出程序流程图;

  2. 画出程序控制流图;

  3. 列出可采用的圈复杂度计算方法,检查环路复杂度(圈复杂度);

  4. 根椐环路复杂度,设计相应测试用例。

  5. 确定覆盖率工具,给出上述程序代码的三种覆盖率的情况。

三、实验结果

  1. 绘制程序流程图;

    软件测试 白盒测试案例--代码输入日期计算星期数_第1张图片

  2. 绘制程序控制流图;

    软件测试 白盒测试案例--代码输入日期计算星期数_第2张图片

  3. 列出圈复杂度的计算过程;

    3.1 V(G) = 区域数量(由节点、连线包围的区域,包括图形外部区域)

    V(G) = 24

    3.2 V(G) = 简单可预测节点数量 + 1

    V(G) = 23 + 1 = 24

    (注:简单可预测节点——3,4,5,6,7,8,9,11,12,13,14,15,16,17,19,20,21,22,24,25,26,27,28)

    3.3 V(G) = 连线数量 - 节点数量 + 2

    V(G) = 55 - 33 + 2 = 24

  4. 提交相应的测试用例表,以及测试用例所对应的路径。

    软件测试 白盒测试案例--代码输入日期计算星期数_第3张图片

  5. 列出所使用的覆盖率工具以及选用的三种覆盖率标准,给出上述程序代码的三种覆盖率的测试情况。

    本次测试覆盖率环境为Intellij IDEA、windows 10,工具为JaCoCo。三种覆盖率标准分别为判定覆盖(DC)、判定—条件覆盖(CDC)、基本路径覆盖(BPC),具体测试情况如下所示。

    5.1 判定覆盖(DC)

    软件测试 白盒测试案例--代码输入日期计算星期数_第4张图片

    软件测试 白盒测试案例--代码输入日期计算星期数_第5张图片

    5.2 判定—条件覆盖(CDC)

    软件测试 白盒测试案例--代码输入日期计算星期数_第6张图片

    软件测试 白盒测试案例--代码输入日期计算星期数_第7张图片

    5.3 基本路径覆盖(BPC)

    软件测试 白盒测试案例--代码输入日期计算星期数_第8张图片 软件测试 白盒测试案例--代码输入日期计算星期数_第9张图片

你可能感兴趣的:(软件测试)