软件测试找零钱最佳组合的测试用例

合集下载

软件测试设计

软件测试设计

软件测试设计设计测试用例即时贴程序程序功能便签的数量最多为50个标题字数最多40字节便签正文字数最多200个年份只能设置在1900-2100之间测试用例为实施测试面向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定集合解决要测什么,怎么测和如何衡量的问题测试用例的目的:执行测试,发现缺陷重复执行测试,重现缺陷管理测试过程回归测试、验证缺陷是否修复优点:使测试更加方便的执行;提高测试效率;节省测试时间;使测试更能按时间计划进行;使测试过程更方便管理准备工作收集资料需求文档设计文档遗留系统的相关文档与相关人员讨论探索性测试探索性测试与经过深思熟虑的、计划好的的测试过程有所不同,它依靠的是测试人员的知识水平和创造力。

可用于重现和分析缺陷、研究缺陷和程序其他模块的相关性是测试用例有利的补充具体问题具体分析测试用例的内容项目名称(版本)——模块名称——测试功能项项目人员——测试时间测试目的——预置条件——其他参考信息测试用例编号——相关用例用例说明——输入条件——执行方法预期结果测试结果缺陷编号常用的测试用例设计方法黑盒测试&白盒测试黑盒测试是对需求的所有输入条件进行测试定义:被称为功能测试或数据驱动测试,在测试时,把被测试程序视为一个黑盒,在不考虑程序内部结构和内部特性的情况下进行测试黑盒测试方法等价类划分分类每类中选取几个数值等价类划分步骤:划分等价类:不考虑程序的内部结构测试人员要对需求规格说明书的功能需求进行细致分析然后把程序的输入域划分成若干部分从每个部分中选取少数代表性数据当作测试用例,经过这种划分后,每一类的代表性数据在测试中的作用都等价于这一类的其他值。

建立等价类表确定等价类细化等价类划分等价类划分分为有效等价类和无效等价类合理的有意义的输入数据构成的集合就是有效等价类不合理的、无意义的输入数据构成的集合。

用来检查程序中功能的实现是否不符合规格说明要求。

就是无效等价类。

软件测试技术基础课后习题答案

软件测试技术基础课后习题答案
自底向上集成可以尽早的验证底层模块的行为;提高了测试效率; 一般不需要桩模块;容易对错误进行定位。但是直到最后一个模块加进 去之后才能看到整个系统的框架;驱动模块的设计工作量大;不能及时 发现高层模块设计上的错误。
混合集成具有自顶向下和自底向上两种集成策略的优点,但是在被 集成之前,中间层不能尽早得到充分的测试。
9.集成测试有哪些不同的集成方法?简述不同方法的特点。
解:集成测试通常有一次性集成、自顶向下集成、自底向上集成和混合 集成4种集成方法。
一次性集成方法需要的测试用例数目少,测试方法简单、易行。但 是由于不可避免存在模块间接口、全局数据结构等方面的问题,所以一 次运行成功的可能性不大;如果一次集成的模块数量多,集成测试后可 能会出现大量的错误,给程序的错误定位与修改带来很大的麻烦;即使 集成测试通过,也会遗漏很多错误进入系统测试。
10.系统测试主要包括哪些内容?
解:系统测试主要包括强度测试、性能测试、恢复测试、安全测试、可 靠性测试、安装测试、容量测试和文档测试。
11.验收测试是由谁完成的?通常包含哪些过程?
解:验收测试是以用户为主的测试,软件开发人员和QA(质量保证) 人员也应参加。通常包含α测试和β测试过程。
12.分析比较面向对象的软件测试与传统的软件测试的异同。
桩模块用以模拟被测模块工作过程中所调用的子模块。 函数驱动模块: void main( ) { int x,y,z; scanf(“%d%d”,&x,&y); z=divide(x,y); pr什么时候进行回归测试?
解:回归测试就是重新运行现有测试用例测试原有功能,以便确定变更 是否达到了预期的目的,检查变更是否损害了原有的正常功能。每当软 件发生变化时就应进行回归测试。

软件测试

软件测试

一、实验内容用等价类划分法设计找零钱问题的测试用例。

二,实验步骤输入一个小于100的数作为商品的价格,输出的是由随机的金额找回的钱的张数。

三,代码#include <stdio.h>int main(){int x,y=0,s,money=100;//x是剩余要找的钱,s是商品价格,y是找回的钱的张数,money是付款金额int r1=0,r2=0,r5=0,r10=0,r20=0,r50=0;while(1){s=0;r1=0,r2=0,r5=0,r10=0,r20=0,r50=0,y=0;while(1){//价格输入printf("请输入商品价格:");scanf("%d",&s);if(s>100||s<1){printf("输入的价格不正确\n\n");continue;}break;}x=money-s;while(x!=0){if(x>=50){x-=50;r50++;y++;continue;}if(x>=20){x-=20;r20++;y++;continue;}if(x>=10){x-=10;r10++;y++;continue;}if(x>=5){x-=5;r5++;y++;continue;}if(x>=2){x-=2;r2++;y++;continue;}if(x>=1){x-=1;r1++;y++;continue;}break;}printf("付款金额为%d\n",money);printf("找回50元%d张,20元%d张,10元%d张,5元%d张,2元%d 元,1元%d张\n",r50,r20,r10,r5,r2,r1);printf("共找回%d张\n",y);//是否继续循环printf("输入1 继续:");scanf("%d",&s);printf("%d",s);if(s!=1){return;}}return 0;}4.编写测试用例用例编号输入商品价格X 付款Y1 50 1002 100 1003 25 1004 101 1005 0 1005.结果输入等价类有效等价类无效等价类x 0<X<=100X>100 x<0 y Y<=100 y>=x Y>100,y<x用例编号余额S输入输出商品价格X付款Y 50元R5020元R2010元R105元R52元R21元R1备注张数1 101 100 错误2 50 100 1 13 25 1 1 1 34 100 100 05 0 100 错误。

功能性测试

功能性测试
2.题目二:三角形问题
根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
“一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。”
3.题目三:日期问题
用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month 、 day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2004 年11月29日,则该程序的输出为2004年12月1日。
无效
13
多余四位数字
(956)958——78959
无效
题目二:
根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
“一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。”
先划分等价类:
输入条件
有效等价类
无效等价类
15
【5,5,6】
1.2.3.4.20
题目三:
用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month 、 day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2004 年11月29日,则该程序的输出为2004年12月1日。
方案
内容
输入
预期输出
地区码
前缀
后缀
1
空白
从200到999之间的三位数

2015下半年软件评测师考试真题及答案-下午卷

2015下半年软件评测师考试真题及答案-下午卷

2015下半年软件评测师考试真题及答案-下午卷试题一阅读下列java程序,回答问题1至问题3,将解答填入答题纸内对应栏内。

【Java程序】public int addAppTask(Acitivity activity,Intent intent,TaskDescriptiondescription,Bitmap thumbnail){Point size=getSize();//1 final int tw=thumbnail.getWidth();final int th=thumbmail.getHeight();if(tw!=size.x||th!=size.y){ //2,3 Bitmap bm=Bitmap.createBitmap(size.x,size.y,thumbmail.getConfig()); //4 float scale;float dx=0,dy=0;if(tw*size.x>size.y*th){ //5 scale=(float)size.x/(float)th; //6 dx=(size.y-tw*scale)*0.5f;}else{ //7 scale=(float)size.y/(float)tw;dy=(size.x-th*scale)*0.5f;}Matrix matrix=new Matrix();matrix.setScale(scale, scale);matrix.postTranslate((int)(dx+0.5f),0);Canvas canvas=new Canvas(bm);canvas.drawBitmap(thumbmail,matrix,null);canvase.serBitmap(null);thumbnail=bm;}if(description==null){ //8 description =new TaskDescription(); //9 }} //10 【问题1】请简述基本路径测试法的概念。

动态规划解找零钱问题实验报告

动态规划解找零钱问题实验报告
2 3 的情况下需要执行 O(M n ) O(n ) ,而 M 小于 100 元即 10000 分,远
大于 n。本算法的动态规划算法的时间复杂性比该问题的一般动态规划 算法的效率要好得多。 该算法的时间复杂性是 10 数量级的.对于应用于 自动售货机等运行速度较慢的机器来说是不成问题的。 空间复杂度:从上面算法可知,用到了三个数组,分别为 T[n],c[j], P[i][j]。其中:i<=n,j<=M。空间复杂性主要由 P[1][j]决定,为 O(M×n)。 P(i,j)中的 i 指的 T[n]中的值.对于钱币来说一般 n 为 13 左右。该算法的 空间复杂度为 O(M x n)=O(f),而 M 小于 100 元即 10 000 分,远大于 n。

b)当 n>1 时, 若 j>T[n],即第 n 种钱币面值比所兑换零钱数小,因此有 C (n, j ) min {C (n, j T [k ]) 1} k (1 i n) 1 k n 。当 k 为 0 时,C(n,j)达到最小 值,有 P(T(k0),j)=P(T( k 0 ),j-T( k 0 ))+1 若 j=T[n],即用 n 种钱币兑换零钱,第 n 种钱币面值与兑换零钱数 j 相等,此时有 C(n,j)=C(n,T[n])=1;
P (i , j ) P (i , T [ n ])

1,i T [ n ] 0 ,i T [ n ]
若 j<T[n],即第 n 种钱币面值比所兑换零钱数大,因此兑换零钱只 需考虑前 n-1 种钱币即可,故有 C(n,j)=C(n-1,j),且 P(T(n-1),j)=0。 从以上讨论可知该问题具有重叠子问题性质。 (2) 根据分析建立正确的递归关系。 答: j % T [1] 0 C (1, j ) j / T [1] j % T [1] 0

软件质量保证与测试实验报告

软件质量保证与测试实验报告

无效等价类 3. 以 0 开头的含有非数字字符的串 4. 以 0 开头的小于 3 位的数串 5. 以 0 开头的大于 4 位的数串 6. 以非 0 开头的数串
电话号码
9. 以 0 开头的数串
7. 以非 0、非 1 开头的 7 位数 10. 以 1 开头的数串

11. 以非 0、非 1 开头的含有非法字符 7 或
8. 以非 0、非 1 开头的 8 位数 者 8 位数串 12. 以非 0、非 1 开头的小

于 7 位数串以非 0、非 1 开头的大于 8
位数串
其次:为有效等价类设计测试用例
测试数据
期望结果
010
显示有效输入
023 2234567
显示有效输入
0554 6863670
显示有效输入
覆盖范围 1、8 1、7 2、7
Factorial qjc= new Factorial(); " 您所求 " +y+" 的阶乘为 :" +(y)); break ; } case 2:{ DataSum dataSum1= new DataSum(100); "1--100 的和为 :" +(100)); break ; } } }
8
j=j%3;
9
}
10 }
说明:程序段每行开头的数字( 1~10)是对每条语句的编号。
( 1)画出程序的控制流程图(图自己完成,下图仅 供参考 )。
( 2)分别以语句覆盖、判定覆盖、测试用例的执行路径(用题中给出的语句编号表示) 。
语句覆盖:选用的测试用例是: case1
测试用例
a
b
c

找零钱最佳组合的测试用例

找零钱最佳组合的测试用例

找零钱最佳组合的测试用例假设商店货品价格 (R) 皆不大於 100 元(且为整数),若顾客付款在 100 元内 (P) ,求找给顾客之最少货币个(张)数?(货币面值50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元 (N1) 四种)正确功能:找零的组合为1/5/10/50面值组合的最小个(张)数找零数额=P-R 假设计算正确一、分析输入的情形。

1.R无效: R > 100 R<=02.R有效: 0 < R < = 100此种情况下再考虑P:2_1. P无效:P > 100 (钱给多)2_2. P无效:P < R (钱给少)2_3. P有效:R<= P <= 100 //无效输出:多找钱少找钱二、分析输出情形。

考虑输出——找零个数这里是有效数据,关于“找给顾客之最少货币个(张)数”的有效取值50:找钱面值为50元的有两种情况: 0张或/1张10:找钱面值为10元的有五种情况: 0/1/2/3/45 :找钱面值为5元的有两种情况: 0/11 :找钱面值为1元的有五种情况:0/1/2/3/4三、分析规格中每一决策点之情形考虑输出——找零数额(RR表示找零数额)1、无效输入(不找零):R > 100R <= 00 < R < = 100 P > 1000 < R < = 100 P < R输出为相应错误提示信息。

2、有效输入(找零):0 < R < = 100 && R<= P <= 100此时考虑的输出:(RR=P-R 假设计算正确不考虑此种情况无效输出)0<=RR<55<=RR<1010<=RR<5050<=RR<100用边界值分析法,取RR的有代表性的值,则RR分别取:0、1、4、5、9、10、49、50、99五、为满足以上之各种情形,测试用例设计如下:1. 货品价格 = 101 无效货品价格2. 货品价格 = 0 无效货品价格3.货品价格 = -1 无效货品价格4. 货品价格 = 100, 付款金额 = 101 无效付款5. 货品价格 = 100, 付款金额 = 99 无效付款6. 货品价格 = 100, 付款金额 = 100 不找零7. 货品价格 = 99, 付款金额 = 100 N1=18. 货品价格 = 96, 付款金额 = 100 N1=49. 货品价格 = 95, 付款金额 = 100 N5=110. 货品价格 = 91, 付款金额 = 100 N5=1, N1=411. 货品价格 = 90, 付款金额 = 100 N10=112. 货品价格 = 51, 付款金额 = 100 N10=4, N5=1,N1=413. 货品价格 = 50, 付款金额 = 100 N50=114. 货品价格 = 1, 付款金额 = 100 N50=1,N10=4,N5=1,N1=4。

软件测试用例分析-习题完美整合版1

软件测试用例分析-习题完美整合版1

场景分析法一、以答题业务为例:1.答对题目增加题目积分,积分达到设定值时奖励一个礼包;2.取题规则为随机不重复;3.答错题目后答新题.开始答题是否存在有效题目提供题目及备选答案答案是否正确增加题目积分积分大于或等于设定值?给予无有效题目提示结束奖励一个礼包1.确定基本流与备选流基本流: 步骤1. 开始答题步骤2. 判断是否存在有效题目,存在有效题目,处理:提供题目及备选答案步骤3. 用户答题并答对题目,增加用户相应积分。

步骤4. 判断积分是否达到设定值,达到,获取一个礼包,流程结束。

备选流1: 不存在有效题目基本流步骤2时,题库不存在未答题目,处理:给予无有效题目提示,流程结束。

备选流2: 答错题目基本流步骤3时,答错题目,处理:提示用户答错题目,回到基本流步骤2备选流3:答题后积分达不到设定值基本流步骤4时,答对题后积分仍达不到设定值,处理:回到基本流步骤22.确定以下用例场景:3.通过从确定执行用例场景所需的数据元素入手构建矩阵4.设计数据,把数据填入上面的用例表中二、下图所示是ATM例子的流程示意图。

2.场景设计:下表所示是生成的场景。

3.用例设计4.测试用例表三、用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时需要使用账号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。

第一步:确定基本流和备选流基本流:登录在线网站→选择物品→登录账号→付款→生成订单;备选流1:账户不存在;备选流2:账户密码错误;备选流3:用户账户余额不足;备选流4:用户账户没钱。

第二步:根据基本流和备选流确定场景场景1成功购物:备选流;场景2账号不存在:基本流,备选流1;场景3账号密码错误:基本流,备选流2;场景4账户余额不足:基本流,备选流3;场景5账户没钱:基本流,备选流4。

第三步:对每一个场景生成相应的测试用例测试用例ID 场景/条件账号密码用户账号余额预期结果1 场景1:成功购物V V V 成功购物2 场景2:账号不存在 1 n/a n/a 提示账号不存在3 场景3:账号密码错误(账号正确,密码错误)V 1 n/a 提示账号密码错误,返回基本流步骤34 场景4:用户账号余额不足V V 1 提示用户账号余额不足,请充值5 场景5:用户账号没钱V V 1 提示用户账号没有钱,请充值第四步:设计测试数据测试用例ID 场景/条件账号密码用户账号余额预期结果1 场景1:成功购物Test 123456 800 成功购物,账号余额减少100元2 场景2:账号不存在aa n/a n/a 提示账号不存在3 场景3:账号密码错误(账号正确,密码错误)Test 111111 n/a 提示账号密码错误,返回基本流步骤34 场景4:用户账号余额不足Test 123456 50 提示用户账号余额不足,请充值5 场景5:用户账号没钱Test 123456 0 提示用户账号没有钱,请充值等价类划分法一、计算保费费率的程序(1)分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。

自动售货机检测测验用例(因果图)

自动售货机检测测验用例(因果图)

题目:有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。

其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。

若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。

1.分析这一段说明,列出原因和结果原因:1.售货机有零钱找2.投入1元硬币3.投入5角硬币4.押下橙汁按钮5.押下啤酒按钮结果:21.售货机〖零钱找完〗灯亮22.退还1元硬币23.退还5角硬币24.送出橙汁饮料25.送出啤酒饮料2.画出因果图如图所示。

所有原因结点列在左边,所有结果结点列在右边。

建立中间结点,表示处理的中间状态。

中间结点:11. 投入1元硬币且押下饮料按钮12. 押下〖橙汁〗或〖啤酒〗的按钮13. 应当找5角零钱并且售货机有零钱找14. 钱已付清3.转换成判定表:4.设计测试用例1)在售货机有零钱找的情况下,投入1元硬币,押下橙汁按钮,找回5角硬币并送出橙汁饮料。

2)在售货机有零钱找的情况下,投入1元硬币,押下啤酒按钮,找回5角硬币并送出啤酒饮料。

3)在售货机有零钱找的情况下,投入1元硬币,系统不做任何处理。

4)在售货机有零钱找的情况下,投入5角硬币,押下橙汁按钮,送出橙汁饮料。

5)在售货机有零钱找的情况下,投入5角硬币,押下啤酒按钮,送出啤酒饮料。

6)在售货机有零钱找的情况下,投入5角硬币,系统不做任何处理。

7)在售货机有零钱找的情况下,押下橙汁按钮,系统不做任何处理。

8)在售货机有零钱找的情况下,押下啤酒按钮,系统不做任何处理。

9)在售货机没有零钱找的情况下,投入1元硬币,押下橙汁按钮,售货机“零钱找完”灯亮,并退还1元硬币。

10)在售货机没有零钱找的情况下,投入1元硬币,押下啤酒按钮,售货机“零钱找完”灯亮,并退还1元硬币。

11)在售货机没有零钱找的情况下,投入1元硬币,售货机“零钱找完”灯亮。

常见用例设计方式介绍

常见用例设计方式介绍

常见用例设计方式介绍一、等价类划分法等价类划分法是把程序的输入域划分成若干部份(子集),然后从每一个部份当选取少数代表性数据作为测试用例。

每一类的代表性数据在测试中的作用等价于这一类中的其他值。

等价类划分可有两种不同的情形:有效等价类和无效等价类。

有效等价类:是指对于程序的规格说明来讲是合理的,成心义的输入数据组成的集合,利用有效等价类可查验程序是不是实现了规格说明中所规定的功能和性能。

无效等价类:与有效等价类的概念刚巧相反。

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

一、六条肯定等价类的原则:①在输入条件规定了取值范围或值的个数的情形下,则能够确立一个有效等价类和两个无效等价类。

例:输入值是学生成绩,范围是0~100:②在输入条件规定了输入值的集合或规定了“必需如何”的条件的情形下,可确立一个有效等价类和一个无效等价类。

③在输入条件是一个布尔量的情形下,可肯定一个有效等价类和一个无效等价类。

④在规定了输入数据的一组值(假定n个),而且程序要对每一个输入值别离处置的情形下,可确立n个有效等价类和一个无效等价类。

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

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

二、实例:【保险费率计算】某保险公司承担人寿保险已有连年历史,该公司保费计算方式为投保额*保险率,保险率又依点数不同而有别,1点以上费率为%,10点以下费率为%:输入数听说明:年龄20~39岁6点40~59岁4点60岁以上20岁以下2点性别MALE 5点FEMALE 3点婚姻已婚3点未婚5点扶养人数一人扣点最多扣3 点(四舍五A、分析输入数据型式:年龄:一或两位数字。

性别:Male]、[Female]、[M]、[F]表示婚姻:[已婚]、[未婚]扶养人数:空白或一名数字保险费率:10点以上,10点以下B、划分输入数据:C、设计输入数据:D、按照以上分析测试用例数据:二、边界值分析法边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方式。

软件测试设计题

软件测试设计题

四.设计题1.某城市的电话号码由三部分组成。

这三部分的名称和内容分别是地区码:空白或三位数字;前缀:非’0’或’1’开头的三位数;后缀:四位数字。

假定被调试的程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的号码,试用等价分类法来设计它的调试用例。

解:第一步:划分等价类,包括4个有效等价类,11个无效等价类。

第二步:确定调试用例。

调试数据范围期望结果( ) 276-2345 等价类(1),(3),(4) 有效(635) 805-9321 等价类(2),(3),(4) 有效对11个无效等价类,要选择11个调试用例,如下所示:调试数据范围期望结果(20A) 123-4567 无效等价类(5) 无效(33 ) 234-5678 无效等价类(6) 无效(7777) 345-6789 无效等价类(7) 无效(777) 34A-6789 无效等价类(8) 无效(234) 045-6789 无效等价类(9) 无效(777) 145-6789 无效等价类(10) 无效(777) 34-6789 无效等价类(11) 无效(777) 2345-6789 无效等价类(12) 无效(777) 345-678A 无效等价类(13) 无效(777) 345-678 无效等价类(14) 无效(777) 345-56789 无效等价类(15) 无效选取的调试数据可以不同,关键是与调试内容相符。

2.按要求给出下列程序的测试用例(要求写出必要的说明):(1)语句覆盖(2)判定覆盖(3)条件覆盖(4)判定-条件覆盖(5)条件组合覆盖图中共有4。

1.P1正好满足语句覆盖的条件。

可以设计如下的输入数据:A=2,B=0,x=42.测试用例如果能够测试路径P1(ace)和P2(abd),就可以满足判定覆盖要求。

可以设计如下两组输入数据:A=2,B=0,x=4A=1,B=1,x=13.条件:A>1,B=0,A=2,x>1。

需要有足够的测试用例使得上述四个条件都能有满足和不满足的情况。

实验2、黑盒测试:边界值分析法及测试用例设计

实验2、黑盒测试:边界值分析法及测试用例设计
23
49
9
T12
85
75
10
1
T13
80
71
9
5
T14
95
90
5
1
T15
55
51
4
4
T16
60
60
0
0
3执行测试,填写软件缺陷报告(软件缺陷报告格式同实验1)。
测试模块:
找零钱计算模块
开发者:
赵永标
测试员:
李超
测试日期:
2011年4月28日
软件缺陷列表
缺陷ID
缺陷详细信息
BUG1
付款为-1,总价为50时,预期为超出范围,但输出为50的张数为:-1;10的张数为0;5的张数为:0;1的张数为:-1;总张数为:-2
2运用健壮性边界条件法设计测试用例,得到测试用例表(测试用例表格式同实验1)。
付款
总价
余额
预期输出
T1
-1
50
超出范围
T2
0
50
不可能
T3
100
50
50
1
T50
-1
超出范围
T6
50
0
50
1
T7
50
100
不可能
T8
50
101
超出范围
T9
50
51
不可能
T10
60
59
1
1
T11
72
BUG2
付款为100,总价为50时,预期为:1,但输出为50的张数为:0;10的张数为0,5的张数为:0;1的张数为:0;总张数为:0
BUG3
付款为50,总价为-1时,预期为超出范围,但输出为50的张数为:1;10的张数为0;5的张数为:0;1的张数为:1;总张数为:2

2015下半年软件评测师考试真题及答案-下午卷

2015下半年软件评测师考试真题及答案-下午卷

2015下半年软件评测师考试真题及答案-下午卷试题一阅读下列java程序,回答问题1至问题3,将解答填入答题纸内对应栏内。

【Java程序】public int addAppTask(Acitivity activity,Intent intent,TaskDescriptiondescription,Bitmap thumbnail){Point size=getSize();//1 final int tw=thumbnail.getWidth();final int th=thumbmail.getHeight();if(tw!=size.x||th!=size.y){ //2,3 Bitmap bm=Bitmap.createBitmap(size.x,size.y,thumbmail.getConfig()); //4 float scale;float dx=0,dy=0;if(tw*size.x>size.y*th){ //5 scale=(float)size.x/(float)th; //6 dx=(size.y-tw*scale)*0.5f;}else{ //7 scale=(float)size.y/(float)tw;dy=(size.x-th*scale)*0.5f;}Matrix matrix=new Matrix();matrix.setScale(scale, scale);matrix.postTranslate((int)(dx+0.5f),0);Canvas canvas=new Canvas(bm);canvas.drawBitmap(thumbmail,matrix,null);canvase.serBitmap(null);thumbnail=bm;}if(description==null){ //8 description =new TaskDescription(); //9 }} //10 【问题1】请简述基本路径测试法的概念。

软件测试实验报告

软件测试实验报告

软件测试实验报告姓名:*******专业:********************* 班级:***********学号:*************日期:2011-5-25实验一:黑盒测试一、实验目的:了解三角形问题的边界值分析测试用例。

二、实验要求:在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。

在此,我们将三角形每边边长的取范围值设值为[1, 100] 。

在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。

利用这些信息能够确定下列输出(值域)等价类。

R1 = { <a,b,c>: 边为a,b,c的等边三角形}R2 = { <a,b,c>: 边为a,b,c的等腰三角形}R3 = { <a,b,c>: 边为a,b,c的一般三角形}R4 = { <a,b,c>: 边为a,b,c不能组成三角形}三、实验程序:#include "iostream.h"void main(){int a,b,c;cout<<"请输入1<=a<=100或1<=b<=100或1<=c<=100"<<endl;cin>>a>>b>>c;if((1<=a&&a<=100)&&(1<=b&&b<=100)&&(1<=c&&c<=100)){if(a+b>c&&a+c>b&&c+b>a){if(a==b&&a==c&&c==b){ cout<<"三角形为等边三角形"<<endl;}else if(a==b||a==c||c==b){cout<<"三角形为等腰三角形"<<endl;}else if((a*a+b*b)==c*c||(c*c+b*b)==a*a||(a*a+c*c)==b*b){cout<<"三角形为直角三角形"<<endl;}else cout<<"a,b,c可组成三角形"<<endl;}else cout<<"不存在a,b,c组成的三角形"<<endl;}else cout<<"a或b或c的值不合法,无法判断"<<endl;}四、测试用列:用列ID a b c 预期输出1 1 1 1 三角形为等边三角形2 2 2 1 三角形为等腰三角形3 345 三角形为直角三角形4 2 2 2 三角形为等边三角形5 2 3 3 三角形为等腰三角形6 4 3 5 三角形为直角三角形7 5 4 3 三角形为直角三角形8 1 1 2 不存在a,b,c组成的三角形9 4 2 2 不存在a,b,c组成的三角形10 2 4 2 不存在a,b,c组成的三角形11 4 2 5 不存在a,b,c组成的三角形12 0 0 0 a或b或c的值不合法,无法判断13 0 1 1 a或b或c的值不合法,无法判断14 2 0 12 a或b或c的值不合法,无法判断15 13 13 0 a或b或c的值不合法,无法判断16 100 100 100 三角形为等边三角形17 100 100 0 a或b或c的值不合法,无法判断18 100 12 101 a或b或c的值不合法,无法判断19 100 12 100 不存在a,b,c组成的三角形20 90 90 80 三角形为等腰三角形五、等价类划分:输入条件有效等价类编号无效等价类编号三角形a+b>c&&a+c>b&&c+b>a&&a=b& &c=b 1 a<1,a>100,b<1,b>100,c<1,c>1005a+b>c&&a+c>b&&c+b>a&&a=b||c=b2a+b>c&&a+c>b&&c+b>a&& 3非三角形a+b<c||a+c<b||c+b<a 4六、实验结论:通过实验要求的条件编写的程序和测试用列的预期输出证明给该程序是正确的实验二:黑盒测试1.一、实验目的:了解xtDate函数的边界值分析测试用例。

自动售货饮料机软件测试用例设计(测试培训)

自动售货饮料机软件测试用例设计(测试培训)

自动售货饮料机软件测试用例设计(测试培训)
(1) 分析这一段说明,列出原因和结果
原因: 1. 售货机有零钱找
2. 投入1元硬币
3. 投入5角硬币
4. 押下橙汁按钮
5. 押下啤酒按钮
建立中间结点,表示处理中间状态
11. 投入1元硬币且押下饮料按钮
12. 押下〖橙汁〗或〖啤酒〗的按钮
13. 应当找5角零钱并且售货机有零钱找
14. 钱已付清
结果:21. 售货机〖零钱找完〗灯亮
22. 退还1元硬币
23. 退还5角硬币
24. 送出橙汁饮料
25. 送出啤酒饮料
(2) 画出因果图。

所有原因结点列在左边,所有结果结点列在右边。

(3) 由于 2 与 3 ,4 与 5 不能同时发生,分别加上约束条件E。

(4) 因果图
(5) 转换成判定表。

软件测试找零钱最佳组合的测试用例

软件测试找零钱最佳组合的测试用例

软件测试找零钱最佳组合的测试⽤例找零钱最佳组合的测试⽤例假设商店货品价格(R)皆不⼤於100元(且为整数),若顾客付款在100元内(P),求找给顾客之最少货币个(张)数?(货币⾯值50元(N50),10元(N10),5元(N5),1元(N1)四种)正确功能:找零的组合为1/5/10/50⾯值组合的最⼩个(张)数找零数额=P-R假设计算正确⼀、分析输⼊的情形。

1.R⽆效:R>100R<=02.R有效:0此种情况下再考虑P:2_1.P⽆效:P>100(钱给多)2_2.P⽆效:P2_3.P有效:R<=P<=100//⽆效输出:多找钱少找钱⼆、分析输出情形。

考虑输出——找零个数这⾥是有效数据,关于"找给顾客之最少货币个(张)数"的有效取值50:找钱⾯值为50元的有两种情况:0张或/1张10:找钱⾯值为10元的有五种情况:0/1/2/3/45 :找钱⾯值为5元的有两种情况: 0/11 :找钱⾯值为1元的有五种情况:0/1/2/3/4三、分析规格中每⼀决策点之情形考虑输出——找零数额(RR表⽰找零数额)1、⽆效输⼊(不找零):R>100R<=0P>100P输出为相应错误提⽰信息。

2、有效输⼊(找零):此时考虑的输出:(RR=P-R 假设计算正确不考虑此种情况⽆效输出)0<=RR<55<=RR<1010<=RR<5050<=RR<100⽤边界值分析法,取RR的有代表性的值,则RR分别取:0、1、4、5、9、10、49、50、99五、为满⾜以上之各种情形,测试⽤例设计如下:1. 货品价格 = 101 ⽆效货品价格2. 货品价格 = 0 ⽆效货品价格3.货品价格 = -1 ⽆效货品价格4. 货品价格 = 100, 付款⾦额 = 101 ⽆效付款5. 货品价格 = 100, 付款⾦额 = 99 ⽆效付款6. 货品价格 = 100, 付款⾦额 = 100 不找零7. 货品价格 = 99, 付款⾦额 = 100 N1=18. 货品价格 = 96, 付款⾦额 = 100 N1=49. 货品价格 = 95, 付款⾦额 = 100 N5=110. 货品价格 = 91, 付款⾦额 = 100 N5=1, N1=411. 货品价格 = 90, 付款⾦额 = 100 N10=112. 货品价格 = 51, 付款⾦额 = 100 N10=4, N5=1,N1=413. 货品价格 = 50, 付款⾦额 = 100 N50=114. 货品价格 = 1, 付款⾦额 = 100 N50=1,N10=4,N5=1,N1=4。

软件测试 三角形问题,找零钱,最佳组合问题

软件测试 三角形问题,找零钱,最佳组合问题

武 夷 学 院实验报告数学与计算机系实验一三角形问题、找零钱最佳组合问题的第一次测试一、实验目的通过本次实验使学生对软件测试过程有个初步了解,并具备针对功能的测试用例的设计。

二、实验环境硬件环境:微型计算机。

软件环境:Windows 操作系统,Microsoft Visual Studio 2005等。

三、实验内容题目一:三角形问题输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。

要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。

题目二:找零钱最佳组合问题假设商店货品价格(R)皆不大于100 元(且为整数),若顾客付款在100 元内 (P) ,求找给顾客最少货币个(张)数?(货币面值50 元10 元,5 元,1 元四种)1.仿照NextDate问题,分析三角形问题的功能,针对三角形问题的功能设计测试用例,并对测试结果进行分析。

2.仿照NextDate问题,分析找零钱最佳组合问题的功能,针对找零钱最佳组合问题的功能设计测试用例,并对测试结果进行分析。

四、实验步骤1.编写程序三角形问题和找零钱最佳组合问题(1)三角形问题程序#include <stdio.h>#include <stdlib.h>void formed(int, int, int);void type (int, int, int);main(){int a, b, c;while(1){printf("pls enter lenth of three sides of triangle (upper than 1 , lower than 200):\n");scanf("%d,%d,%d",&a, &b, &c);if (a >= 1 && a <= 200 && b >= 1 && b<= 200 && c >= 1 && c <= 200){formed(a,b,c);printf("\n");} elseprintf("error input: three sides must be upper than 1and lower than 200!\n");}}voidformed(int a, int b, int c){if(a + b > c && a + c > b && b + c > a){printf("these lines form a triangle! \n");type(a,b,c);} else {printf("these lines ain't form a triangle \n");}}voidtype(int a, int b, int c){if (a == b || b == c || a == c){if (a == b && b == c)printf("it's Isosceles triangle! \n");elseprintf("it's regular triangle! \n");}if (a*a + b*b == c*c)printf("it's right triangle! \n");}(2)找零钱最佳组合问题程序#include <stdio.h>#include <stdlib.h>void calc(int);main(){int cash, pay;while(1){printf("Please enter the price of goods: ");scanf("%d", &cash);printf("Please enter what customer paid: ");scanf("%d", &pay);cash = pay - cash;if (cash < 0){printf("Error Input: \n");continue;} else if (cash == 0) {printf("No change note! \n");continue;}if (cash >= 100 || cash <= 0)printf("Error input: price must be upper than 0 and lower than 100 \n");else {printf("\n");calc(cash);printf("\n");}}}voidcalc(int cash){int c50, c10, c5, c1;c50 = c10 = c5 = c1 = 0;printf("Change Note: ¥%d\n", cash);while(cash - 50 >= 0){c50 += 1;cash -= 50;}while(cash - 10 >= 0){c10 += 1;cash -= 10;}while(cash - 5 >= 0){c5 += 1;cash -= 5;}while(cash - 1 >= 0){c1 += 1;cash -= 1;}printf(" -----------\n");printf(" ¥50 x %d\n", c50);printf(" ¥10 x %d\n", c10);printf(" ¥ 5 x %d\n", c5);printf(" ¥ 1 x %d\n", c1);printf(" -----------\n");printf("Total: %d\n", c50 + c10 + c5 + c1);}2.三角形问题的测试(1)三角形问题的功能分析a、判断能否组成三角形:任意两边的和大于第三边。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

边界值分析是一种黑盒测试方法,是对等价类分析方法的一种补充,由长期的测试工作经验得知,大量的错误是发生在输入或输出的边界上。

因此针对各种边界情况设计测试用例,可以查出更多的错误。

选择测试用例的原则:
一、如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据;
二、如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多1个、比最小个数少1个的数做为测试数据;
三、根据规格说明的每一个输出条件,使用规则一;
四、根据规格说明的每一个输出条件,使用规则二;
五、如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个和最后一个元素作为测试用例;
六、如果程序用了一个内部结构,应该选取这个内部数据结构的边界值作为测试用例;
七、分析规格说明,找出其他可能的边界条件。

找零钱最佳组合的测试用例
假设商店货品价格 (R) 皆不大於 100 元(且为整数),若顾客付款在 100 元内 (P) ,求找给顾客之最少货币个(张)数?(货币面值50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元 (N1) 四种)
正确功能:找零的组合为1/5/10/50面值组合的最小个(张)数
找零数额=P-R 假设计算正确
一、分析输入的情形。

1.R无效: R > 100 R<=0
2.R有效: 0 < R < = 100
此种情况下再考虑P:
2_1. P无效:P > 100 (钱给多)
2_2. P无效:P < R (钱给少)
2_3. P有效:R<= P <= 100 //无效输出:多找钱少找钱
二、分析输出情形。

考虑输出——找零个数
这里是有效数据,关于" 找给顾客之最少货币个(张)数"的有效取值
50:找钱面值为50元的有两种情况: 0张或/1张
10:找钱面值为10元的有五种情况: 0/1/2/3/4
5 :找钱面值为5元的有两种情况: 0/1
1 :找钱面值为1元的有五种情况:0/1/2/3/4
三、分析规格中每一决策点之情形
考虑输出——找零数额(RR表示找零数额)
1、无效输入(不找零):
R > 100
R <= 0
0 < R < = 100 P > 100
0 < R < = 100 P < R
输出为相应错误提示信息。

2、有效输入(找零):
0 < R < = 100 && R<= P <= 100
此时考虑的输出:(RR=P-R 假设计算正确不考虑此种情况无效输出)0<=RR<5
5<=RR<10
10<=RR<50
50<=RR<100
用边界值分析法,取RR的有代表性的值,
则RR分别取:0、1、4、5、9、10、49、50、99
五、为满足以上之各种情形,测试用例设计如下:
1. 货品价格 = 101 无效货品价格
2. 货品价格 = 0 无效货品价格
3.货品价格 = -1 无效货品价格
4. 货品价格 = 100, 付款金额 = 101 无效付款
5. 货品价格 = 100, 付款金额 = 99 无效付款
6. 货品价格 = 100, 付款金额 = 100 不找零
7. 货品价格 = 99, 付款金额 = 100 N1=1
8. 货品价格 = 96, 付款金额 = 100 N1=4
9. 货品价格 = 95, 付款金额 = 100 N5=1
10. 货品价格 = 91, 付款金额 = 100 N5=1, N1=4
11. 货品价格 = 90, 付款金额 = 100 N10=1
12. 货品价格 = 51, 付款金额 = 100 N10=4, N5=1,N1=4
13. 货品价格 = 50, 付款金额 = 100 N50=1
14. 货品价格= 1, 付款金额= 100 N50=1,N10=4,N5=1,N1=4。

相关文档
最新文档