m0_74474210 2024-05-19 00:33 采纳率: 93.8%
浏览 2
已结题

黑盒测试,需要测试那些数据,请详细点

宠物喂食系统的设计与实现,在屏幕上显示时间信息,定时时间,喂食重量,通过按键修改这些参数,重量传感器检测重量,有个电机进行食物的投放,怎么写黑盒测试?

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-19 00:33
    关注

    引自免费微信小程序:皆我百晓生

    在设计黑盒测试方案时,我们需要关注软件的功能而不是其内部实现。对于这个STM32驱动的宠物喂食系统的黑盒测试,我们将从以下几个方面考虑:

    1. 输入验证:

      • 时间设置:测试各种合法和非法的时间输入,例如,检查是否可以正确处理24小时制、12小时制、闰年日期等。
      • 定时时间设置:测试不同范围的定时时间,比如最小值、最大值以及中间值。
      • 喂食重量设置:确保在允许的范围内(例如,0到100克)能正确设置重量。
    2. 功能测试:

      • 按键操作:确认每个按键功能正常,如增加/减少时间、增加/减少喂食重量等。
      • 显示内容:屏幕应能正确显示当前时间和剩余定时时间。
      • 重量传感器响应:当添加或移除食物时,重量传感器读数应相应改变,并影响喂食量的计算。
      • 食物投放:当定时器到达设定时间后,电机应该启动并投放指定重量的食物。
    3. 边界条件:

      • 最小和最大定时时间:测试定时器能否正确工作在最小(如1分钟)和最大(如24小时)设定时间内。
      • 最小和最大喂食重量:测试在最轻和最重的食物投放情况下,系统是否能正常运行。
    4. 错误处理:

      • 键盘输入错误:尝试输入无效字符或超出范围的数值,看系统如何处理。
      • 硬件故障模拟:模拟重量传感器故障或电机故障,看系统是否能正确提示或进入备用模式。
    5. 测试用例编写: 编写详细的测试用例,包括预期结果和实际结果的比较,以便于评估测试效果。

    下面是一个简单的伪代码示例,用于描述一些基本的测试用例:

    # 定义测试函数
    def test_pet_feeder():
        # 初始化喂食系统
        setup_pet_feeder()
    
        # 时间设置测试
        assert set_time(2, 30) == "02:30"
        assert set_time("12:00 PM", "PM") == "12:00"
        assert not set_time("invalid_time")
    
        # 定时时间设置测试
        assert set_timer(60) == "1 hour"
        assert set_timer(86400) == "1 day"
        assert not set_timer(-1)
    
        # 喂食重量设置测试
        assert set_weight(10) == "10g"
        assert set_weight(100) == "100g"
        assert not set_weight(101)
    
        # 操作测试
        press_increase_button()
        assert get_weight() > initial_weight
    
        # 键盘输入错误测试
        try:
            input_invalid_characters()
            fail("Invalid characters accepted")
        except InputError:
            pass
    
        # 硬件故障模拟
        simulate_sensor_fault()
        assert display_alert("Sensor error")
    
        teardown_pet_feeder()
    

    请注意,这只是一个简化的伪代码示例,实际的测试框架可能需要依赖特定的单元测试库,例如Python的unittest或pytest。在STM32上执行这些测试通常需要硬件连接和调试工具,例如SWD接口和Keil uVision或STM32CubeIDE。为了编写实际的C/C++代码,你需要熟悉STM32的API和编程模型。如果你需要更具体的代码示例,请提供更多的上下文,例如使用的开发环境和编程语言。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月27日
  • 已采纳回答 5月19日
  • 创建了问题 5月19日

悬赏问题

  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!