首页 > 其他分享 >软件工作四则运算测试

软件工作四则运算测试

时间:2024-04-10 22:34:07浏览次数:18  
标签:题目 覆盖 结果 四则运算 生成 测试 年级 软件

沈阳航空航天大学
软件工程第二次作业

院(系): 计算机学院
专 业: 计算机科学与技术
班 级: -
学 号: -
姓 名: -
带队教师: -

2024 年 4 月 7 日

作业信息 沈阳航空航天大学计算机学院2024软件工程作业
课程目标 熟悉一个“高质量”软件的开发过程
作业目标 单元测试练习

请在作业最后部分填写如下表格记录本次工作详细信息
项目 记录结果
日期 2024.4.7
开始时间 12:30
结束时间 17:30
编码行数 100
错误数量 0

(1) 请从语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖五个覆盖标准中(条件组合覆盖难度较大,鼓励尝试,但请谨慎选择),任选一个标准设计测试用例
在此,我选择使用判定/条件覆盖标准设计测试用例,这种测试覆盖标准主要关注程序决策点(如if语句、switch语句)的条件和它们的结果(真或假)。目标是确保每个判断点的所有可能结果至少被执行一次。
我将基于四则运算式生成器程序设计测试用例。该程序包含多个决策点,包括年级的选择(1到6年级)和各年级内部的运算类型选择(加法、减法、乘法、(对于四到六年级)除法)。我们将专注于“年级选择”和“一年级内的运算类型选择”两个决策点。

  1. 测试目的
    验证四则运算式生成器是否能够根据输入的年级和题目数量,正确地生成符合要求的练习题。
  2. 测试范围
    年级选择判断:确保程序可以根据不同的年级输入(1-6年级),选择正确的题目生成逻辑。
    一年级运算类型选择判断:验证对于一年级,程序能够正确地生成仅包含加法或减法的运算式。
  3. 测试方法
    采用判定/条件覆盖方法,设计测试用例,确保每个判断点的所有可能结果至少被执行一次。
  4. 测试用例
    用例 1:年级选择判断 - 一年级
    输入数据: 年级=1, 题目数量=5
    预期结果: 程序生成5个一年级的加法或减法练习题,每个题目的运算数和结果不超过20。
    运行结果:

图1 测试一运行结果
用例 2:年级选择判断 - 二年级
输入数据: 年级=2, 题目数量=5
预期结果: 程序生成5个二年级的加法和减法混合练习题,每个题目的运算数和结果不超过50。
运行结果:

图2 测试二运行结果
用例 3:一年级运算类型选择判断
输入数据: 年级=1, 题目数量=10
预期结果: 程序生成10个一年级的练习题,这些题目应随机包含加法或减法,每个题目的运算数和结果不超过20。此测试用例的目的是观察生成的练习题中加法和减法的分布,以验证程序确实在随机选择运算类型。

图3 测试三运行结果
(2) 请利用自动测试工具对程序进行测试
我将使用Googletest进行测试 。测试覆盖了四个主要功能:
generate_first_grade(int num)
generate_second_grade(int num)
generate_third_grade(int num)
generate_fourth_to_sixth_grade(int num, int max_value)
同时,测试也覆盖了辅助函数perform_operation(int a, int b, char op)。
1.测试方法
测试方法采用单元测试,特别是判定/条件覆盖,以确保所有的分支和条件都被执行到。此外,还通过修改std::cout的缓冲区来捕获函数的输出,以便于对输出内容进行验证。
2.测试案例
PerformOperation测试:验证了perform_operation函数对加、减、乘、除四种操作的正确性,包括了除数为零的特殊情况。
年级函数测试:对每个年级生成函数进行了测试,主要检查生成的问题是否满足年级规定的数值范围,以及是否按照预期格式输出。由于数学问题生成包含随机元素,因此这部分测试强调手动验证输出格式的正确性,并没有深入到自动验证计算结果的正确性。
(3) 请将程序运行结果和自动测试分析结果截图粘贴到文档中
图4 自动测试运行结果一

图5 自动测试运行结果二
测试结果:所有测试案例均能成功执行。
验证了题目生成逻辑的正确性,包括操作数的范围和操作符的适用性。
特别注意到除法操作中除以零的处理,保证了程序的鲁棒性。
结论:
通过判定/条件覆盖测试,我们确认了数学题目生成程序能够按照各年级的要求正确生成数学题目。测试覆盖了所有基本操作和年级特定的逻辑路径,验证了程序的正确性和鲁棒性。

标签:题目,覆盖,结果,四则运算,生成,测试,年级,软件
From: https://www.cnblogs.com/wangwxr/p/18127677

相关文章

  • 熟悉一个“高质量”软件的开发过程
    对于标准设计测试的感想,我深感其重要性和必要性。标准设计测试不仅是软件开发过程中的关键环节,更是确保软件质量和稳定性的重要保障。首先,标准设计测试有助于全面覆盖软件的各个方面。通过遵循不同的覆盖标准,如语句覆盖、判定覆盖、条件覆盖等,我们可以确保代码中的每一个部分都被......
  • 【测试开发学习历程】python迭代、可迭代对象、迭代器、生成器
    1迭代Iteration迭代Iteration:所谓迭代就是重复运行一段代码语句块的能力,就好比在一个容器中进行一层一层遍历数据,在应用过程中for循环最为突出。迭代就是从某个容器对象中逐个地读取元素,直到容器中没有元素为止。迭代迭代,更新换代,在上一次基础上更新成新的东西。#使用for循......
  • 【测试开发学习历程】python高阶函数
    目录1map()函数2reduce()函数3filter()函数4sorted()函数1map()函数map()函数语法:map(function,iterable)参数:function:函数iterable:一个或多个序列返回值:迭代器对象作用:map()是Python内置的高阶函数,它接收一个函数function和一个iterable,并通过把......
  • 2024年3月电子学会青少年软件编程 中小学生Python编程等级考试一级真题解析(判断题)
    2024年3月Python编程等级考试一级真题解析判断题(共10题,每题2分,共20分)26、turtle画布的坐标系原点是在画布的左上角答案:错考点分析:考查turtle相关知识,turtle画布坐标系是在画布的中点,答案错误27、Python变量名区分大小写,book和BOOK不是同一个变量答案:对考点分析:考查......
  • 四则运算式生成器
    背景某个小学老师请你为她编写一个能够自动生成四则运算练习题的小程序,要求输入年级和题目数量,程序根据年级输出规定数量的题目,具体要求如下:·一年级运算数为20以内,只生成加法或减法运算式,结果小于20·二年级运算数为50以内,生成加法和减法混合运算式,结果小于50·三年级运算数......
  • 【异常】写了很多单元测试用例,但是Sonar上显示的单元测试覆盖率依旧为 0.0%
    一、异常内容写了很多单元测试用例,但是Sonar上显示的单元测试覆盖率依旧为0.0%二、异常说明在SonarQube中显示单元测试覆盖率为0%,通常意味着SonarQube没有正确地接收到测试覆盖率报告。三、异常解决要解决这个问题,您可以按照以下步骤操作:3.1确保测试覆盖率报告已......
  • 开发四则运算题生成器的经验总结
    引言在数字时代,教育技术的应用已成为提升学习效率的关键。最近,我接受了一个有趣的挑战:为小学生开发一个四则运算练习题生成器。本文将分享我的设计思路、实现过程、遇到的挑战及解决方案,以及我通过这个项目学到的经验。设计与实现四则运算题生成器的目标是根据用户输入的年级和......
  • 软件工程
    代码如下:include<stdio.h>include<stdlib.h>intmain(){int*arr;intN=0,input=0,i=0;intsum=0,max=0;scanf_s("%d",&N);arr=(int*)malloc(sizeof(int)*N);intminus=0;//对数组进行赋初值,并且记录负数个数for(i=0;i<N;......
  • 软件工程
    最大连续子数代码;include<stdio.h>intmaxSubarraySum(intarr[],intn){intmax_sum=INT_MIN,cur_sum=0;for(inti=0;i<n;i++){cur_sum=std::max(arr[i],cur_sum+arr[i]);max_sum=std::max(max_sum,cur_sum);}returnmax_sum;}intmain(......
  • 软件工程2
    作业信息 沈阳航空航天大学计算机学院2024软件工程作业课程目标 熟悉一个“高质量”软件的开发过程作业目标 单元测试练习请在作业最后部分填写如下表格记录本次工作详细信息项目 记录结果日期 2024年4月10日开始时间 2024年4月10日19:00结束时间 2024年4月10日19:45结束......