资讯中心

联系我们

深圳市维立信电子科技有限公司
地址:深圳市福田区红荔路第一世界广场A座8D-E
咨询电话:0755-83766766
E-mail:info@welissom.com

如何编写信号发生器脚本的测试用例?

2025-10-13 10:36:21  点击:

编写信号发生器脚本的测试用例需要覆盖功能、性能、边界条件及异常场景,确保脚本在各种情况下能正确生成信号并处理错误。以下是详细的测试用例设计方法和示例:

一、测试用例设计原则

  1. 功能覆盖:验证脚本能否生成指定类型(正弦波、方波、三角波等)、频率、幅度和相位的信号。
  2. 边界条件:测试频率/幅度上下限、占空比极值、相位偏移边界等。
  3. 异常处理:模拟非法输入(如负频率、超范围幅度)和硬件故障(如时钟丢失)。
  4. 性能指标:验证信号生成延迟、频率切换时间、资源占用(CPU/内存)。
  5. 兼容性:测试不同操作系统、硬件平台或依赖库版本的兼容性。

二、测试用例分类与示例

1. 功能测试

目标:验证信号生成的基本功能是否正确。
示例用例

  • TC1-正弦波生成
    • 输入:类型=正弦波,频率=1kHz,幅度=2Vpp,相位=0°
    • 预期输出:生成正弦波,频谱分析显示主频为1kHz,谐波失真<1%。
    • 验证方法:使用示波器或频谱分析仪捕获输出信号。
  • TC2-方波占空比控制
    • 输入:类型=方波,频率=10kHz,占空比=30%
    • 预期输出:高电平持续时间=30μs,低电平=70μs(周期100μs)。
    • 验证方法:示波器测量占空比。
  • TC3-多通道同步输出
    • 输入:通道1=1kHz正弦波,通道2=2kHz方波,同步触发
    • 预期输出:两通道信号起始时间差<1μs。
    • 验证方法:双通道示波器观察相位关系。

2. 边界条件测试

目标:验证脚本在极限参数下的行为。
示例用例

  • TC4-最小频率生成
    • 输入:频率=0.1Hz(接近硬件最低限制)
    • 预期输出:信号周期=10s,无丢周期或跳变。
    • 验证方法:长时间记录输出信号。
  • TC5-最大幅度输出
    • 输入:幅度=10Vpp(接近DAC最大输出)
    • 预期输出:信号幅度=10Vpp±5%,无削波。
    • 验证方法:示波器测量峰峰值。
  • TC6-相位偏移边界
    • 输入:相位=359°(接近360°循环)
    • 预期输出:相位与0°信号几乎重合,误差<1°。
    • 验证方法:李萨如图形分析。

3. 异常处理测试

目标:验证脚本对非法输入或硬件故障的响应。
示例用例

  • TC7-负频率输入
    • 输入:频率=-5kHz
    • 预期输出:脚本报错“频率必须为正数”,不生成信号。
    • 验证方法:检查日志或控制台输出。
  • TC8-超范围幅度
    • 输入:幅度=15Vpp(超过DAC限制)
    • 预期输出:自动限幅至10Vpp,并提示“幅度超出范围”。
    • 验证方法:示波器测量输出幅度+日志检查。
  • TC9-时钟丢失模拟
    • 操作:断开外部时钟源
    • 预期输出:脚本检测到时钟丢失,切换至内部时钟或报错停止。
    • 验证方法:观察脚本日志和输出信号状态。

4. 性能测试

目标:评估信号生成的实时性和资源占用。
示例用例

  • TC10-频率切换延迟
    • 操作:从1kHz切换至10kHz,测量切换时间
    • 预期输出:切换延迟<1ms,无瞬态过冲。
    • 验证方法:高速示波器捕捉切换瞬间。
  • TC11-CPU占用率
    • 操作:同时生成4通道高频信号(如1MHz)
    • 预期输出:CPU占用率<50%(依赖硬件配置)。
    • 验证方法:任务管理器或性能分析工具。
  • TC12-长时间稳定性
    • 操作:连续运行24小时生成1kHz信号
    • 预期输出:频率漂移<0.01%,无崩溃或内存泄漏。
    • 验证方法:频谱分析仪定期监测+系统日志检查。

5. 兼容性测试

目标:确保脚本在不同环境下的可靠性。
示例用例

  • TC13-跨平台运行
    • 环境:Windows 10/Linux Ubuntu 20.04
    • 预期输出:脚本在两系统下均能正常生成信号。
    • 验证方法:在两平台分别执行测试用例。
  • TC14-依赖库版本
    • 环境:NumPy 1.21 vs 1.24
    • 预期输出:信号生成功能不受库版本影响。
    • 验证方法:单元测试对比输出结果。

三、测试工具与自动化

  1. 硬件工具:示波器、频谱分析仪、信号发生器(用于对比)。
  2. 软件工具
    • Pythonunittestpytest框架编写测试脚本。
    • MATLAB:生成参考信号与脚本输出对比。
    • LabVIEW:自动化硬件测试流程。
  3. 自动化示例(Python伪代码):
    python
    import pytest
    from signal_generator import generate_signal

    def test_sine_wave():
    signal = generate_signal(type="sine", freq=1e3, amp=2.0, phase=0)
    # 使用频谱分析仪验证频谱
    assert verify_spectrum(signal, expected_freq=1e3, thd=<0.01)

    def test_invalid_freq():
    with pytest.raises(ValueError):
    generate_signal(freq=-5e3)  # 预期抛出异常

四、测试报告与迭代

  1. 报告内容:通过率、失败用例详情、性能指标汇总、环境信息。
  2. 迭代优化:根据测试结果调整脚本参数(如滤波器系数)、优化算法或修复硬件问题。

五、高级测试场景

  • 动态信号生成:验证脚本能否实时响应外部触发(如GPIO中断)。
  • 噪声注入测试:在输入信号中添加高斯噪声,验证脚本的抗噪能力。
  • 多线程/多进程测试:确保并发生成信号时无资源冲突。

通过系统化的测试用例设计,可全面验证信号发生器脚本的可靠性和性能,为实际应用提供保障。