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

软件质量保证与测试实验

课程           软件质量保证与测试       

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

内容:

  1. 测试如下程序段:
#include <stdio.h>int main() {int i = 1, n1 = 0, n2 = 0;float sum = 0.0;float average;float score[100];printf("请输入分数(输入-1结束,最多输入50个分数):\n");while (n2 < 50) {printf("请输入第%d个分数:", i);scanf("%f", &score[i]); // 读取用户输入的分数if (score[i] == -1) {break; // 如果输入-1,退出循环}n2 = n2 + 1;if (score[i] > 0 && score[i] <= 100) { // 检查分数是否在有效范围内n1 = n1 + 1;sum = sum + score[i];} else {printf("无效的分数,已忽略。\n");}i = i + 1;}if (n1 > 0) {average = sum / n1;} else {average = -1; // 如果没有有效分数,平均值设为-1}printf("n1=%d, sum=%.2f, average=%.2f\n", n1, sum, average);return 0;
}

要求:①画出这段代码的程序流程图和控制流程图;②计算环路复杂度;③列出独立路径;④设计测试用例。

步骤:

步骤 1: 画出程序流程图和控制流程图

1.1程序流程图:

1.2控制流程图

步骤 2: 计算环路复杂度

V(G) = E - N + 2=4

步骤 3: 列出独立路径

  1. 初始化 -> 循环条件(不满足)-> 计算平均值(n1 为 0)-> 输出 -> 结束
  2. 初始化 -> 循环条件(满足)-> 循环体(score[i] 无效)-> ... -> 循环条件(不满足)-> 计算平均值(n1 为 0)-> 输出 -> 结束
  3. 初始化 -> 循环条件(满足)-> 循环体(score[i] 有效)-> ... -> 循环条件(不满足)-> 计算平均值(n1 不为 0)-> 输出 -> 结束
  4. 初始化 -> 循环条件(满足)-> 循环体(score[i] 始终有效)-> ... -> 循环条件(因为 n2 达到 50)-> 计算平均值(n1 不为 0)-> 输出 -> 结束

步骤 4: 设计测试用例

基于上述独立路径,我们可以设计以下测试用例:

测试用例 1:空数组(score 中所有元素都为初始值或未定义)

预期输出:n1=0, sum=0.000000, average=-1.000000

测试用例 2:数组中仅有一个无效分数(例如 -2 或 101)

预期输出:n1=0, sum=0.000000, average=-1.000000

测试用例 3:数组中有多个有效分数(例如 80, 90, 60)但总数少于 50

预期输出:n1=实际有效分数数量, sum=分数总和, average=分数平均值

测试用例 4:数组中有 50 个有效分数,然后一个无效分数(例如 80, ..., 80

                                

评价及结论:

指导老师签字:                                      年   月  日

http://www.lryc.cn/news/2386045.html

相关文章:

  • 历年华东师范大学保研上机真题
  • 【C++】什么是静态库?什么是动态库?
  • 项目阅读:Instruction Defense
  • springboot中拦截器配置使用
  • 用 Python 构建自动驾驶的实时通信系统:让车辆“交流”起来!
  • 在机器学习中,L2正则化为什么能够缓过拟合?为何正则化等机制能够使一个“过度拟合训练集”的模型展现出更优的泛化性能?正则化
  • day36 python神经网络训练
  • k8s部署ELK补充篇:kubernetes-event-exporter收集Kubernetes集群中的事件
  • 【Excel VBA 】窗体控件分类
  • C++性能相关的部分内容
  • Spring Boot 项目中常用的 ORM 框架 (JPA/Hibernate) 在性能方面有哪些需要注意的点?
  • 基于大模型的大肠癌全流程预测与诊疗方案研究报告
  • 解决DeepSeek部署难题:提升效率与稳定性的关键策略
  • AI进行提问、改写、生图、联网搜索资料,嘎嘎方便!
  • GStreamer开发笔记(四):ubuntu搭建GStreamer基础开发环境以及基础Demo
  • 2021年认证杯SPSSPRO杯数学建模A题(第二阶段)医学图像的配准全过程文档及程序
  • CV中常用Backbone-3:Clip/SAM原理以及代码操作
  • RPC 协议详解、案例分析与应用场景
  • dify-plugin-daemon的.env配置文件
  • 【Python】开发工具uv
  • 《技术择时,价值择股》速读笔记
  • Python可视化设计原则
  • SAP重塑云ERP应用套件
  • 2025.5.25总结
  • (九)PMSM驱动控制学习---无感控制之高阶滑膜观测器
  • 6个跨境电商独立站平台
  • 电子电路:电学都有哪些核心概念?
  • SQL进阶之旅 Day 2:基础查询优化技巧
  • 时序数据库 TDengine × Superset:一键构建你的可视化分析系统
  • 一键化部署