版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、NextDate函数测试用例选择NextDate函数,是因为它可以说明输入定义域中的依赖性问题,这使得这个例子成为基于决策表测试的一个完美例子,因为决策表可以突出这种依赖关系。从前面对等价类测试的分析我们知道,等价类分析假设所有的变量都是独立的。如果变量确实是独立的,则使用类的笛卡尔积是有意义的。如果变量之间在输入定义域中存在逻辑依赖关系,则这些依赖关系在笛卡尔积中就会丢失(说抑制可能更确切)。决策表格式通过使用“不可能动作”概念表示条件的不可能组合,使我们能够强调这种依赖关系。下面将对NextDate函数的决策表描述做三次尝试。第一次尝试标识合适的条件和动作,假设首先从分析等价类集合开始。M
2、1 = 月份:每月有30天; M2 = 月份:每月有31天;M3 = 月份:此月是2月D1 = 日期:1日期28;D2 = 日期:日期=29;D3 = 日期=30;D4 = 日期=31Y1 = 年:年是闰年;Y2 = 年:年不是闰年 如果我们希望突出不可能的组合,则可以建立具有以下条件和动作的有限项决策表。(请注意,年变量对应的等价类收缩为下表的一个条件。)这个决策表会有256条规则,其中很多是不可能的。如果要显示为什么这些规则是不可能的,可将动作修改为:a1:月份中的天数太多;a2:不能出现在非闰年中;a3:计算NextDate。第二次尝试如果我们将注意力集中到NextDate函数的闰年问题
3、上,则可以修改已有的等价类集合。为了说明另一种决策表表示方法,这一次采用扩展项决策表开发,并更仔细地研究动作桩。在构建扩展项决策表时,必须保证等价类构成输入定义域的真划分。如果规则项之间存在“重叠”,则会存在冗余情况,使得多个规则都能够满足。这里,Y2是一组18122012之间的年份,并除以4,2000除外。M1 = 月份:每月有30天; M2 = 月份:每月有31天;M3 = 月份:此月是2月D1 = 日期:1日期28;D2 = 日期:日期=29;D3 = 日期=30;D4 = 日期=31Y1 = 年:年=2000;Y2 = 年:年是闰年;Y3 = 年:年是平年从某种意义上说,我们采用的是“
4、灰盒”技术,因为更仔细地研究了NextDate函数。为了产生给定日期的NextDate,能够使用的操作只有五种:日期和月份的增1和复位,年的增1。(我们不允许通过复位年来回退时间。)这些条件可以产生有对应等价类笛卡尔积的36个规则的决策表(自己可以分析一下)。结合不关心项,可得到下表所示的17条规则的决策表。仍然存在逻辑不可能的规则,但是这个表有助于我们标识测试用例的扩展输出。如果填满这个决策表的动作项,就会发现12月有一些麻烦的问题(规则8)。我们下面解决这些问题。第三次尝试通过引入等价类的第三个集合,可以澄清年末问题。这一次可以特别关注日和月,并重新使用第一次尝试的较简单的闰年或非闰年条件
5、,因此2000年没有特别处理。(还可以做第四次尝试,采用第二次尝试的年等价类。)M1 = 月份:每月有30天; M2 = 月份:每月有31天,12月除外;M3 = 月份:此月是12月;M4 = 月份:此月是2月D1 = 日期:1日期27;D2 = 日期:日期=28;D3 = 日期=29;D4 = 日期=30;D5 = 日期=31Y1 = 年:年是闰年;Y2 = 年:年不是闰年这个等价类的笛卡尔积包含40个元素。所产生的组合规则包含不关心项,如下表所示,可与第二次的36条规则比较。大的测试用例集合是否一定比小的测试用例集合好?这里我们有一个22条规则的决策表,得到的NextDate函数的描述比包
6、含36条规则的决策表更清晰。前5条规则处理有30天的月份,请注意,这里不考虑闰年。接下来两组规则(规则610,规则1115)处理有31天的月份,前5条规则处理12月之外的月份,后5条规则处理12月。不可能规则也在决策表中列出,尽管存在一些高效测试人员可能会有疑问的冗余。10条规则中的8条只是对日期增1。针对这个子功能是否真的需要8条单独的测试用例,可能不需要,但是请注意我们可以通过决策表得到的启发。最后7条规则关注的是2月和闰年。上表所示的决策表是NextDate函数源代码的基础。这个例子从另一个方面说明测试如何能够很好地改进程序设计。所有决策表分析都应该在NextDate函数的详细设计期间完
7、成。我们可以使用决策表代数进一步化简这22个测试用例。如果决策表中两个规则的动作集合相同,则一定至少有一个条件能够把两条规则用不关心条目合并。这正体现出决策表等价于用于标识等价类的“相同处理”方针。在某种意义上,我们就是在标识规则的等价类。例如,规则1、2和3涉及有30天的月份日期类D1、D2和D3。类似地,有31天的月份的日期类D1、D2、D3和D4也可以合并,2月的D4和D5也可以合并。所得到的结果如下表所示:相应的测试用例如下表所示:总结与其他测试技术一样,基于决策表的测试对于某些应用程序(例如NextDate函数)很有效,但是对另外一些应用程序就不值得费这么大的事。毫不奇怪,基于决策表所适用的情况都是要发生大量决策(例如三角形问题),以及在输入变量之间存在重要的逻辑关系的情况(例如NextDa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年四川省马尔康市高三数学下册期末考试模拟检测卷含完整答案
- 洗衣机零部件制作工安全生产规范评优考核试卷含答案
- 重冶湿法冶炼工班组管理知识考核试卷含答案
- 制浆废液回收工岗前生产安全水平考核试卷含答案
- 道路货运调度员9S考核试卷含答案
- 家畜饲养员岗中实践综合考核试卷含答案
- 墨制作工激励能力考核试卷含答案
- 汽轮机辅机值班员成果转化考核试卷含答案
- 泥釉浆料制备输送工岗位基础晋升考核试卷含答案
- 煤层气修井工岗前实操知识考核试卷含答案
- 烧伤现场急救处理
- 2026年广西高考历史真题(试卷+解析)
- 2026年烟花爆竹企业安全考试题库及答案
- 2026秋人教统编版历史七上单元检测卷 第一单元 史前时期:原始社会与中华文明的起源(含答案)
- 中国脓毒症与感染性休克诊断和治疗指南 (2025 版)
- GB/T 47875-2026复合玻璃弯曲等效厚度测定方法
- 2026年运输管理(货物运输调度)试题及答案
- 2026年技能培训专题电力安全工器具使用培训
- 2026年4月自考02324离散数学试题及答案含评分参考
- 2026年华为公司面试流程及常见问题解析
- 初三中考冲刺:家长的智慧陪伴与高效激励
评论
0/150
提交评论