软件过程与项目管理(第七周作业)

 黑盒测试等价类划分法

概念

等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。

等价类划分法的应用

1.等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类。

·有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

·无效等价类:与有效等价类的定义恰巧相反。

设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性。

2.划分等价类的六大原则:

·在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.

例:输入值是学生成绩,范围是0~100。

·在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.

·在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类. 布尔量是一个二值枚举类型, 一个布尔量具有两种状态: true 和 false 。

·在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.

例:输入条件说明输入字符为:中文、英文、阿拉伯文三种之一,则分别取这三种这三个值作为三个有效等价类,另外把三种字符之外的任何字符作为无效等价类。

·在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)

·在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类

3.将等价类转化成测试用例:

·按照[输入条件][有效等价类][无效等价类] 建立等价类表,列出所有划分出的等价类

·为每一个等价类规定一个唯一的编号.

·设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止.

·设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止.

等价类划分实例

1.设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。(不考虑2月的问题)

1)划分等价类并编号,下表等价类划分的结果

输入等价类

有效等价类

无效等价类

日期的类型及长度

①6位数字字符

②有非数字字符

③少于6位数字字符

④多于6位数字字符

年份范围

⑤在1990~2049之间

⑥小于1990

⑦大于2049

月份范围

⑧在01~12之间

⑨等于00

⑩大于12

2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:

测试数据    期望结果      覆盖的有效等价类

200211      输入有效      ①、⑤、⑧

3)为每一个无效等价类设计一个测试用例,设计结果如下:

测试数据   期望结果     覆盖的无效等价类

95June     无效输入          ②

20036      无效输入          ③

2001006   无效输入          ④

198912     无效输入          ⑥

200401     无效输入          ⑦

200100     无效输入          ⑨

200113     无效输入          ⑩

2.NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。 例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件:

①1≤month≤12

②1≤day≤31

③1920≤year≤2050

1)有效等价类为:

M1={月份:1≤月份≤12}

D1={日期:1≤日期≤31}

Y1={年:1812≤年≤2012}

2)若条件 ① ~ ③中任何一个条件失效,则 NextDate 函数都会产生一个输出,指明相应的变量超出取值范围,比如 "month 的值不在 1-12 范围当中 " 。显然还存在着大量的 year 、 month 、 day 的无效组合, NextDate 函数将这些组合作统一的输出: " 无效输入日期 " 。其无效等价类为:

M2={月份:月份<1}

M3={月份:月份>12}

D2={日期:日期<1}

D3={日期:日期>31}

Y2={年:年<1812}

Y3={年:年>2012}

弱一般等价类测试用例

月份    日期       年               预期输出

6       15        1912           1912年6月16日

强一般等价类测试用例同弱一般等价类测试用例

注:弱--有单缺陷假设;健壮--考虑了无效值

(一)弱健壮等价类测试

用例ID   月份  日期    年          预期输出

WR1      6      15    1912      1912年6月16日

WR2     -1     15    1912      月份不在1~12中

WR3     13     15    1912      月份不在1~12中

WR4      6      -1    1912      日期不在1~31中

WR5      6      32    1912      日期不在1~31中

WR6      6      15    1811      年份不在1812~2012中

WR7      6      15    2013      年份不在1812~2012中

(二)强健壮等价类测试

用例ID   月份    日期      年          预期输出

SR1       -1      15       1912      月份不在1~12中

SR2        6      -1        1912      日期不在1~31中

SR3        6      15       1811      年份不在1812~2012中

SR4       -1      -1       1912      两个无效一个有效

SR5        6      -1        1811      两个无效一个有效

SR6       -1      15       1811      两个无效一个有效

SR7       -1      -1       1811      三个无效

时间: 2024-10-16 00:42:08

软件过程与项目管理(第七周作业)的相关文章

软件过程与项目管理第七周作业

软件过程与项目管理第7周作业 驱动和责任 请阅读驱动和责任这篇文章,讨论团队如何能让所有人都明确驱动和责任. 文章链接:http://www.cnblogs.com/xinz/p/4298446.html 有极端的看法说,任何与报酬挂钩的绩效评估都是有害的,你怎么看? 文章链接:http://www.joelonsoftware.com/articles/fog0000000070.html 答:1. 团队是有着一个共同目标的一群人,团队成员有各自的分工,互相依赖合作,共同完成任务.如何一步一步

软件过程与项目管理第七次作业

软件过程与项目管理第七周作业 我们的2D游戏已经基本成型了,只有一些小的接口没有实现,现在要做的主要工作就是测试.我们测试要用到的语言是lua语言.我们以前没有接触过lua语言.这周我就上网学习了一下lua语言的背景知识,下面做一个简要的总结: 1.lua简介:lua是一个小巧的脚本语言.其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能.Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行.Lua并没有提供强大的库,这是由它的定位决定的.所以Lua不适合作为开

软件过程与项目管理第八周作业

软件过程与项目管理第8周作业 关于未来实体商城会不会消失的问题 现在网上购物.电子商务越来越流行.普遍,极大的方便了大众的生活,同时也给实体店带来巨大的压力.尽管如此,我认为实体商城不会有消失的那天. 不管未来物流达到如何发达的程度,实体商城仍然有其不可取代的价值.下面就举几个例子: 比如说服装店,虽然说在网上买衣服可以足不出户,也不用考虑天气.但对于很多女孩子来说,逛街(绝大部分是在逛服装店)绝不是为了单纯的去买衣服,也有很多人很享受逛的这个过程,试衣服的过程,或者和同伴消磨休闲时间,促进感情

软件过程与项目管理第五周作业

软件过程与项目管理第5周作业关于创新 创新是现在很热门的一个话题,国家鼓励支持创新创业,提倡人应该具有创新精神,创新促进时代社会进步.成功的创新可以带来巨大的改变,不仅是个人的成功,更有可能改变社会生产生活方式,这样的例子有很多,例如马云的阿里巴巴集团,旗下的支付宝就改变了我们的支付方式,用手机就能完成支付,这是一次伟大的创新,马云想到了别人想不到的事,看见未来发展趋势并牢牢的把握住了机遇.还有iphone的成功都离不开创新.   创新带来的成功和效益可见一斑.然而并不是有创新精神就能创新,有好

软件过程与项目管理(第一周作业)

一. 15选1的第3题: 上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些,各有什么优缺点?(提示:搜索一下Microsoft TFS.GitHub.Trac.Bugzilla.Rationale,Apple XCode)? Microsoft TFS(Team Foundation Server): 优点: 任务版上能将需求.项目进度一览无余,对于小团队而言,比甘特图更有用 集成了项目管理.版本控制.BUG 跟踪,能有效实现 SCRUM 能与 VS 无缝接合 缺点: 搭建.维护t

软件过程与项目管理(第二周作业)

关于产品同质化问题的一点见解 上一次作业里面我提到了我用过的两款移动团购软件百度糯米和美团,当时我对于这两款软件的比较有点肤浅,仅仅是说我觉得百度糯米的活动比较多,优惠更多,所以它才更吸引我一直在用.老师根据我的阐述提出了产品同质化的问题让我思考. 如今的社会,上到家具电器,下到生活用品,几乎所有的东西都涉及到产品同质化的问题.因为如今的经济飞速发展,每一种可以买到的物品几乎都有很多知名品牌可供我们选择.如何打破产品同质化,使自己的产品脱颖而出,受到众多消费者的青睐,应该是每一个商家都想要解决的

2017-2018-2 1723《程序设计与数据结构》第七周作业 总结

作业地址 第七周作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1806 (本周博客直接在作业界面打了分,可供随时查看) 提交情况如图:(严域俊这次忘交,请下次注意) 作业要求 教材第9章 (1)阅读9.1-9.5章节 (2)代码托管到[email protected],参考一下使用开源中国托管代码 (3)完成课后自测题,并参考答案学习 (4)完成课后练习题 (5)完成程序设计项目:至少完成PP9.1.PP9.3. (6

软件过程与项目管理第六次作业

软件过程与项目管理六次作业 小组项目方面,我们的总体已经出来了,下周小组长让我们学着用脚本语言写写测试用例. 这周我主要在准备文档,我们组目前才完成了两个文档,一个是需求分析文档,一个是立项说明文档,还有一个概要设计文档还在建立和补充当中.我发现在开发一个项目的过程中,文档的书写也是一个很让人头疼的问题.我们的项目不大,所需要的文档也不多,但我觉得这些文档已经很让人头疼了.首先我们的文档是几个人分部分写然后再一起总结的,我就发现不同的人写文档的风格就不一样,比如说,分点标序号,有些人就喜欢用数字

C语言--第七周作业评分(5班)

作业链接:https://edu.cnblogs.com/campus/hljkj/CS2017-5/homework/1304 一.评分要求 要求1 完成PTA第七周所有题,总共两次题,每次12.5分.若存在抄袭现象,倒扣此题所有分数(25分). 要求2 2道题,每道题对应10分(总计20分). (1)实验代码(1分). (2)设计思路:算法描述(1分),流程图(2分). (3)调试过程中遇到的问题及解决办法(3分). (4)本题PTA提交列表(3分). 要求3 按照要求2将其他题目的代码.解

软件项目管理第五周作业

1.psp Job Type Date Start End Total 四周总结 随笔 2016.4.4 23:00 23:23 23 站立会议 会议 2016.4.4 13:30 13:45 15 数据库 编码测试 2016.4.4 13:50 15:20 90 站立会议 会议 2016.4.5 13:00 13:15 15 摇一摇1 编码测试 2016.4.5 13:35 14:20 45 站立会议 会议 2016.4.6 13:05 13:15 10 数据库函数添加 编码测试 2016.4