实验二+124+高小娟

Posted 高小娟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验二+124+高小娟相关的知识,希望对你有一定的参考价值。

一、实验目的

掌握基于覆盖理论与基本路径的基本白盒测试方法和实践

二、实验要求

运用逻辑覆盖测试的覆盖准则设计被测程序的测试用例,并运行测试用例检查程序的正确与否,给出程序缺陷小结。

三、实验内容

(1) 被测原代码

 1 package 软件测试实验1;
 2 import java.util.Scanner;
 3 
 4 public class NextDate {
 5     //nextdate函数
 6     public static String nextdate(int month,int day,int year){
 7         int isleap[]={31,29,31,30,31,30,31,31,30,31,30,31};
 8         int noleap[]={31,28,31,30,31,30,31,31,30,31,30,31};
 9         int m,d,y;
10         
11         if (month<1 || month>12){
12             return "月份超出范围";
13         }
14         if (day<1 || day>31){
15             return "日期超出范围";
16         }
17         if (year<1912 || year>2050){
18             return "年份超出范围";
19         }
20         if ((year%4==0 && year%100!=0) || year%400==0){//闰年
21             if (day<isleap[month-1]){
22                 d = day+1;
23                 m = month;
24                 y = year;
25             } 
26             else if (day==isleap[month-1]){//该月的最后一天
27                 d=1;
28                 if (month==12){//一年的最后一天
29                     m = 1;
30                     y = year+1;
31                 }
32                 else{
33                     m = month+1;
34                     y = year;
35                 }
36             }
37             else{//针对31天以内,但是超出该月最大天数
38                 return "日期超出范围";
39             }    
40         }
41         else{//非闰年
42             if (day<noleap[month-1]){
43                 d = day+1;
44                 m = month;
45                 y = year;
46             } 
47             else if (day==noleap[month-1]){//该月的最后一天
48                 d = 1;
49                 if (month==12){//一年的最后一天    
50                     m = 1;
51                     y = year+1;
52                 }
53                 else{
54                     m = month+1;
55                     y = year;
56                 }
57             }
58             else{//针对31天以内,但是超出该月最大天数
59                 return "日期超出范围";
60             }
61         }
62         return y + "年" + m + "月" + d + "日";
63     }
64     
65     public static void main(String[] args) {
66         
67         while(true){
68             
69             System.out.println("1、请输入日期(格式:月  日  年)");
70             System.out.println("2、退出");
71             System.out.println("请输入序号 :");
72             Scanner scan = new Scanner(System.in);
73             String num = scan.next();
74             if(num.equals("1")){
75                 if(scan.hasNextInt()){
76                     int   m = scan.nextInt();
77                     int   d = scan.nextInt();
78                     int   y = scan.nextInt();    
79                     System.out.println(nextdate(m,d,y));
80                 }
81                 else{
82                     System.out.println("输入格式错误!!!");
83                 }
84             }
85             else if(num.equals("2")){
86                 scan.close();
87                 System.out.println("谢谢使用!");
88                 break;
89             }
90         }    
91         
92     }
93 }

(2)依据覆盖技术,测试用例列表

a.程序图:

b.DD-路径图:

DD-路径(只压缩链路经)

程序图节点

DD-路径

6

A

11

B

12

C

14

D

15

E

17

F

18

G

20

H

21

I

222324

J

26

K

27,28

L

29,30

M

32,33,34

N

37,38

O

41,42

P

43,44,45

Q

47

R

48,49

S

50,51

T

53,54,55

U

58,59

V

62

W

63

X

c.测试用例表:

(I)语句覆盖:

ABCX

ABDEX

ABDFGX

ABDFHIJWX

ABDFHIKLMWX

ABDFHIKLNWX

ABDFHIKOX

ABDFHPQWX

ABDFHPRSTWX

ABDFHPRSUWX

ABDFHPRVWX

 

测试用例:

用例ID

输入值

执行路径

预期输出

实际输出

 

 

 

U01

-1

7

2009

ABCX

月份超出范围

月份超出范围

U02

5

32

2009

ABDEX

日期超出范围

日期超出范围

U03

5

7

1911

ABDFGX

年份超出范围

年份超出范围

U04

2

28

2008

ABDFHIJWX

2008229

2008229

U05

12

31

2008

ABDFHIKLMWX

200911

200911

U06

2

29

2008

ABDFHIKLNWX

200831

200831

U07

2

30

2008

ABDFHIKOX

日期超出范围

日期超出范围

U08

5

5

2009

ABDFHPQWX

200956

200956

U09

12

31

2009

ABDFHPRSTWX

201011

201011

U10

2

28

2009

ABDFHPRSUWX

200931

200931

U11

2

29

2009

ABDFHPRVWX

日期超出范围

日期超出范围

(II)分支覆盖(判断覆盖):

ABCX (左)

ABDEX (右—左)

ABDFGX (右—右—左)

ABDFHIJWX (右—右—右—左—左)

ABDFHIKLMWX (右—右—右—左—右—左—左)

ABDFHIKLNWX (右—右—右—左—右—左—右)

ABDFHIKOX (右—右—右—左—右—右)

ABDFHPQWX (右—右—右—右—左)

ABDFHPRSTWX (右—右—右—右—右—左—左)

ABDFHPRSUWX (右—右—右—右—右—左—右)

ABDFHPRVWX (右—右—右—右—右—右)

 

测试用例:

用例ID

输入值

执行路径

预期输出

实际输出

 

 

 

U01

-1

7

2009

ABCX

月份超出范围

月份超出范围

U02

5

32

2009

ABDEX

日期超出范围

日期超出范围

U03

5

7

1911

ABDFGX

年份超出范围

年份超出范围

U04

2

28

2008

ABDFHIJWX

2008229

2008229

U05

12

31

2008

ABDFHIKLMWX

200911

200911

U06

2

29

2008

ABDFHIKLNWX

20083以上是关于实验二+124+高小娟的主要内容,如果未能解决你的问题,请参考以下文章

Huawei VRRP+MSTP组网实验-ensp

DHCP中继服务

DHCP中继服务

华为eNSP动态路由OSPF小实验二

华为eNSP动态路由OSPF小实验二

[NTUSTISC pwn LAB 7]Return to libc实验(puts泄露libc中gadget片段定位)

(c)2006-2024 SYSTEM All Rights Reserved IT常识