当前位置: 首页 > ai >正文

软件质量保证与测试实验

课程        软件质量保证与测试       

目的:练习软件测试中黑盒测试方法

内容:

售货机软件若投入1.5元硬币,按“可乐”“雪碧”或“红茶”按钮,送出相应的饮料;若投入的是2元硬币,在送出饮料的同时退还5角硬币。请用因果图设计测试用例。

实验环境:C语言、Java语言、Python语言等

要求:①画出因果图;②设计决策表;③设计测试用例;④编程实现。

步骤:

步骤一:画出因果

步骤二:设计决策表:

序号

1

2

3

4

5

6

原因

C1

0

0

0

1

1

1

C2

1

1

1

0

0

0

C3

0

0

1

0

0

1

C4

0

1

0

0

1

0

C5

1

0

0

1

0

0

中间结 果

D

1

1

1

1

1

1

F

1

1

1

1

1

1

结果

E1

1

1

1

0

0

0

E2

0

0

1

0

0

1

E3

0

1

0

0

1

0

E4

1

0

0

0

1

0

步骤三:测试用例:

  1. 投入1.5元硬币,选择可乐,预期:发放可乐,不退还硬币。
  2. 投入1.5元硬币,选择雪碧,预期:发放雪碧,不退还硬币。
  3. 投入1.5元硬币,选择红茶,预期:发放红茶,不退还硬币。
  4. 投入2元硬币,选择可乐,预期:发放可乐,退还5角硬币。
  5. 投入2元硬币,选择雪碧,预期:发放雪碧,退还5角硬币。
  6. 投入2元硬币,选择红茶,预期:发放红茶,退还5角硬币。

步骤四 编程实现:

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>class VendingMachine {
private:double coins; // 硬币金额std::vector<std::string> drinks; // 饮料列表public:// 构造函数VendingMachine() : coins(0.0) {drinks = {"可乐", "雪碧", "红茶"};}// 投入硬币void insertCoin(double amount) {if (amount == 1.5 || amount == 2.0) {coins = amount;} else {std::cout << "无效的硬币金额" << std::endl;}}// 选择饮料void selectDrink(const std::string& drink) {if (std::find(drinks.begin(), drinks.end(), drink) != drinks.end() && coins >= 1.5) {std::cout << "发放:" << drink << std::endl;if (coins == 2.0) {refund();}coins = 0.0; // 发放后清空硬币余额} else {std::cout << "没有足够的硬币或无效的饮料选择" << std::endl;}}// 退还硬币void refund() {std::cout << "退还:5角硬币" << std::endl;coins -= 0.5; // 退还后减去退还的硬币金额}
};int main() {VendingMachine vendingMachine;// 测试用例1vendingMachine.insertCoin(1.5);vendingMachine.selectDrink("可乐");// 测试用例2vendingMachine.insertCoin(1.5);vendingMachine.selectDrink("雪碧");// 测试用例3vendingMachine.insertCoin(2.0);vendingMachine.selectDrink("红茶");// 测试用例4vendingMachine.insertCoin(2.0);vendingMachine.selectDrink("可乐");// 测试用例5(无效硬币金额)vendingMachine.insertCoin(1.0);vendingMachine.selectDrink("可乐");// 测试用例6(无效饮料选择)vendingMachine.insertCoin(1.5);vendingMachine.selectDrink("果汁");return 0;
}

                

评价及结论:

指导老师签字:                                      年   月  日

http://www.xdnf.cn/news/8795.html

相关文章:

  • 历年北京师范大学保研上机真题
  • 数据库设计核心流程
  • 探索智能仓颉
  • 软件设计师-错题笔记-面向对象技术
  • 继电器相关梳理
  • pytorch基础
  • LabVIEW开发FPGA磁声发射应力检测系统
  • C++与Python中除法运算的区别(易错)
  • Linux路径解析指南:逻辑路径 vs 实际路径详解
  • Linux 文件系统
  • 第5章:任务间通信机制(IPC)全解析
  • 自定义 win10 命令
  • Leetcode 3269. 构建两个递增数组
  • 低空经济与新质生产力
  • SHAP分析+贝叶斯优化BP神经网络+新数据预测+K折交叉验证+相关性分析+孤立森林异常值处理,Matlab代码实现,作者:机器学习之心!
  • python36
  • 佳源科技退卷IPO:曾于2023年7月过会,原计划募资约9亿元
  • linux-du指令
  • 题目 3327: 蓝桥杯2025年第十六届省赛真题-倒水
  • python 实现从座位图中识别不同颜色和数量的座位并以JSON格式输出的功能
  • 两个mysql的maven依赖要用哪个?
  • ESP32学习笔记_Peripherals(3)——ADC
  • PyTorch 2025保姆级安装教程(Python CPU+GPU详细完整版)
  • 【第五篇】 SpringBoot中的高级配置
  • 11.8 LangGraph生产级AI Agent开发:从节点定义到高并发架构的终极指南
  • 图像形态学操作-腐蚀与膨胀,开运算和闭运算(含简单代码演示)
  • 【备忘】 windows 11安装 AdGuardHome,实现开机自启,使用 DoH
  • Global Securities Markets 第二章知识点总结
  • 嵌入式硬件篇---Ne555定时器
  • 【实战教程】基于 React Flow 搭建智能体组件:从环境配置到核心节点开发指南