CN111539099A - 一种基于程序变异的Simulink模型验证方法 - Google Patents
一种基于程序变异的Simulink模型验证方法 Download PDFInfo
- Publication number
- CN111539099A CN111539099A CN202010305408.5A CN202010305408A CN111539099A CN 111539099 A CN111539099 A CN 111539099A CN 202010305408 A CN202010305408 A CN 202010305408A CN 111539099 A CN111539099 A CN 111539099A
- Authority
- CN
- China
- Prior art keywords
- model
- mutation
- variation
- executed
- test case
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种基于程序变异的Simulink模型验证方法,包括:1、将待验证的Simlink模型记为P;按照运行生成结果形成P(T);2、按照选定的变异算子类型,设计相应的变异算子,形成变异模型集合L;3、在所有变异模型集合L中选择一个未被标记为已执行的变异模型M;4、在测试用例集合T中,选取一个未被标记为已执行过的测试用例t,运行结果记为M(t);并将t标记为已执行;M标记为已执行;5、对比P(T)和M(t)结果;6、测试用例集T中没有任何一个未执行过的t可以将M杀死,则将M重新放回变异模型集合L中;7、检查变异模型集合L,是否为空,进行相应操作。本发明具有较强的工程适用性,并可高效执行。
Description
技术领域
本发明属于计算机软件技术领域,尤其涉及一种基于程序变异的Simulink模型验证方法。
背景技术
基于驱动模型的软件设计可以使得拥有高可靠性的模型直接生成软件编码和程序,使得软件设计行业的焦点已经从经典的编码设计转移到模型构建以及互相转化之上。从而软件测试阶段由设计编码的验证转移到模型的验证及测试。
Matlab工具包Simulink是用来对系统进行模型构建、实验仿真以及数据分析,可以为用户提供各种需求的模型,并提供了图形化的视角。目前针对Simulink模型测试的充分性以及有效的自动化测试用例生成技术,是工程实践中困难和瓶颈之一。
程序变异测试与经典的面向控制流以及数据流有很大不同,其可以为软件测试结果提供一种有效的度量技术,并且能够给测试的度量和提高提供一种规范。
发明内容
为了解决上述问题,本发明提出一种基于程序变异的Simulink模型验证方法,以解决现有技术的不足。
一种基于程序变异的Simulink模型验证方法,包括以下步骤:
步骤1、将待验证的Simlink模型记为P;按照选定的用例设计方法,设计测试用例集T,并将T运行在P上,按照运行生成结果形成P(T);
步骤2、按照选定的变异算子类型,设计相应的变异算子,并由该变异算子运行在被测Simlink模型P上,形成变异模型集合L;
步骤3、在所有变异模型集合L中选择一个未被标记为已执行的变异模型M;
步骤4、在测试用例集合T中,选取一个未被标记为已执行过的测试用例t,并在M上运行,运行结果记为M(t);并将t标记为已执行;M标记为已执行;
步骤5、对比P(T)和M(t)结果;
步骤6、测试用例集T中没有任何一个未执行过的t可以将M杀死,则将M重新放回变异模型集合L中;
步骤7、检查变异模型集合L,是否为空,进行相应操作。
进一步地,所述选定的用例设计方法包括但不限于功能分解、等价类划分、边界值分析。
进一步地,所述变异算子类型包括但不限于语句变异、运算符变异、变量变异、常量变异。
进一步地,所述步骤5对比P(T)和M(t)结果具体为:
步骤5-1、如果P(T)等于M(t),则选取下一个未被标记为为已执行的测试用例t,重复步骤4;
步骤5-2、如果P(T)不等于M(t),则称为用例t杀死了变异模型M,并将M由L中移除,添加至被杀死的变异模型集合D中。
进一步地,所述步骤7检查变异模型集合L,是否为空具体为:
步骤7-1:若不空,则测试变异模型L与原始模型P之间等价性,并从L中剔除等价模型,缩减L规模,并重新设计测试用例T,重复步骤1;
步骤7-2:若空,测试退出。
本发明的有益效果:在基于模型驱动设计的背景下,采用工程实践中常用的Simulink模型生成工具,结合程序变异的技术,形成针对Simulink模型验证的有效方法。该方法具有较强的工程适用性,并可高效执行。
附图说明
图1为基于变异测试的原理示意图;
图2为本发明的流程示意图。
具体实施方式
现结合附图对本发明作进一步详细说明:
如图1、2所示,考虑simulink环境特点,设置被测单位为一个系统模型,在生成变异模型的过程中不对子系统的模块进行变异。这时子系统类似于代码中的调用函数,在以子系统为被测单位时再对其模块进行变异。图中实线表示指向测试过程的下一步骤,虚线表示数据流。所述的方法包括如下步骤:
步骤1、待验证的Simlink模型记为P;按照选定的用例设计方法,例如功能分解、等价类划分、边界值分析等方法设计测试用例集T,并将T运行在P上,按照运行生成结果形成P(T)。
步骤2、按照选定的变异算子类型,例如语句变异、运算符变异、变量变异、常量变异等,设计相应的变异算子,并由该变异算子运行在被测Simlink模型P上,形成变异模型集合L。
步骤3、在所有变异模型集合L中选择一个未被标记为已执行的变异模型M。
步骤4、在测试用例集合T中,选取一个未被标记为已执行过的测试用例t,并在M上运行,运行结果记为M(t);并将t标记为已执行;M标记为已执行。
步骤5、对比P(T)和M(t)结果
步骤5-1、如果P(T)等于M(t),则选取下一个未被标记为为已执行的测试用例t,重复步骤4;
步骤5-2、如果P(T)不等于M(t),则称为用例t杀死了变异模型M,并将M由L中移除,添加至被杀死的变异模型集合D中。
步骤6、测试用例集T中没有任何一个未执行过的t,可以将M杀死,则将M重新放回变异模型集合L中。
步骤7、检查变异模型集合L,是否为空:
步骤7-1:若不空,则测试变异模型L与原始模型P之间等价性,并从L中剔除等价模型,缩减L规模,并重新设计测试用例T,重复步骤1;
步骤7-2:若空,测试退出。由此来分析以及提高软件生成的测试用例集效果,并且能够对软件测试各种测试方法有效性进行验证。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于程序变异的Simulink模型验证方法,其特征在于,包括以下步骤:
步骤1、将待验证的Simlink模型记为P;按照选定的用例设计方法,设计测试用例集T,并将T运行在P上,按照运行生成结果形成P(T);
步骤2、按照选定的变异算子类型,设计相应的变异算子,并由该变异算子运行在被测Simlink模型P上,形成变异模型集合L;
步骤3、在所有变异模型集合L中选择一个未被标记为已执行的变异模型M;
步骤4、在测试用例集合T中,选取一个未被标记为已执行过的测试用例t,并在M上运行,运行结果记为M(t);并将t标记为已执行;M标记为已执行;
步骤5、对比P(T)和M(t)结果;
步骤6、测试用例集T中没有任何一个未执行过的t可以将M杀死,则将M重新放回变异模型集合L中;
步骤7、检查变异模型集合L,是否为空,进行相应操作。
2.根据权利要求1所述的一种基于程序变异的Simulink模型验证方法,所述选定的用例设计方法包括但不限于功能分解、等价类划分、边界值分析。
3.根据权利要求1所述的一种基于程序变异的Simulink模型验证方法,所述变异算子类型包括但不限于语句变异、运算符变异、变量变异、常量变异。
4.根据权利要求1所述的一种基于程序变异的Simulink模型验证方法,所述步骤5对比P(T)和M(t)结果具体为:
步骤5-1、如果P(T)等于M(t),则选取下一个未被标记为为已执行的测试用例t,重复步骤4;
步骤5-2、如果P(T)不等于M(t),则称为用例t杀死了变异模型M,并将M由L中移除,添加至被杀死的变异模型集合D中。
5.根据权利要求1所述的一种基于程序变异的Simulink模型验证方法,所述步骤7检查变异模型集合L,是否为空具体为:
步骤7-1:若不空,则测试变异模型L与原始模型P之间等价性,并从L中剔除等价模型,缩减L规模,并重新设计测试用例T,重复步骤1;
步骤7-2:若空,测试退出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010305408.5A CN111539099A (zh) | 2020-04-17 | 2020-04-17 | 一种基于程序变异的Simulink模型验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010305408.5A CN111539099A (zh) | 2020-04-17 | 2020-04-17 | 一种基于程序变异的Simulink模型验证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111539099A true CN111539099A (zh) | 2020-08-14 |
Family
ID=71952251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010305408.5A Pending CN111539099A (zh) | 2020-04-17 | 2020-04-17 | 一种基于程序变异的Simulink模型验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111539099A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868116A (zh) * | 2016-04-15 | 2016-08-17 | 西北工业大学 | 基于语义变异算子的测试用例生成和优化方法 |
CA2948250A1 (en) * | 2015-11-20 | 2017-05-20 | General Electric Company | System and method for safety-critical software automated requirements-based test case generation |
CN109739746A (zh) * | 2018-12-12 | 2019-05-10 | 江苏师范大学 | 一种基于原语句占优分析的变异测试方法 |
CN110347580A (zh) * | 2019-04-28 | 2019-10-18 | 北京航空航天大学 | 一种构建非嵌入式软件可靠性测试过程模型的方法 |
-
2020
- 2020-04-17 CN CN202010305408.5A patent/CN111539099A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2948250A1 (en) * | 2015-11-20 | 2017-05-20 | General Electric Company | System and method for safety-critical software automated requirements-based test case generation |
CN105868116A (zh) * | 2016-04-15 | 2016-08-17 | 西北工业大学 | 基于语义变异算子的测试用例生成和优化方法 |
CN109739746A (zh) * | 2018-12-12 | 2019-05-10 | 江苏师范大学 | 一种基于原语句占优分析的变异测试方法 |
CN110347580A (zh) * | 2019-04-28 | 2019-10-18 | 北京航空航天大学 | 一种构建非嵌入式软件可靠性测试过程模型的方法 |
Non-Patent Citations (2)
Title |
---|
周艺斌 等: "基于程序变异的Simulink 模型测试方法", 《北京航空航天大学学报》 * |
陈翔 等: "变异测试:原理、优化和应用", 《计算机科学与探索》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109426722B (zh) | Sql注入缺陷检测方法、系统、设备及存储介质 | |
CA2956364C (en) | System and method for coverage-based automated test case augmentation for design models | |
CN112231786B (zh) | 一种评估仿真模型有效性的通用评估方法及系统 | |
JP2002099584A (ja) | 設計検証システム、設計検証方法および設計検証プログラムを格納したコンピュータ読取り可能な記録媒体 | |
Kessentini et al. | Automated co-evolution of metamodels and transformation rules: A search-based approach | |
US20220138080A1 (en) | Computer-implemented method and device for selecting a fuzzing method for testing a program code | |
CN111309589A (zh) | 一种基于代码动态分析的代码安全扫描系统及方法 | |
US11709764B2 (en) | Creating test cases for testing software using anonymized log data | |
Villalobos-Arias et al. | Evaluation of a model‐based testing platform for Java applications | |
Zhao et al. | Automated fuzz generators for high-coverage tests based on program branch predications | |
CN111539099A (zh) | 一种基于程序变异的Simulink模型验证方法 | |
Zhao et al. | H-fuzzing: A new heuristic method for fuzzing data generation | |
Saglietti et al. | White and grey-box verification and validation approaches for safety-and security-critical software systems | |
de la Vara et al. | A proposal for the classification of methods for verification and validation of safety, cybersecurity, and privacy of automated systems | |
CN113836023B (zh) | 一种基于体系结构交叉检查的编译器安全性测试方法 | |
Ceccato et al. | Towards Reverse Engineering of Industrial Physical Processes | |
Chuaychoo et al. | Path coverage test case generation using genetic algorithms | |
US20220138092A1 (en) | Computer-implemented method and device for selecting a fuzzing method for testing a program code | |
CN114721641A (zh) | 一种自动生成代码的方法、装置、电子设备及存储介质 | |
JP2019194818A (ja) | ソフトウェア不具合予測装置 | |
JP2021515942A (ja) | セキュリティアセスメントシステム | |
CN114254328A (zh) | 一种自动化智能型嵌入式固件分析与漏洞挖掘方法 | |
CN114153742A (zh) | 单元测试方法、装置、电子设备和存储介质 | |
CN112699376A (zh) | 源代码逻辑漏洞检测方法、装置、计算机设备及存储介质 | |
CN113157584A (zh) | 一种基于HttpClient的模糊测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200814 |