有一个处理单价为5角钱的饮料的自动售货机,相应规格说明如下: 若投入5角钱或1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。(每次只投入一个硬币,只押下一种饮料的按钮) 如投入5角的硬币,按下按钮后,总有饮料送出。 若售货机没有零钱找,则一个显示〖零钱找完〗的红灯会亮,这时再投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来。 若有零钱找,则显示〖零钱找完〗的红灯不会亮,若投入 1元硬币及按饮料按钮,则送出饮料的同时找回5角硬币。 请选择适当的黑盒测试方法,写出选择该方法的原因,并使用该方法的步骤,设计出相应的测试用例。
时间: 2024-02-26 11:52:39 浏览: 39
选择等价类划分法进行黑盒测试。
原因:该方法适用于输入的数据有多个等效类(即具有相同的功能和属性),且这些等效类对程序的执行结果产生相同的影响。在本题中,投入的硬币和按下的饮料按钮均属于等效类,且对程序的执行结果产生相同的影响。
步骤:
1. 确定等效类划分:根据规格说明,可以将硬币的投入和按钮的按下分为两个等效类,即5角钱和1元钱两个等效类。
2. 确定测试用例:根据等效类划分,可以设计出以下测试用例:
- 投入5角钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮;
- 投入1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮;
- 投入5角钱的硬币,不按下按钮;
- 投入1元钱的硬币,不按下按钮;
- 投入除5角钱和1元钱以外的硬币,按下〖橙汁〗或〖啤酒〗的按钮;
- 投入5角钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,售货机没有零钱找;
- 投入1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,售货机没有零钱找;
- 投入1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,售货机有零钱找;
- 投入5角钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,售货机有零钱找;
- 投入5角钱和1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,售货机有零钱找。
3. 执行测试用例,验证程序的正确性。
相关问题
有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的
### 回答1:
提示会出现在售货机的显示屏上。
测试用例设计如下:
1. 投入5角钱硬币,按下〖橙汁〗按钮,检查是否成功出售橙汁。
2. 投入1元钱硬币,按下〖啤酒〗按钮,检查是否成功出售啤酒。
3. 投入其他面额的硬币,按下〖橙汁〗或〖啤酒〗按钮,检查是否提示〖零钱找完〗。
4. 投入5角钱硬币,按下〖橙汁〗按钮,检查是否成功出售橙汁,并检查是否有零钱找回。
5. 投入1元钱硬币,按下〖啤酒〗按钮,检查是否成功出售啤酒,并检查是否有零钱找回。
6. 投入5角钱硬币,按下〖啤酒〗按钮,检查是否提示〖零钱找完〗。
7. 投入1元钱硬币,按下〖橙汁〗按钮,检查是否提示〖零钱找完〗。
8. 投入5角钱和1元钱硬币,按下〖橙汁〗或〖啤酒〗按钮,检查是否成功出售饮料,并检查是否有零钱找回。
9. 投入无效的硬币或纸币,按下〖橙汁〗或〖啤酒〗按钮,检查是否提示〖无效的硬币或纸币〗。
10. 连续投入硬币,直到售货机无法找零,检查是否提示〖零钱找完〗并停止接受硬币。
以上是处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
### 回答2:
对于这个自动售货机软件的测试用例设计,下面是我的建议:
首先,我们需要先确定软件的输入输出。从规格说明中可以看到,软件的输入有两种:5角钱或1元钱的硬币,以及押下〖橙汁〗或〖啤酒〗的按钮。输出则有两种:相应的饮料(橙汁或啤酒),或者显示〖零钱找完〗。
接下来,我们可以按照以下步骤设计测试用例:
1. 测试硬币输入:我们需要测试一下投入5角钱或1元钱的硬币是否都可以被识别。因此,我们可以设计两个测试用例,分别投入5角和1元硬币,然后检查软件是否正确显示硬币的金额。
2. 测试饮料按钮:我们需要测试一下押下〖橙汁〗或〖啤酒〗的按钮是否都可以触发相应的操作。因此,我们可以设计两个测试用例,分别押下这两个按钮,然后检查软件是否正确送出相应的饮料。
3. 测试零钱找完:我们需要测试一下当售货机没有零钱找的时候,软件是否会正确显示〖零钱找完〗。因此,我们可以设计一个测试用例,投入一个较大金额(比如4元),然后按下饮料按钮,检查软件是否提示〖零钱找完〗。
4. 组合测试:最后,我们需要进行一些组合测试,以确保软件在各种情况下都能够正常工作。例如,我们可以设计一个测试用例,投入两个5角硬币,并按下〖啤酒〗按钮,然后检查软件是否正确送出啤酒。
在设计测试用例时,需要特别注意异常情况,考虑软件可能会出现的各种错误情况,并进行相应的测试。通过这样的测试用例设计,可以有效地测试自动售货机软件是否能够满足规格说明中的要求。
### 回答3:
为了设计一个有效的自动售货机软件测试用例,我们需要考虑以下几个方面:
1. 功能测试
这个软件的主要功能是为顾客提供饮料,并收取相应的硬币。我们需要测试以下这些功能:
- 投入5角钱硬币是否会被正确识别
- 投入1元钱硬币是否会被正确识别
- 按下〖橙汁〗按钮是否会出售橙汁
- 按下〖啤酒〗按钮是否会出售啤酒
- 如果售货机没有零钱找,会不会正确显示〖零钱找完〗
2. 边界测试
我们需要测试一些边界条件,这些条件可能会导致系统异常或崩溃:
- 投入的硬币数量超过售货机容量
- 投入的硬币种类超过售货机支持的货币
- 同时按下多个按钮会发生什么
- 在售货机没有饮料的情况下按下按钮会发生什么
3. 性能测试
我们还需要测试售货机的性能,例如:
- 响应时间:从按下按钮到出售饮料的时间
- 并发用户:同时有多个用户使用售货机的情况下,系统是否能够正常工作
- 货币识别准确率:系统是否能够准确识别各种硬币
设计测试用例时,我们应该覆盖所有可能的情况,包括正常情况和异常情况。同时,我们也需要使用适当的工具和技术来执行测试用例,例如使用仿真器模拟硬币投入和按钮按下的动作。最后,我们需要对测试结果进行分析和总结,以便在需要时进行修正和改进。
有一个饮料自动售货机,处理单价为5角钱c语言
以下是一个简单的C语言程序,模拟饮料自动售货机的功能,处理单价为5角钱:
```
#include <stdio.h>
int main()
{
int balance, choice;
printf("请选择您要购买的饮料:\n");
printf("1. 可乐(0.5元)\n");
printf("2. 矿泉水(0.5元)\n");
printf("3. 果汁(0.5元)\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("您选择了可乐!\n");
break;
case 2:
printf("您选择了矿泉水!\n");
break;
case 3:
printf("您选择了果汁!\n");
break;
default:
printf("您的选择无效!\n");
return 0;
}
printf("请投入0.5元硬币:\n");
scanf("%d", &balance);
if (balance == 5) {
printf("购买成功,谢谢惠顾!\n");
} else if (balance > 5) {
printf("购买成功,找您%d角!\n", balance - 5);
} else {
printf("余额不足,请投入0.5元硬币!\n");
}
return 0;
}
```
程序会先输出菜单,让用户选择要购买的饮料。然后让用户投入0.5元硬币,如果投入的金额不足,程序会要求用户继续投币;如果投入的金额超过了0.5元,程序会找零并输出购买成功的信息。