软件测试--付款找零问题[求补充]
付款找零问题
假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。 假定此商店的货币面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四种。
一.程序设计采用结构化和面向对象的程序设计思想(10分)
二.采用黑盒测试技术设计测试用例(25分)
1. 边界值测试
(1) 边界值分析
(2) 边界值测试用例表
2. 等价类测试
(1) 等价类划分分析
(2) 等价类测试用例表
接下来这些要求没有做出来
1. 所选题目
付款找零问题
2. 主要代码
3. 黑盒测试技术测试用例设计
(1)边界值测试
Ⅰ.边界值分析: 基本思想:使用输入的最小值,略高于最小值,正常值,略低于最大值,最大值;所以R,P的边界值为0,1,2,50,99,100,101,
Ⅱ.边界值测试用例表:测试用例数:3*4+1=13个
测试用例编号 输入数据 预期输出 测试结果
R P
NO.1 0 100 Beyond 1-100 Beyond 1-100
NO.2 1 100 Change¥50:sheets 1 Change¥50:sheets 1
Change¥10:sheets 4 Change¥10:sheets 4
Change¥05:sheets 1 Change¥05:sheets 1
Change¥01:sheets 4 Change¥01:sheets 4
NO.3 2 100 Change¥50:sheets 1 Change¥50:sheets 1
Change¥10:sheets 4 Change¥10:sheets 4
Change¥05:sheets 1 Change¥05:sheets 1
Change¥01:sheets 3 Change¥01:sheets 3
NO.4 50 100 Change¥50:sheets 1 Change¥50:sheets 1
Change¥10:sheets 0 Change¥10:sheets 0
Change¥05:sheets 0 Change¥05:sheets 0
Change¥01:sheets 0 Change¥01:sheets 0
NO.5 99 100 Change¥50:sheets 0 Change¥50:sheets 0
Change¥10:sheets 0 Change¥10:sheets 0
Change¥05:sheets 0 Change¥05:sheets 0
Change¥01:sheets 1 Change¥01:sheets 1
NO.6 100 100 No Change No Change
NO.7 101 100 Beyond 1-100 Beyond 1-100
NO.8 100 0 Beyond 1-100 Beyond 1-100
NO.9 100 1 Pay isn't enough! Pay isn't enough!
NO.10 100 2 Pay isn't enough! Pay isn't enough!
NO.11 100 50 Pay isn't enough! Pay isn't enough!
NO.12 100 99 Pay isn't enough! Pay isn't enough!
NO.13 100 101 Beyond 1-100 Beyond 1-100
(2)等价类测试
Ⅰ.付款找零问题第一次等价类划分尝试
有效等价类 无效等价类
0<R<=P=100且为正整数 R,P非正整数
P<R
R,P∉[1,100]
Ⅱ. 付款找零问题第二次等价类划分尝试
等价类 输入数据 找零
P R (Change)
有效等价类 P-R=0; 0<R<=P<=100 T1 :Change=0
P-R∈(0,5); 0<R<=P<=100 T2 :0<Change<5
P-R∈[5,10); 0<R<=P<=100 T3 :5<=Change<10
P-R∈[10,50); 0<R<=P<=100 T4:10<=Change<50
P-R∈[50,100); 0<R<=P<=100 T5 :50<=Change<100
无效等价类 P-R<0;P,R∈[1,100] T6 :Change<0
P-R>=100 T7 :Change>=100
T8 :非正整数 错误数据
T9:范围超出
Ⅲ. 付款找零问题测试用例
测试用例编号 输入数据 预期输出 覆盖等价类 测试结果
R P
NO.1 50 50 No Change T1 No Change
NO.2 96 100 Change¥50:sheets 0 Change¥50:sheets 0
Change¥10:sheets 0 Change¥10:sheets 0
Change¥05:sheets 0 Change¥05:sheets 0
Change¥01:sheets 4 T2 Change¥01:sheets 4
NO.3 42 50 Change¥50:sheets 0
Change¥10:sheets 0
Change¥05:sheets 1
Change¥01:sheets 3 T3 。。。。。。
NO.4 15 50 Change¥50:sheets 0
Change¥10:sheets 3
Change¥05:sheets 1
Change¥01:sheets 0 T4 。。。。。。
NO.5 12 100 Change¥50:sheets 1
Change¥10:sheets 3
Change¥05:sheets 1
Change¥01:sheets 3 T5 。。。。。。。。
NO.6 100 50 Pay isn't enough! T6 Pay isn't enough!
NO.7 100 0 Beyond 1-100 T7 Beyond 1-100
NO.8 1.5 50 Confirm integer! T8 Confirm integer!
NO.9 50 A Confirm integer! T8 Confirm integer!
NO.10 -5 50 Confirm integer! T8 Confirm integer!
NO.11 500 1000 Beyond 1-100 T9 Beyond 1-100
/*******************************************************************/
接下类的不会了,,ԾㅂԾ,,
假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。 假定此商店的货币面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四种。
一.程序设计采用结构化和面向对象的程序设计思想(10分)
二.采用黑盒测试技术设计测试用例(25分)
1. 边界值测试
(1) 边界值分析
(2) 边界值测试用例表
2. 等价类测试
(1) 等价类划分分析
(2) 等价类测试用例表
接下来这些要求没有做出来
3. 基于决策表的测试
(1) 决策表测试分析
(2) 基于决策表的测试用例表
三.采用白盒测试技术设计测试用例(25分)
1. 静态白盒测试
2. 对判断的测试
(1) 在六种选取1种判定测试覆盖指标进行分析
(2) 测试用例表
3. 对路径的测试
(1) 程序图
(2) 环复杂度
(3) 独立路径的抽取
(4) 不可行路径的处理
(5) 测试用例表
4. 对循环的测试
5. 对变量的测试
四.单元测试(20分)
1.驱动模块与桩模块的开发
(1)读入一批测试用例,对每个测试用例能够读入基本信息并显示出来
(2)利用测试用例来驱动(调用)被测试函数
(3)显示测试用例的实际输出并能与预期输出进行比较,给出判定结果1. 所选题目
付款找零问题
2. 主要代码
int R, P, N;
Scanner input = new Scanner(System.in);
System.out.println("Please input Price & Pay:");
String a = input.next();
String b = input.next();
// 判断输入是否数字
if (a.matches("\\d+") && b.matches("\\d+")) {
R = Integer.parseInt(a);
P = Integer.parseInt(b);
//判断是否在输入范围
if(R>0&&R<=100&&P>0&&P<=100){
int Num50,Num10,Num5,Num1;
N=P-R;
if(N>=0){
Num50=N/50;
N=N-50*Num50;
Num10=N/10;
N=N-10*Num10;
Num5=N/5;
N=N-5*Num5;
Num1=N;
if(Num50==0 && Num10==0 && Num5==0 && Num1==0){
System.out.println("No Change");
}else{
System.out.println("Change¥50:sheets "+Num50);
System.out.println("Change¥10:sheets "+Num10);
System.out.println("Change¥05:sheets "+Num5);
System.out.println("Change¥01:sheets "+Num1);
}
}else{
System.out.println("Pay isn't enough!");
}
}else{
System.out.println("Beyond 1-100");
}
} else {
System.out.println("Confirm integer!");
}
}3. 黑盒测试技术测试用例设计
(1)边界值测试
Ⅰ.边界值分析: 基本思想:使用输入的最小值,略高于最小值,正常值,略低于最大值,最大值;所以R,P的边界值为0,1,2,50,99,100,101,
Ⅱ.边界值测试用例表:测试用例数:3*4+1=13个
测试用例编号 输入数据 预期输出 测试结果
R P
NO.1 0 100 Beyond 1-100 Beyond 1-100
NO.2 1 100 Change¥50:sheets 1 Change¥50:sheets 1
Change¥10:sheets 4 Change¥10:sheets 4
Change¥05:sheets 1 Change¥05:sheets 1
Change¥01:sheets 4 Change¥01:sheets 4
NO.3 2 100 Change¥50:sheets 1 Change¥50:sheets 1
Change¥10:sheets 4 Change¥10:sheets 4
Change¥05:sheets 1 Change¥05:sheets 1
Change¥01:sheets 3 Change¥01:sheets 3
NO.4 50 100 Change¥50:sheets 1 Change¥50:sheets 1
Change¥10:sheets 0 Change¥10:sheets 0
Change¥05:sheets 0 Change¥05:sheets 0
Change¥01:sheets 0 Change¥01:sheets 0
NO.5 99 100 Change¥50:sheets 0 Change¥50:sheets 0
Change¥10:sheets 0 Change¥10:sheets 0
Change¥05:sheets 0 Change¥05:sheets 0
Change¥01:sheets 1 Change¥01:sheets 1
NO.6 100 100 No Change No Change
NO.7 101 100 Beyond 1-100 Beyond 1-100
NO.8 100 0 Beyond 1-100 Beyond 1-100
NO.9 100 1 Pay isn't enough! Pay isn't enough!
NO.10 100 2 Pay isn't enough! Pay isn't enough!
NO.11 100 50 Pay isn't enough! Pay isn't enough!
NO.12 100 99 Pay isn't enough! Pay isn't enough!
NO.13 100 101 Beyond 1-100 Beyond 1-100
(2)等价类测试
Ⅰ.付款找零问题第一次等价类划分尝试
有效等价类 无效等价类
0<R<=P=100且为正整数 R,P非正整数
P<R
R,P∉[1,100]
Ⅱ. 付款找零问题第二次等价类划分尝试
等价类 输入数据 找零
P R (Change)
有效等价类 P-R=0; 0<R<=P<=100 T1 :Change=0
P-R∈(0,5); 0<R<=P<=100 T2 :0<Change<5
P-R∈[5,10); 0<R<=P<=100 T3 :5<=Change<10
P-R∈[10,50); 0<R<=P<=100 T4:10<=Change<50
P-R∈[50,100); 0<R<=P<=100 T5 :50<=Change<100
无效等价类 P-R<0;P,R∈[1,100] T6 :Change<0
P-R>=100 T7 :Change>=100
T8 :非正整数 错误数据
T9:范围超出
Ⅲ. 付款找零问题测试用例
测试用例编号 输入数据 预期输出 覆盖等价类 测试结果
R P
NO.1 50 50 No Change T1 No Change
NO.2 96 100 Change¥50:sheets 0 Change¥50:sheets 0
Change¥10:sheets 0 Change¥10:sheets 0
Change¥05:sheets 0 Change¥05:sheets 0
Change¥01:sheets 4 T2 Change¥01:sheets 4
NO.3 42 50 Change¥50:sheets 0
Change¥10:sheets 0
Change¥05:sheets 1
Change¥01:sheets 3 T3 。。。。。。
NO.4 15 50 Change¥50:sheets 0
Change¥10:sheets 3
Change¥05:sheets 1
Change¥01:sheets 0 T4 。。。。。。
NO.5 12 100 Change¥50:sheets 1
Change¥10:sheets 3
Change¥05:sheets 1
Change¥01:sheets 3 T5 。。。。。。。。
NO.6 100 50 Pay isn't enough! T6 Pay isn't enough!
NO.7 100 0 Beyond 1-100 T7 Beyond 1-100
NO.8 1.5 50 Confirm integer! T8 Confirm integer!
NO.9 50 A Confirm integer! T8 Confirm integer!
NO.10 -5 50 Confirm integer! T8 Confirm integer!
NO.11 500 1000 Beyond 1-100 T9 Beyond 1-100
/*******************************************************************/
接下类的不会了,,ԾㅂԾ,,
(3)基于决策表的测试
4. 白盒测试技术测试用例设计
5. 驱动程序开发代码
6. 测试结果及分析
...全文
相关推荐
软件测试实验报告——找零钱问题
《软件测试实验报告——找零钱问题》详细分析本次实验是关于软件测试的一个实践,主要目的是通过白盒测试方法来验证一个找零钱问题的C++程序的正确性。
软件测试技术实验报告.doc
在实验描述的问题中,黑盒测试的目标是验证程序能否在顾客付款后给出找零钱的最佳组合。
软件测试(单元测试)
#### 实验内容示例假设我们有一个用于计算找零钱最佳组合的程序。该程序根据顾客付款金额P和商品价格R来计算找零钱的最佳组合。这里的“最佳”指的是使用最少数量的货币单位来完成找零。
软件测试用例的设计-边界值法
"本文主要介绍了软件测试中的边界值分析法,一种有效的黑盒测试策略,用于补充等价类分析,特别关注输入和输出的边界条件,以提高错误检测能力。测试用例的选择遵循特定原则,包括选取范围边界值、数量边界值、有
软件测试边界值测试实验报告.pdf
通过这样的测试用例设计,能够最大程度地暴露程序在边界条件下的潜在问题。再来看找零钱最佳组合问题。在这个问题中,商品价格和付款金额均不超过100元,货币面值包括50元、10元、5元和1元。


