【软件测试系列】MATLAB测试框架

测试代码是开发高质量软件不可或缺的一部分。要指导软件开发和监视代码功能中的回归,您可以为程序编写单元测试。要测量代码(或测试)运行所需的时间,可以编写性能测试。

基于脚本的单元测试

编写并运行测试脚本12

  1. 使用实时脚本编写测试
    如果不满足条件,assert 将引发错误。
%% Test 1: Small measurement approximation
assert(approx == real, 'Problem with small measurement approximation');
% Define an absolute tolerance
tol = 1e-10; 
assert(abs(approx-real) <= tol, 'Problem with small measurement approximation');
  1. 编写基于脚本的单元测试
    实时脚本文件的名称必须以单词 ‘test’ 开头或结尾,且不区分大小写。
result = runtests('xxxTest');%运行单元测试
rt = table(result)  %创建测试结果表格
  1. 使用局部函数编写基于脚本的测试
    当比较浮点值时,需要指定比较的容差。局部函数assertWithAbsTol、assertWithRelTol为辅助函数,可计算实际值和预期值在指定的绝对(数值)容差或相对(百分数)容差范围内是否相等。
%% Test matches MATLAB fcn
assertWithAbsTol(lApprox,rApprox,'lvalue and rvalue should be equal')

%% Test matches MATLAB fcn
assertWithRelTol(leftApprox,rApprox,'left does not match')

function assertWithAbsTol(actVal,expVal,varargin)
% Helper function to assert equality within an absolute tolerance.
% Takes two values and an optional message and compares
% them within an absolute tolerance of 1e-6.
tol = 1e-6;
tf = abs(actVal-expVal) <= tol;
assert(tf, varargin{:});
end

function assertWithRelTol(actVal,expVal,varargin)
% Helper function to assert equality within a relative tolerance.
% Takes two values and an optional message and compares
% them within a relative tolerance of 0.1%.
relTol = 0.001;
tf = abs(expVal - actVal) <= relTol.*abs(expVal);
assert(tf, varargin{:});
end

result = runtests('xxxTest');%运行单元测试
rt = table(result)  %创建测试结果表格

分析测试用例结果

分析失败的测试结果

重新运行测试失败

扩展基于脚本的测试
使用基于脚本的测试访问其他功能,包括测试选择,测试诊断的编程访问和测试运行器定制。

  1. 基于函数的单元测试
    使用资格编写测试; 定制测试运行 选择并运行测试
  2. 基于类的单元测试
    编写基于类的测试; 参数化测试; 应用固定装置; 选择并运行测试
  3. 扩展单元测试框架
    定制测试环境; 作者约束,固定装置,诊断和插件
  4. App Testing Framework
    为App Designer应用程序编写自动化测试
  5. 性能测试框架
    测量MATLAB代码的性能
  6. 模拟框架
    通过模仿依赖关系的行为来隔离系统的一部分进行测试

  1. 在同一测试中包含多个 assert 语句。但是,如果第一个断言失败,MATLAB 将不会计算剩余的语句。 ↩︎

  2. 运行测试的最佳实践是通过 runtests 函数来使用测试框架,而不是使用实时编辑器中的运行按钮。测试框架可提供其他诊断信息。如遇测试失败,该框架将继续运行后续测试,而使用实时编辑器中的运行按钮则不会运行后续测试。 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值