文章目录
- 4. 模型测试 - 测试过程、模型测试方法概述
- 4.1 测试过程概述
- 4.2 simulink模型测试方法概述
专题目录
4. 模型测试 - 测试过程、模型测试方法概述
4.1 测试过程概述
- 众所周知,
测试
是软件开发过程中的一个重要组成部分,贯穿整个软件开发生命周期,保证了软件的正确性和可靠性,对于模型来说,也需要进行严格的测试工作,确保模型的准确性。 - 根据
测试阶段
,可以把测试分为如下阶段 :
-
单元测试
:对小模块单元进行检查和验证,比如一个chart模块; -
集成测试
:对各个模块集成后的系统进行测试; -
确认测试
:检查与证实软件是否满足软件需求说明书中规定的要求; -
系统测试
:集成硬件和软件系统,在真实或模拟系统运行的环境下,检查完整的程序系统是否能和系统正确配置、连接,并满足用户需求; -
验收测试
:在系统测试后期,以用户测试为主,或有测试人员等质量保证人员共同参与的验证性测试。
- 按是否需要运行测试软件分类:
-
静态测试
:不实际运行被测软件,而是直接分析软件的形式和结构,查找缺陷; -
动态测试
:运行被测软件,通过有效的测试用例(对应的输入、输出关系)来分析被测程序的运行情况或进行跟踪对比,发现程序问题。
- 对于开发工作人员,一般需要进行单元测试和集成测试,确保开发模块的正确性
4.2 simulink模型测试方法概述
- simulink模型建立完成后,为了确保模型的准确性,提供了完整的测试方法和手段,包括了
静态检测方法:建模规范检查、设计缺陷检查
,动态检测方法:功能测试、覆盖度检查
。
1)建模规范检查 Model Advisor
-
Model Advisor
是simulink自带的静态模型检查器,能够根据建模规则,建模标准对模型进行检查,并且能够进行部分错误的自动修改,帮助开发人员和团队搭建高质量的模型和使用高度统一的风格。 - Model Advisor 的使用方法介绍见后续文章:模型测试 - Model Advisor 建模规范检查。
2)设计缺陷检查 Design Verifier
Design Verifier
有如下三大功能:
-
Design Error Detection
— 查找死逻辑、除以零、溢出等问题 -
Test Generation
— 基于模型和覆盖度来生成测试用例 -
Property Proving
— 确定模型的输出和行为是满足预期要求的
- 最常使用的是第一个功能,对死逻辑、除以零、溢出等设计缺陷问题的检查
- Design Verifier 的使用方法介绍见后续文章:模型测试 - Design Verifier 设计缺陷检查
3)功能测试 Sumilink Test
- Sumilink Test 是动态检测工具,也是单元测试最常用的动态检测工具。
- 通过编写或者导入测试用例,检测模型运行的准确性。
- Sumilink Test 的使用方法介绍见后续文章:模型测试 - Sumilink Test 功能测试
4)测试覆盖度检查 Coverage Analyzer
-
Coverage Analyzer 覆盖度
是用来表示一个测试用例对模型逻辑结构的所有路径测试的完成程度,适用于对模型进行结构测试的测试用例 - 一个完整的模型结构测试用例应当对模型或状态机内的
每条路径都有唯一的条件进行测试
,并且不与其他路径条件发生冲突 - 覆盖度的
作用对象是模型的测试用例
,不是模型对象本身 - 模型测试检查中,工作量最大的就是编写足够的测试用例,达到测试覆盖度目标
- Coverage Analyzer 的使用方法介绍见后续文章:模型测试 - Coverage Analyzer 测试覆盖度检查
5)Polyspace代码检查工具
- 此外,matlab也有对代码进行检查的工具 - Polyspace
-
Polyspace
是代码静态,动态检查工具,可以对源代码进行静态检查:检查代码规范
,编码错误
,静态度量
(代码量,调用次数);也可以动态检查运行时错误
(算术溢出,缓冲区溢出,被零除和其他错误),测试覆盖度
检测。 - Polyspace 的使用方法介绍见后续文章:
- 1. Polyspace工具基本介绍
- 2. Polyspace - 工程Configuaration配置。
感谢阅读 若有错误 敬请见谅!!!