测试用例设计方法 很好的东西
- 格式:doc
- 大小:523.00 KB
- 文档页数:22
功能测试的用例设计思路功能测试用例设计思路:一场探索之旅功能测试就像是一场对软件功能的探索之旅,那设计用例就好比绘制探索的地图。
这地图画得好不好,可直接关系到咱们能不能把软件的功能摸得透透的。
咱先说这输入方面。
你看,软件就像个大盒子,输入就像是往这个盒子里丢东西。
如果这个盒子是个计算器,那输入数字就是最基本的操作。
咱得考虑各种各样的数字啊,正数、负数、零,就像生活里有高个子、矮个子和不高不矮的人一样。
咱不能只测试正数,就觉得这个计算器的加法功能没问题了呀。
要是只测了1 + 1 = 2,那万一人家输入 -1 + 1呢?这结果可就不一样了。
这就好比你去超市买东西,只看了苹果的价格,没看香蕉的价格,那能行么?再看看边界值的测试。
这就像是在走钢丝,你得找到那个最边上的点。
比如说,一个输入框要求输入1到100之间的数字,那1和100就是边界啊。
这就像你在一个有围栏的院子里玩,围栏就是边界,你得看看在围栏边上会发生什么。
是能稳稳站住呢,还是会掉出去?要是这个输入框,你输入0或者101会怎样?会不会弹出个友好的提示,还是直接系统崩溃了?这就好比你站在院子的围栏上,是会有个小警告说“别出去啦”,还是直接掉进沟里呢?功能的组合测试也特别重要。
这就像是做菜,一道菜里有好几种食材,每种食材单独吃是一个味道,组合在一起又是另一个味道。
软件里的功能也是这样,一个功能单独运行没问题,和其他功能一起运行的时候呢?比如说,一个文档编辑软件,有保存功能和加密功能。
你先保存了一个文档,然后加密,再保存一次,这过程中会不会有什么问题?会不会保存的时候把加密信息弄丢了?这就像你做蛋糕,先放了面粉,再放鸡蛋,然后又放了一次面粉,结果发现蛋糕没发起来,那肯定是哪里出问题了呀。
还有异常情况的测试。
这就像是给软件来个突然袭击。
软件正运行得好好的,突然断网了,会怎样?就像你正在打电话,突然信号没了,你肯定希望手机能给你个提示,而不是直接死机吧。
单元测试用例设计方法
在软件开发中,单元测试是一种对软件系统中最小实体(通常是函数、方法或类)进行测试的方法。
单元测试用例设计是确保软件系统的各个单元在不同情况下都能正常工作的关键。
下面将介绍一些常用的单元测试用例设计方法。
1. 边界值分析法:
边界值分析法是一种常用的测试方法,通过测试系统在取最小、最大和边界值时的行为来检测错误。
例如,对于一个接受整数参数的函数,可以选择最小值、最大值和边界值作为测试用例。
2. 等价类划分法:
等价类划分法是将输入条件划分为一组等效的类别,并选择代表这些类别的测试用例。
这种方法可以有效地减少测试用例数量,同时保证了覆盖各个等效类别的能力。
3. 错误猜测法:
错误猜测法是一种基于错误猜测的测试方法,通过假设系统中可能存在的错误场景来设计测试用例。
这种方法可以帮助测试人员集中精力关注可能导致错误的操作或条件。
4. 边界条件测试法:
边界条件测试法是对特殊值和边界情况下的行为进行测试的方法。
例如,对于一个接受字符串参数的函数,可以设计测试用例来测试空字符串、长度边界情况等。
5. 正交试验法:
正交试验法是一种通过设计正交表来进行测试的方法,能够有效地避免冗余的测试用例。
正交表能够覆盖各种可能的参数组合,从而提高测试用例的效率。
以上是一些常用的单元测试用例设计方法,每种方法都有其适用的场景和优劣势。
在实际项目中,测试人员可以根据需求和资源的情况选择合适的方法来设计测试用例,确保软件系统的质量和稳定性。
测试用例的设计-边界值法边界值分析也是一种黑盒测试方法,适度等价类分析方法的一种补充,由长期的测试工作经验得知,大量的错误是发生在输入或输出的边界上。
因此针对各种边界情况设计测试用例,可以查出更多的错误。
选择测试用例的原则:一、如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据;二、如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多1格、比最小个数少1个的数做为测试数据;三、根据规格说明的每一个输出条件,使用规则一;四、根据规格说明的每一个输出条件,使用规则二;五、如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个和最后一个元素作为测试用例;六、如果程序用了一个内部结构,应该选取这个内部数据结构的边界值作为测试用例;七、分析规格说明,找出其他可能的边界条件。
边界值法举例找零钱最佳组合假设商店货品价格 (R) 皆不大於 100 元(且为整数),若顾客付款在 100 元内 (P) ,求找给顾客之最少货币个(张)数?(货币面值 50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元 (N1) 四种)一、分析输入的情形。
R > 1000 < R < = 100R <= 0P > 100R<= P <= 100P < R二、分析输出情形。
N50 = 1N50 = 04 > N10 >= 1N10 = 0N5 = 1N5 = 04 > N1 >= 1N1 = 0三、分析规格中每一决策点之情形,以 RR1, RR2, RR3 表示计算要找 50, 10, 5 元货币数时之剩余金额。
R > 100R <= 0P > 100P < RRR1 >= 50RR2 >= 10RR3 >= 5四、由上述之输入/输出条件组合出可能的情形。
优秀的测试用例案例一、正常登录情况。
1. 测试用例名称:使用正确的用户名和密码登录。
测试步骤:打开登录页面。
在用户名输入框中输入已经注册好的正确用户名,比如说“超级飞侠”。
在密码输入框中输入对应的正确密码,就像给超级飞侠输入它的秘密指令“123456abc”。
点击登录按钮。
预期结果:页面成功跳转到用户的个人主页,能看到类似“欢迎回来,超级飞侠!”这样的欢迎语,并且可以看到个人信息、功能菜单等只有登录后才能看到的东西。
二、边界值情况。
1. 测试用例名称:使用最短允许的用户名和密码登录。
测试步骤:进入登录页面。
输入系统允许的最短用户名,假如是3个字符的“abc”。
输入系统允许的最短密码,比如6个字符的“123456”。
点击登录按钮。
预期结果:成功登录,进入到和正常登录一样的个人主页,显示欢迎语等相关信息。
2. 测试用例名称:使用最长允许的用户名和密码登录。
测试步骤:打开登录界面。
输入最长可接受的用户名,假设是20个字符的“这个用户名超级超级超级长1234567890”。
输入最长可接受的密码,像是30个字符的“这个密码超级超级长abcdefghijklmnopqrstuvwxyz123”。
按下登录按钮。
预期结果:顺利登录,显示个人主页和欢迎信息,没有任何报错提示。
三、异常情况。
1. 测试用例名称:用户名不存在登录。
测试步骤:来到登录页面。
在用户名框里输入一个根本没注册过的名字,例如“不存在的大侠”。
在密码框里随便输入一串字符,像“888888”。
点击登录按钮。
预期结果:页面弹出提示框,上面写着“用户名不存在,请重新输入或者注册”之类的话,并且停留在登录页面,不允许进入个人主页。
2. 测试用例名称:密码错误登录。
测试步骤:打开登录窗口。
输入一个正确注册过的用户名,比如“勇敢小战士”。
但是在密码框里输入错误的密码,像是“错误密码123”。
点击登录按钮。
预期结果:弹出提示框,显示“密码错误,请重新输入”,页面保持在登录界面,不能进入个人主页。
测试用例设计中的边界值分析方法边界值分析是测试用例设计中常用的一种方法。
它的目的是确定软件系统在边界值附近可能产生的错误和异常行为。
通过对边界值进行测试,可以帮助开发团队发现潜在的问题,提高软件系统的质量和稳定性。
边界值分析的基本原理是,系统在边界值处的行为往往与其它情况下有所不同。
常见的边界值包括输入的最小值、最大值、临界值以及特殊值。
通过对这些边界值进行测试,可以检测系统在极端情况下是否能正常工作,并验证系统能否正确处理这些边界情况。
边界值分析在测试用例设计中具有以下几个优势:1. 有效性:通过对边界值进行测试,可以更容易地发现输入错误和边界条件下的异常行为。
边界值通常是在软件开发中容易出错的地方之一,因此针对边界值进行测试可以帮助开发团队及早发现和修复潜在的问题。
2. 节约时间和资源:边界值测试可以帮助测试团队更加有效地利用资源,将重点放在那些最可能出错的地方。
通过对边界值的测试,可以在有限的测试时间内获得更多的测试覆盖率,提高测试效率。
3. 提高覆盖率:边界值分析可以帮助测试团队覆盖到各种可能的输入范围,提高测试用例的覆盖率。
通过对不同的输入范围进行测试,可以增加测试的全面性,确保系统在各种情况下都能正常工作。
在进行边界值分析时,应该考虑以下几个方面:1. 边界的确定:首先需要确定要测试的边界,在进行测试用例设计时,需要明确输入的最小值、最大值、临界值和特殊值。
边界值可以通过需求文档、代码分析和经验等方式来确定。
2. 正确性和恰当性:测试用例的设计需要保证测试的完整性和正确性。
测试用例应该包括涵盖所有边界情况的测试数据,同时还需要考虑边界值的有效性和恰当性,避免测试用例设计时出现偏差和错误。
3. 边界值之外的测试:除了对边界值进行测试,还需要考虑边界值之外的测试情况。
边界值之外的测试可以帮助发现一些隐藏在系统内部的问题和潜在的错误。
边界值分析是测试用例设计中的一种重要的方法,它可以帮助测试团队有效地发现系统中的问题和潜在的错误,提高测试效率和质量。
黑盒测试用例的设计方法
边界值分析法也超有趣哦。
这就像是专门盯着边缘情况。
还是说年龄输入框,最小年龄0岁,最大年龄150岁(假设哈),那这0和150就是边界值呀。
还有边界值的邻居,像 -1和1,149和151。
这些边界值和边界附近的值往往是最容易出问题的地方呢。
就好比住在河边的房子,最容易受到洪水影响一样,软件在边界值这里也可能会有小脾气,所以一定要重点测试这些值。
决策表法呀,就像是做选择题的一个大表格。
假如有个系统,根据用户的会员等级(普通、银卡、金卡)和消费金额(低、中、高)来决定折扣。
那咱就可以画个表格,把各种组合都列出来。
普通会员低消费、普通会员高消费、银卡会员中消费等等,然后在表格里写出对应的折扣。
这样就很清楚地知道每个情况该怎么测试啦,就像按照菜单点菜一样,明明白白的。
因果图法就有点像找事情的因果关系呢。
比如说,有个功能是注册账号,用户名存在、密码符合要求、验证码正确这些原因,会导致注册成功这个结果。
那咱们就可以画出因果图来表示它们之间的关系。
如果用户名不存在,那注册肯定不成功啦。
这就像是破案一样,找到原因和结果之间的联系,然后根据这个来设计测试用例。
宝子,黑盒测试用例设计方法就是这么些啦,是不是还挺好玩的呢?掌握了这些方法,就能更好地找出软件里的小毛病啦。
。
测试用例的设计方法有哪些1. 边界值测试(Boundary Value Testing)边界值测试是一种基于边界值的测试方法,它关注输入和输出的最大和最小边界。
边界值测试的思想是在输入的边界上测试系统的行为,并且假设系统在边界附近的行为可能有问题。
该方法通常用于验证系统在边界处的正确性。
示例:假设有一个需要输入1到100之间整数的系统。
边界值测试的用例可能包括:-输入1,期望结果为有效输出;-输入100,期望结果为有效输出;-输入0,期望结果为错误提示;-输入101,期望结果为错误提示。
2.等价类划分测试(Equivalence Partitioning)等价类划分是一种基于功能特性的测试方法,它将输入和输出划分为等价类,每个等价类具有相同的功能行为。
通过选择一个测试用例来代表每个等价类,可以大大减少测试用例的数量,同时保持测试的有效性。
示例:假设有一个需要验证用户年龄的系统,年龄范围在0到100之间。
等价类划分的测试用例可能包括:-选择代表0到17岁的年龄范围,期望结果为错误提示;-选择代表18到65岁的年龄范围,期望结果为有效输出;-选择代表66到100岁的年龄范围,期望结果为有效输出。
3. 决策表测试(Decision Table Testing)决策表是一种将可能的输入和操作映射到预期结果的表格形式。
它用于测试根据不同的组合条件而采取不同行动的系统。
决策表测试通过使用决策表来设计测试用例,可以提高测试覆盖率并捕捉系统中各种可能的情况。
示例:假设有一个系统根据不同的入口和出口温度来控制空调的冷热程度。
决策表测试的用例可能包括:-当入口和出口温度都低于设定值时,期望结果为打开制冷;-当入口和出口温度都高于设定值时,期望结果为打开制热;-当入口温度低于设定值,但出口温度高于设定值时,期望结果为关闭空调。
4. 状态转换测试(State Transition Testing)状态转换测试方法用于测试系统在不同状态之间的转换。
常见测试用例的设计方法一、等价类划分法。
这就像是把东西分类哦。
比如说,我们要测试一个输入框能接受的数字范围。
如果规定是1到100之间的整数,那我们就可以把这个范围分成几个等价类。
像1到10是一类,11到50是一类,51到100是一类。
为什么这么分呢?因为在每个小类里,它们的性质差不多呀。
对于1到10这个小类,我们只要测试其中一个数字,比如5,就大概能知道这个小类里其他数字的情况啦。
这就好像一群小伙伴,他们都有相似的特点,测试了一个就大概了解一群啦。
二、边界值分析法。
这个可有趣啦。
还是上面那个1到100的输入框例子哦。
最容易出问题的往往是边界的地方呢。
那我们就得重点测试1和100这两个边界值,还有比1小一点的,像0,比100大一点的,像101。
就像走在悬崖边,最危险的就是边缘那一块啦。
边界值就像是那些特殊的小伙伴,他们处在边缘位置,得特别关注他们,因为他们很可能会有不一样的表现呢。
三、决策表法。
想象一下我们在做选择。
比如说要去旅游,天气是晴、雨、雪,交通工具是汽车、火车、飞机,目的地是海边、山区、城市。
这时候就可以用决策表啦。
把各种情况列出来,像天气晴的时候坐汽车去海边怎么怎么样,天气雨的时候坐火车去山区又怎么怎么样。
这样就把所有可能的组合都考虑到了,就像把所有旅游的路线和情况都安排得明明白白,一个都不落下,是不是很有条理呢?四、因果图法。
这有点像找事情的因果关系呢。
比如说,有个系统登录功能,密码正确和用户名正确是原因,能成功登录就是结果。
但是呢,如果密码错误或者用户名错误,就不能登录啦。
我们就可以用因果图把这些关系画出来,就像画一个小地图一样,把原因和结果之间的联系都清楚地展现出来。
这样在测试的时候,就知道该怎么去操作,去验证这些因果关系是不是正确啦。
五、场景法。
这个就像是在演小话剧一样。
比如说测试一个电商网站的购物流程。
从用户登录,到挑选商品,加入购物车,结算,支付,每一步都是一个场景。
我们要按照这个场景一步一步地去测试,就像演员按照剧本表演一样。
测试用例的常用设计方法说实话测试用例的常用设计方法这事,我一开始也是瞎摸索。
我试过好多方法,有成功的,也有失败的,现在总算找到点门道。
先来说说等价类划分法。
就好比把一群动物按照不同的类别来分组,比如说哺乳动物、鸟类、鱼类之类的。
在测试用例里,就是把输入数据按照有效和无效等情况分成不同的类。
我以前测试一个输入年龄的功能,年龄有效范围是1到100岁,那1到100就是一个有效等价类,小于1和大于100就是无效等价类。
我一开始就只测了1和100这两个边界值,结果上线后发现中间有些数值有问题,这才知道只关注边界还不够,要把这个等价类里其他值也适当考虑到,这就是个教训。
边界值分析法也很重要。
它就像在悬崖边上探索,边界值往往是最容易出问题的地方。
继续说刚才年龄输入的例子,除了要测试1到100岁之间的某个普通数值外,像1、100这种边界值一定要重点测,有时候最边缘的值好像很容易被忽视掉。
决策表法我也捣鼓过。
这就像是在做一道道逻辑判断题。
比如说一个系统的权限设置,根据用户不同的等级、部门以及是否在职等条件决定用户具有哪些权限,每个条件有不同的情况,组合起来有好多可能性,通过决策表就能清晰地把各种情况罗列出来,设计出对应的测试用例。
再就是场景法。
可以想象成是在演一场戏,从用户进入软件开始,一步一步按照正常的操作流程走下去这就是一个基本场景。
但还有一些分支场景,就像在演戏的时候突然发生了意外情况一样,比如网络中断了,那也要为这些情况设计测试用例。
我在做一个电商平台的测试用例时,就考虑用户登录、浏览商品、加入购物车、下单、支付等正常步骤,也没忘记商品库存不足、支付失败等各种可能出现的场景。
关于因果图法,我觉得有点复杂。
它主要是分析输入和输出之间的因果关系的。
打个比方说吧,一个灯亮不亮取决于有没有电,开关有没有打开这些原因,就像这样找出所有影响结果的原因,再根据因果关系设计测试用例。
不过这方法我用得不是很熟练,目前还是在不断探索的阶段。
介绍软件测试用例编写的书
以下是一些关于软件测试用例编写的书籍,供您参考:
1. 《软件测试用例设计》(第2版):这本书是软件测试领域的经典之作,系统地介绍了软件测试用例的设计方法和技术,包括测试用例的基本概念、设计方法、设计技术、用例编写和管理等方面的内容。
2. 《软件测试的艺术》:这本书是软件测试领域的另一本经典之作,深入浅出地介绍了软件测试的基本概念和原理,同时也讲解了如何编写高质量的测试用例,包括测试用例的设计、编写和执行等方面的内容。
3. 《软件测试实战:从零到卓越》:这本书是一本非常实用的软件测试实战指南,从零开始讲解了如何编写软件测试用例,包括测试用例的基本概念、设计原则、编写技巧和实战案例等方面的内容。
4. 《软件测试用例设计方法与实战案例》:这本书是一本关于软件测试用例设计的实用指南,详细介绍了各种测试用例设计方法和技术,同时也结合了大量的实战案例,可以帮助读者更好地掌握如何编写高质量的测试用例。
这些书籍都是关于软件测试用例编写的经典之作,可以帮助您深入了解如何编写高质量的测试用例,提高软件测试的质量和效率。
测试用例设计方法1等价类划分1.1 理论知识等价类划分是一种典型的黑盒测试方法。
这一方法完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。
等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭示程序中的错误都是等效的。
等价类合理地假设:某个等价类的代表值,与该等价类的其他值,对于测试来说是等价的。
因此,可以把全部的输入数据划分成若干的等价类,在每一个等价类中取一个数据来进行测试。
这样就能以较少的具有代表性的数据进行测试,而取得较好的测试效果。
等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.1) 分类:划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能.无效等价类:与有效等价类的定义恰巧相反.设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性.2)划分等价类的方法:下面给出六条确定等价类的原则:①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.3)原则:设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:输入条件有效等价类无效等价类... ... ...... ... ...然后从划分出的等价类中按以下三个原则设计测试用例:①为每一个等价类规定一个唯一的编号.②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止.③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止.之所以这么做,是因为程序中对于某一个错误输入的检查,往往会屏蔽对于其他错误输入的检查。
因此,必须针对每一个无效等价类分别设计测试用例1.2 实例1、保险费率计算人人保险公司承担人寿保险已有多年历史,该公司保费计算方式为投保额*保险率,保险率又依点数不同而有别,10 点以上费率为0.6 % ,10 点以下费输入数据说明一、分析输入数据型式。
年龄:一或两位数字。
性别:以英文「 Male 」、 Female 」、「 M 」、「 F 」表示。
婚姻:「已婚」、「未婚」。
扶养人数:空白或一位数字。
保险费率: 10 点以上, 10 点以下。
二、划分输入数据三、设计输入数据。
四、根据以上分析设计测试用例:2边界值分析法2.1 理论知识边界值分析方法是对等价类划分方法的补充,也是一种黑盒测试方法,适度等价类分析方法的一种补充,由长期的测试工作经验得知,大量的错误是发生在输入或输出的边界上。
因此针对各种边界情况设计测试用例,可以查出更多的错误。
(1)边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.(2)基于边界值分析方法选择测试用例的原则:1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据.2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据.3)根据规格说明的每个输出条件,使用前面的原则1).4)根据规格说明的每个输出条件,应用前面的原则2).5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.7)分析规格说明,找出其它可能的边界条件.2.2 实例找零钱最佳组合假设商店货品价格 (R) 皆不大于 100 元(且为整数),若顾客付款在 100 元内 (P) ,求找给顾客之最少货币个(张)数?(货币面值 50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元 (N1) 四种)一、分析输入的情形。
R > 1000 < R < = 100R <= 0P > 100R<= P <= 100P < R二、分析输出情形。
N50 = 1N50 = 04 > N10 >= 1N10 = 0N5 = 1N5 = 04 > N1 >= 1N1 = 0三、分析规格中每一决策点之情形,以 RR1, RR2, RR3 表示计算要找 50, 10, 5 元货币数时之剩余金额。
R > 100R <= 0P > 100P < RRR1 >= 50RR2 >= 10RR3 >= 5四、由上述之输入/输出条件组合出可能的情形。
1、R > 1002、R <= 03、0 < R <= 100, P > 1004、0 < R <= 100, P < R5、0 < R <= 100, R <= P <= 100, RR = 506、0 < R <= 100, R <= P <= 100, RR = 497、0 < R <= 100, R <= P <= 100, RR = 108、0 < R <= 100, R <= P <= 100, RR = 99、0 < R <= 100, R <= P <= 100, RR = 510、0 < R <= 100, R <= P <= 100, RR = 40 < R <= 100, R <= P <= 100, RR = 10 < R <= 100, R <= P <= 100, RR = 0五、为满足以上之各种情形,测试资料设计如下:1. 货品价格 = 1012. 货品价格 = 03.货品价格 = -14. 货品价格 = 100, 付款金额 = 1015. 货品价格 = 100, 付款金额 = 996. 货品价格 = 50, 付款金额 = 100 RR=507. 货品价格 = 51, 付款金额 = 100 RR=498. 货品价格 = 90, 付款金额 = 100 RR=109. 货品价格 = 91, 付款金额 = 100 RR=910. 货品价格 = 95, 付款金额 = 100 RR=511. 货品价格 = 96, 付款金额 = 100 RR=412. 货品价格 = 99, 付款金额 = 100 RR=113. 货品价格 = 100, 付款金额 = 100 RR=03错误推测法1、定义:基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.2、错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。
1)例如, 输入数据和输出数据为0的情况;输入表格为空格或输入表格只有一行。
这些都是容易发生错误的情况。
可选择这些情况下的例子作为测试用例。
2)例如,前面例子中成绩报告的程序,采用错误推测法还可补充设计一些测试用例:I.程序是否把空格作为回答II.在回答记录中混有标准答案记录III.除了标题记录外,还有一些的记录最后一个字符即不是2也不是3IV.有两个学生的学号相同V.试题数是负数。
3)再如,测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:I.输入的线性表为空表;II.表中只含有一个元素;III.输入表中所有元素已排好序;IV.输入表已按逆序排好;V.输入表中部分或全部元素相同。
4因果图方法4.1 理论知识前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型).因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.利用因果图生成测试用例的基本步骤:(1) 分析软件规格说明描述中, 哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件), 并给每个原因和结果赋予一个标识符.(2) 分析软件规格说明描述中的语义.找出原因与结果之间, 原因与原因之间对应的关系. 根据这些关系,画出因果图.(3) 由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不不可能出现. 为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件.(4) 把因果图转换为判定表.(5) 把判定表的每一列拿出来作为依据,设计测试用例.从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加.前面因果图方法中已经用到了判定表.判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具.在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了.由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确.判定表通常由四个部分组成.条件桩(Condition Stub):列出了问题得所有条件.通常认为列出得条件的次序无关紧要.动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束.条件项(Condition Entry):列出针对它左列条件的取值.在所有可能情况下的真假值.动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作.规则:任何一个条件组合的特定取值及其相应要执行的操作.在判定表中贯穿条件项和动作项的一列就是一条规则.显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列.判定表的建立步骤:(根据软件规格说明)①确定规则的个数.假如有n个条件.每个条件有两个取值(0,1),故有种规则.②列出所有的条件桩和动作桩.③③填入条件项.④④填入动作项.等到初始判定表.⑤⑤简化.合并相似规则(相同动作).B. Beizer 指出了适合使用判定表设计测试用例的条件:①规格说明以判定表形式给出,或很容易转换成判定表.②条件的排列顺序不会也不影响执行哪些操作.③规则的排列顺序不会也不影响执行哪些操作.④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要.4.3.1实例一某软件规格说明中包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改。