等价类测试与决策表测试

问题:输入年月日year、month、day,其中年份的有效取值范围为[1818,2018],请输出输入日期的前一天,例如输入2018年9月18日,输出为2018年9月17日。若输入日期非法,例如输入2013年2月30日,则输出“输入日期不存在”,若输入日期超出取值范围,例如输入2013年9月32日,则输出“输入日期超出范围”。

试采用决策表测试方法(弱健壮等价类测试)对上述问题设计等价类、决策表,并给出相应测试用例。

注意:要给出详细分析及设计过程。

解:

 采用弱健壮性等价类测试设计

  弱健壮性等价类测试要求:对于有效输入,使用每一个有效类的一个值,对于无效输入,测试用例将拥有一个无效值,并保持其余的值都是有效的。根据确定等价类的原则:

  1. 输入条件规定了取值范围,或者值的个数,则可以确定一个有效等价类和两个无效等价类。
  2. 规定了输入数据的一组值,而且程序要对每一个输入值分别进行处理,这时要对每一个规定的输入值确立一个等价类,而对于这组值之外的所有值确立一个等价类
  3. 规定了输入数据必须遵守的规则,则可以确立一个有效等件类(即遵守规则的数据)和若干无效等价类
  4. 确知以划分的等价类中的各元素在程序中的处理方式不同,则应进一步划分成更小的等价类.

等价类划分:

有效等价类:基于输入域:

D1={day:1<=day<=28}; D2={day:day=29} ;  

D3={day:day=30} ,D4={day:day=31}

Y1={year:1818<=year<=2018;且year是平年}

Y2={year:1818<=year<=2018;且year是闰年}

            M1={monthmonth有30天};M2={monthmonth有31天,除去12月}

            M3={monthmonth为12月};M4={monthmouth是2月}

            基于输出域;

            P1={“输入日期不存在”}

            P2={“输入日期超出范围}

P3={“输出正常前一天”}

无效等价类:

M8={mouth:mouth<1},M9={mouth:mouth>12};

D8={day:day<1},D9={day:day>31};

Y8={year:year<1818}、Y9={year;year>2018};

根据等价类:列出条件桩与动作桩

条件桩:

“日”在D1中、“日”在D2中、“日”在D3中、“日”在D4中、“日”在D8中、

“日”在D9中

“年”在Y1中、“年”在Y2中、“年”在Y8中、“年”在Y9中

“月”在M1中、“月”在M2中、“月”在M3中、“月”在M4中、“月”在M8中

“月”在M9中.

动作桩:

 P1、P2、P3。

结合弱等价类健壮性测试以及决策表设计测试用例如下。

“-”代表取不到值,因为有些条件互斥。很容易看出这是带有互斥条件的决策表。

决策表:每一列代表一个测试用例。

序号

1

2

3

4

5

6

7

8

9

10

 

 

 

 

 

 

 

 

条件

Y1

1

1

-

-

1

-

-

-

-

-

Y2

-

-

1

1

-

1

-

-

1

1

Y8

-

-

-

-

-

-

1

-

-

-

Y9

-

-

-

-

-

-

 

1

-

-

M1

-

1

-

1

-

-

1

1

1

1

M2

-

-

1

-

-

-

-

-

-

-

M3

1

-

-

-

-

-

-

-

-

-

M4

-

-

-

-

-

-

-

-

-

-

M8

-

-

-

-

1

-

-

-

-

-

M9

-

-

-

-

-

1

-

-

-

-

D1

-

-

1

-

-

-

-

-

-

-

D2

-

-

-

-

-

-

-

-

-

-

D3

-

1

-

1

1

1

1

1

-

-

D4

1

-

-

-

-

-

-

-

-

-

D8

-

-

-

-

-

-

-

-

1

-

D9

-

-

-

-

-

-

-

-

-

1

 

动作

P1

0

0

0

1

0

0

0

0

0

0

P2

0

0

0

0

1

1

1

1

1

1

P3

1

1

1

0

0

0

0

0

0

0

 

具体的测试用例如下:

测试用例:

测试用例

输入

期望输出

    覆盖等价类

Year

Mouth

Day

1

2000

1

6

200015

Y2,M2,D1,P3

2

2000

2

30

输入日期不存在

  Y2,M1,D3,P1

3

2001

12

31

20011230

  Y1,M3,D4,P3

4

2001

4

30

2001429

  Y1,D3,M1,P3

5

2001

0

30

输入日期超出范围

  Y1,D3,M8,P2

6

2000

18

30

输入日期超出范围

Y2,D3,M9,P2

7

1000

4

30

输入日期超出范围

Y8,D3,M1,P2

8

3000

4

30

输入日期超出范围

Y9,D3,M1,P2

9

2000

4

0

输入日期超出范围

Y2,D8,M1,P2

10

2000

4

200

输入日期超出范围

Y2,D9,M1,P2

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

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

相关文章

python中的私有化

1、xx: 公有变量2、_x: 单前置下划线,私有化属性或方法&#xff0c;from somemodule import * 禁止导入,类对象和子类可以访问。3、__xx&#xff1a;双前置下划线,避免与子类中的属性命名冲突&#xff0c;无法在外部直接访问(名字重整所以访问不到&#xff09;4、__xx__:双…

LeetCode 1520. 最多的不重叠子字符串(贪心)

文章目录1. 题目2. 解题1. 题目 给你一个只包含小写字母的字符串 s &#xff0c;你需要找到 s 中最多数目的非空子字符串&#xff0c;满足如下条件&#xff1a; 这些字符串之间互不重叠&#xff0c;也就是说对于任意两个子字符串 s[i…j] 和 s[k…l] &#xff0c;要么 j <…

一个网页设计师应该考虑的9件事

1、永远都不要停止学习新的东西 在一个领域的趋势很容易成为过去&#xff0c;一个网页设计师应该不断尝试跟上最新的方法。从标志设计到用户界面&#xff0c;你应该寻找各种样品&#xff0c;并看看什么是新的&#xff0c;什么不是。此外&#xff0c;即使自己是不是对你有用&…

边界值测试

问题描述——找零钱最佳组合&#xff1a; 假设商店货品价格(R)皆不大于100元&#xff08;且为整数&#xff09;&#xff0c;若顾客付款在100元内(P)&#xff0c;求找给顾客之最少货币个&#xff08;张&#xff09;数&#xff1f;&#xff08;货币面值50元(N50)&#xff0c;10元…

python中的@property(get与set作用

class Bank(object): def__init__(self): self.__money 100 property defmoney(self): returnself.__money #raise AttributeError("该属性不支持读取操作") # 如果只提供了读取操作&#xff0c;而不提供设置操作的&#xff0c;这样的属性叫做只读属性 money.sette…

LeetCode 679. 24 点游戏(回溯)

文章目录1. 题目2. 解题1. 题目 你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *&#xff0c;/&#xff0c;&#xff0c;-&#xff0c;(&#xff0c;) 的运算得到 24。 示例 1: 输入: [4, 1, 8, 7] 输出: True 解释: (8-4) * (7-1) 24示例 2: 输入: [1, 2, 1, 2] 输…

C++ Primer 有感(重载操作符)

1.用于内置类型的操作符&#xff0c;其含义不能改变。也不能为任何内置类型定义额外的新的操作符。&#xff08;重载操作符必须具有至少一个类类型或枚举类型的操作数。这条规则强制重载操作符不能重新定义用于内置类型对象的操作符的含义&#xff09;2.重载操作符&#xff0c;…

等价类测试

某直辖市的电话号码由三部分组成&#xff0c;这三部分的名称和内容分别是&#xff1a; &#xff08;1&#xff09;地区码&#xff1a;空白或3位数字&#xff1b; &#xff08;2&#xff09;前缀&#xff1a;非“0”和非“1”开头的4位数字&#xff1b; &#xff08;3&#xff0…

元类及创建元类的方法(面试用

元类就是类的类&#xff0c;type就是Python中创建所有类的元类。type就是创建类对象的类。Python中所有的东西——都是对象。这包括整数、字符串、函数以及类。它们全部都是对象&#xff0c;并且它们都是从一个类创建来&#xff0c;这个类就是type。# class Foo(object):# …

LeetCode 第 33 场双周赛(511/3304,前15.5%,第4次全部通过)

文章目录1. 比赛结果2. 题目1. LeetCode 5479. 千位分隔数 easy2. LeetCode 5480. 可以到达所有点的最少点数目 medium3. LeetCode 5481. 得到目标数组的最少函数调用次数 medium4. LeetCode 5482. 二维网格图中探测环 hard1. 比赛结果 题目比较简单&#xff0c;全部做出来了。…

Oracle存储过程单步调试方法

oracle存储过程单步调试的方法 1.在要调试的过程上单击test&#xff0c;如下图所示&#xff1a; 2.出现如下界面时单击最左上方的按钮&#xff1a;&#xff0c;如下图所示&#xff1a; 3.单击后呈现如下画面&#xff1a; 其中&#xff1a; 表示要停止test; 表示要全部运行完这…

等价类、决策表测试

问题&#xff1a;输入年月日year、month、day&#xff0c;其中年份的有效取值范围为[1818,2018]&#xff0c;请输出输入日期的前一天&#xff0c;例如输入2018年9月18日&#xff0c;输出为2018年9月17日。若输入日期非法&#xff0c;例如输入2013年2月30日&#xff0c;则输出“…

小大整数对象池及intern机制

1. 小整数对象池 Python 对⼩整数的定义是[-5, 256] 2. 大整数对象池 每⼀个⼤整数&#xff0c;均创建⼀个新的对象。 a 100 b 100 # print(a is b) True # 代码块 c 1000 d 1000 print(c is d) # True class Foo(object): a 1000 c 1000 class …

Apache Commons IO: 简化文件和IO操作

第1章&#xff1a;引言 咱们在做Java编程的时候&#xff0c;经常会遇到各种文件操作和输入输出&#xff08;IO&#xff09;的问题。不论是读取一个配置文件&#xff0c;还是把数据写入日志&#xff0c;这些看似简单的任务有时候会让人头疼。传统的Java IO操作&#xff0c;虽然…

LeetCode 1560. 圆形赛道上经过次数最多的扇区

文章目录1. 题目2. 解题2.1 模拟2.2 脑筋急转弯1. 题目 给你一个整数 n 和一个整数数组 rounds 。有一条圆形赛道由 n 个扇区组成&#xff0c;扇区编号从 1 到 n 。 现将在这条赛道上举办一场马拉松比赛&#xff0c;该马拉松全程由 m 个阶段组成。其中&#xff0c;第 i 个阶段…

如何用jar命令对java工程进行打包

如何用jar命令对java工程进行打包有时候为了更方便快捷的部署和执行Java程序&#xff0c;要把java应用程序打包成一个jar包。而这个基础的操作有时候也很麻烦&#xff0c;为了方便java程序员们能够方便的打包java应用程序&#xff0c;下面对jar命令进行介绍&#xff0c;并举出几…

垃圾回收:引用计数与分代收集机制

当引⽤计数为0时&#xff0c;该对象⽣命就结束了。 引⽤计数机制的优点&#xff1a; 1、简单 2、实时性&#xff1a;⼀旦没有引⽤&#xff0c;内存就直接释放了。不⽤像其他机制等到特定时机。实时性还带来⼀个好处&#xff1a;处理回收内存的时间分摊到了平时。 引⽤计数机制的…

Android 行程APP简单介绍

登录模块 数据库设计如图所示创建了如上的数据库由于没有注册功能人为添加了两个用户&#xff1a; 数据库创建语句&#xff1a; public static final String CREATE_task "create table user (" "id integer primary key autoincrement, ""remenber…

python中主要内建函数

1.__getattribute__属性访问拦截器&#xff08;内建属性 class Foo(object): def __init__(self): self.a 100 def __getattribute__(self, name): if name "a": # return self.a # __getattribute__("a") return super(Foo,self).__getattribute__(&qu…

LeetCode 1561. 你可以获得的最大硬币数目

文章目录1. 题目2. 解题1. 题目 有 3n 堆数目不一的硬币&#xff0c;你和你的朋友们打算按以下方式分硬币&#xff1a; 每一轮中&#xff0c;你将会选出 任意 3 堆硬币&#xff08;不一定连续&#xff09;。Alice 将会取走硬币数量最多的那一堆。你将会取走硬币数量第二多的那…