CN110297769A - 基于服务器与Simulink库的协同开发测试系统及方法 - Google Patents
基于服务器与Simulink库的协同开发测试系统及方法 Download PDFInfo
- Publication number
- CN110297769A CN110297769A CN201910515562.2A CN201910515562A CN110297769A CN 110297769 A CN110297769 A CN 110297769A CN 201910515562 A CN201910515562 A CN 201910515562A CN 110297769 A CN110297769 A CN 110297769A
- Authority
- CN
- China
- Prior art keywords
- library
- test
- simulink
- git
- server
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/368—Test management for test version control, e.g. updating test cases to a new software version
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
Abstract
本发明公开了一种基于服务器与Simulink库的协同开发测试系统及方法,包括:模型开发端,利用Simulink工具箱开发模型文件;Simulink模型库,利用simulink的封装库功能将模型文件封装成Simulink库;git服务器,用于接收并存储Simulink模型库上传的Simulink库,并根据上传的Simulink库形成不同的版本文件;本地测试端,用于从git服务器下载指定版本的Simulink库到本地。本发明能够有效克服信息在传输过程中被随意修改,解决了开发端与测试端软件版本不一致,多个开发人员和测试人员协作工作难的问题。
Description
技术领域
本发明属于协同开发测试技术领域,具体涉及一种基于服务器与Simulink库的协同开发测试系统及方法。
背景技术
Simulink是Matlab提供的一个工具箱,它是一种基于模型的设计语言。它是一种可视化的仿真工具,具有结构清晰,效率高的特点。目前,先期技术开发项目都会基于Simulink工具进行快速原型设计。
如图1所示,现有开发测试流程如下:
模型开发端开发好模型文件后,测试人员一般通过拷贝或者其它及时传输的方式,将模型文件转移到本地测试端,该过程具有一定的随机性。然后,测试人员进行主算法选取,搭建针对主算法测试接口,运行测试案例,测试执行,提交测试结果。最后重复该过程,进行多轮迭代测试。
现有的开发测试流程存在以下缺点:
(1)基于模型开发涉及的功能较多,释放版本多。采用典型的开发测试流程,从模型开发端拷贝到本地测试端,经常会出现版本对不上的情况。
(2)搭建测试接口时,Simulink模型文件容易被随意修改,测试端使用的Simulink模型文件可能不是基于开发端的同一文件,导致测试结果失真。返工(返修)过程包括:(a)当本地测试端立即发现拷贝错误时,则需返回开发端重新拷贝;(b)当拷贝正确且本地拷贝的模型未被修改而搭接测试接口时操作错误,测试接口重新基于本地模型进行搭建;(c)当拷贝正确且本地拷贝的模型已经被修改,则需要再次从模型开发端重新拷贝、搭建测试接口;(d)在开发测试流程中,拷贝错误、操作错误很可能没有被立即发现,而是在测试执行后开发测试双方对接时才发现。也就是说,拷贝错误、操作错误以及模型开发代码存在BUG都会导致测试结果不通过。由此可见,现有的开发测试流程中存在极大的资源浪费。
(3)模型开发端每变更一次,测试端就需要根据变更需求,重新搭建测试接口。采用现有开发测试流程,测试端需要完成的工作量很大,其中,大部分工作为重复劳动。返工(返修)概率高,重复劳动多,效率低下。
(4)一般项目开发涉及多个开发人员及测试人员,多人员协同进行开发测试工作是现有开发测试的瓶颈。
因此,有必要开发一种新的基于服务器与Simulink库的协同开发测试系统及方法。
发明内容
本发明的目的是提供一种基于服务器与Simulink库的协同开发测试系统及方法,能有效克服信息在传输过程中被随意修改,解决了开发端与测试端软件版本不一致,多个开发人员和测试人员协作工作难的问题。
本发明所述的一种基于服务器与Simulink库的协同开发测试系统,包括:
模型开发端,利用Simulink工具箱开发模型文件;
Simulink模型库,利用simulink的封装库功能将模型文件封装成Simulink库;
git服务器,用于接收并存储Simulink模型库上传的Simulink库,并根据上传的Simulink库形成不同的版本文件;
本地测试端,用于从git服务器下载指定版本的Simulink库到本地,根据测试需求选择测试对象,并根据测试对象从Simulink库中调用与测试对象相对应的主算法库,匹配测试接口,并将主算法库与测试主文件形成映射关系;在测试执行时,运行测试案例,测试案例调用测试主文件,针对测试对象进行测试,若测试结果通过,则表示开发的模型文件满足要求,将通过测试的结果反馈给模型开发端;若测试结果不通过,则表示开发的模型文件不满足要求,并将测试的结果反馈给模型开发端。
本发明所述的一种基于服务器与Simulink库的协同开发测试方法,采用如本发明所述的基于服务器与Simulink库的协同开发测试系统,其方法包括以下步骤:
步骤1.利用Simulink工具箱开发模型文件;
步骤2.将模型文件封装成Simulink库,并上传给git服务器;
步骤3.git服务器根据上传的Simulink库形成不同的版本文件;
步骤4. 本地测试端从git服务器下载指定版本的Simulink库;
步骤5.根据测试需求选择测试对象;并根据测试对象从Simulink库中调用与测试对象相对应的主算法库,匹配测试接口,并将主算法库与测试主文件形成映射关系;
步骤6.测试执行,运行测试案例,测试案例调用测试主文件,针对测试对象进行测试,若测试结果通过,则表示开发的模型文件满足要求,将通过测试的结果反馈给模型开发端,测试流程结束;若测试结果不通过,则表示开发的模型文件不满足要求,并将测试的结果反馈给模型开发端,并在模型开发端修改模型文件,并返回步骤2。
进一步,在模型开发端部署git服务,建立上传文件夹,在git界面上分别通过三个指令git add -all, git commit -m,git push将Simulink库上传到git服务器。
进一步,在本地测试端部署git服务,若是第一次下载指定版本的Simulink库时,首先在git服务器上找到用于存储指定版本的Simulink库的仓文件的地址A,通过clone按键复制该地址A;打开git软件,通过命令git clone A将git服务器上存储的指定版本Simulink库下载到本地;从第二次下载开始,当模型开发端告知有版本更新并且已经将对应Simulink库上传给git服务器,git服务器会有版本更新;本地测试端在已经下载的文件夹里,通过使用命令 git pull将本地的Simulink库与git服务器上的git服务器同步更新。
进一步,所述Simulink库包含一个或一个以上的测试对象;
所述主算法库为对测试对象的识别并形成的测试范围。
进一步,所述测试主文件由测试接口、主算法库映射的Simulink库文件和测试案例组成;
所述主算法库映射是指将主算法库转移到测试主文件中;
所述测试案例是导入测试对象具体的值。
进一步,所述主算法库映射是指将主算法库通过拷贝的方式转移到测试主文件中。
本发明具有以下优点:将模型文件开发完成后封装成Simulink库,采用git服务器进行版本管理,它能够有效地克服信息在传输过程中被随意修改,解决了开发端与测试端软件版本不一致,多个开发人员和测试人员协作工作难的问题。在多次迭代测试中,本发明还能够解决重复劳动问题,帮助企业节约人力,物力,财力及资源配置等。
附图说明
图1为现有开发测试流程图;
图2为本发明的流程图。
具体实施方式
下面结合附图对本发明作进一步说明。
如图2所示,本发明所述的一种基于服务器与Simulink库的协同开发测试系统,包括模型开发端、Simulink模型库、git服务器和本地测试端。
模型开发端利用Simulink工具箱开发模型文件;该模型开发端与现有开发流程的模型开发端的功能相同。
Simulink模型库是利用simulink的封装库功能,将模型文件封装成Simulink库;Simulink库本身具有不容易被修改,修改后也能够识别的功能。Simulink模型库能够确保在传递过程中文件始终保持不变,能够解决现有开发测试流程中拷贝错误引起的返工。
git服务器具有存储和版本分类管理功能,能够实现分布式控制管理。用于接收并存储Simulink模型库上传的Simulink库,并根据上传的Simulink库形成不同的版本文件。
本地测试端用于从git服务器下载指定版本的Simulink库到本地,根据测试需求选择测试对象,并根据测试对象从Simulink库中调用与测试对象相对应的主算法库,匹配测试接口,并将主算法库与测试主文件形成映射关系;能够准确无误地将Simulink库从git服务器传递到本地。测试执行时(在本地测试端上进行),运行测试案例,测试案例调用测试主文件,针对测试对象进行测试,若测试结果通过,则表示开发的模型文件满足要求,将通过测试的结果反馈给模型开发端;若测试结果不通过,则表示开发的模型文件不满足要求,并将测试的结果反馈给模型开发端。
本实施例中,所述主算法库是Simulink库的一部分内容,Simulink库包含一个或一个以上的测试对象,不同的测试人员对特定的测试对象进行识别,并形成的不同的测试范围,即主算法库。主算法库跟git服务器中的Simulink库与之对应部分完全一样,整个过程,不会产生任何变化。针对同一版本,同一测试对象,从开发端到主算法库是固定不变的,不能被随意修改,具有绝对一致性。主算法库能够实现多个测试人员协同工作。
本实施例中,所述测试主文件由测试接口、主算法库映射的Simulink库文件和测试案例组成。测试接口由主算法库规定。主算法库映射是将主算法库通过手动拷贝的方式转移到测试主文件中,测试主文件测试的对象为主算法库。测试案例是导入测试对象具体的值,以检验测试对象合理性。测试对象是公式算法等。
本发明所述的一种基于服务器与Simulink库的协同开发测试方法,采用如本发明所述的基于服务器与Simulink库的协同开发测试系统,其方法包括以下步骤:
步骤1.利用Simulink工具箱开发模型文件;
步骤2.在模型文件开发完成后,将模型文件封装成Simulink库,并上传给git服务器;
步骤3.git服务器根据上传的Simulink库形成不同的版本文件;
步骤4. 本地测试端从git服务器下载指定版本的Simulink库;
步骤5.根据测试需求选择测试对象;并根据测试对象从Simulink库中调用与测试对象相对应的主算法库,匹配测试接口,并将主算法库与测试主文件形成映射关系;
步骤6.测试执行,运行测试案例,测试案例调用测试主文件,测试主文件被调用后,系统会自动调用主算法库的相关逻辑及变量等数据。针对测试对象进行测试,若测试结果通过,则表示开发的模型文件满足要求,将通过测试的结果反馈给模型开发端,测试流程结束;若测试结果不通过,则表示开发的模型文件不满足要求,并将测试的结果反馈给模型开发端,并在模型开发端修改模型文件,并返回步骤2。
本实施例中,在模型开发端部署git服务,建立上传文件夹,在git界面上分别通过三个指令git add -all(即提交所有变化), git commit -m(即将暂存区里的改动提交到本地的版本库),git push(即将本地分支上传到远程分支)将Simulink库上传到git服务器。
本实施例中,在本地测试端部署git服务,若是第一次下载指定版本的Simulink库时,首先在git服务器上找到用于存储指定版本的Simulink库的仓文件的地址A,通过clone(即克隆)按键复制该地址A;打开git软件,通过命令git clone A将git服务器上存储的指定版本Simulink库下载到本地。从第二次下载开始,当模型开发端告知有版本更新并且已经将对应Simulink库上传给git服务器,git服务器会有版本更新。本地测试端在已经下载的文件夹里,通过使用命令 git pull将本地的Simulink库与git服务器上的git服务器同步更新。更新后,本地Simulink库与模型开发端上传的Simulink库完成保持一致。
本实施例中,根据测试需求,测试人员基于Simulink库选择测试对象。测试对象包含于Simulink库中,小于等于Simulink库的范围。即:已选择好的测试对象仍处于Simulink库中,不会新增任何文件。具体操作如下:打开Simulink库,通过对测试对象的识别,圈定需要测试的主算法库。
由于主算法库仍处于Simulink库中,本地Simulink库与后续测试主文件之间未产生任何中间文件,因此,不可能出现版本混乱,任何测试都是基于本地的Simulink库。可以理解为主算法库是人脑主动识别、圈定Simulink库中一部分的范围,甚至可以为整个Simulink库。因此,主算法库与git服务器上的仓文件完全一致。本地的Simulink库除了通过git pull(即从远程获取最新版本并合并到本体)命令更新版本外,该Simulink库不会被任意修改,从而保证多人协同开发测试基于同一版本进行开发测试,能够有效避免版本混乱。后续测试工作,包括Simulink库更新,接口匹配等,都是基于主算法库进行,主算法库是后续测试的基础。
本实施例中,测试结果若多次不通过,需要进行多次迭代测试。在本地测试端使用git pull 将git服务器的Simulink库更新到本地。迭代测试时,自动调用更新的Simulink库,得到测试结果,直到测试结果通过。
Claims (7)
1.一种基于服务器与Simulink库的协同开发测试系统,其特征在于,包括:
模型开发端,利用Simulink工具箱开发模型文件;
Simulink模型库,利用simulink的封装库功能将模型文件封装成Simulink库;
git服务器,用于接收并存储Simulink模型库上传的Simulink库,并根据上传的Simulink库形成不同的版本文件;
本地测试端,用于从git服务器下载指定版本的Simulink库到本地,根据测试需求选择测试对象,并根据测试对象从Simulink库中调用与测试对象相对应的主算法库,匹配测试接口,并将主算法库与测试主文件形成映射关系;在测试执行时,运行测试案例,测试案例调用测试主文件,针对测试对象进行测试,若测试结果通过,则表示开发的模型文件满足要求,将通过测试的结果反馈给模型开发端;若测试结果不通过,则表示开发的模型文件不满足要求,并将测试的结果反馈给模型开发端。
2.一种基于服务器与Simulink库的协同开发测试方法,其特征在于,采用如权利要求1所述的基于服务器与Simulink库的协同开发测试系统,其方法包括以下步骤:
步骤1.利用Simulink工具箱开发模型文件;
步骤2.将模型文件封装成Simulink库,并上传给git服务器;
步骤3.git服务器根据上传的Simulink库形成不同的版本文件;
步骤4. 本地测试端从git服务器下载指定版本的Simulink库;
步骤5.根据测试需求选择测试对象;并根据测试对象从Simulink库中调用与测试对象相对应的主算法库,匹配测试接口,并将主算法库与测试主文件形成映射关系;
步骤6.测试执行,运行测试案例,测试案例调用测试主文件,针对测试对象进行测试,若测试结果通过,则表示开发的模型文件满足要求,将通过测试的结果反馈给模型开发端,测试流程结束;若测试结果不通过,则表示开发的模型文件不满足要求,并将测试的结果反馈给模型开发端,并在模型开发端修改模型文件,并返回步骤2。
3.根据权利要求2所述的基于服务器与Simulink库的协同开发测试方法,其特征在于:在模型开发端部署git服务,建立上传文件夹,在git界面上分别通过三个指令git add -all, git commit -m,git push将Simulink库上传到git服务器。
4.根据权利要求2或3所述的基于服务器与Simulink库的协同开发测试方法,其特征在于:在本地测试端部署git服务,若是第一次下载指定版本的Simulink库时,首先在git服务器上找到用于存储指定版本的Simulink库的仓文件的地址A,通过clone按键复制该地址A;打开git软件,通过命令git clone A将git服务器上存储的指定版本Simulink库下载到本地;从第二次下载开始,当模型开发端告知有版本更新并且已经将对应Simulink库上传给git服务器,git服务器会有版本更新;本地测试端在已经下载的文件夹里,通过使用命令git pull将本地的Simulink库与git服务器上的git服务器同步更新。
5.根据权利要求4所述的基于服务器与Simulink库的协同开发测试方法,其特征在于:
所述Simulink库包含一个或一个以上的测试对象;
所述主算法库为对测试对象的识别并形成的测试范围。
6.根据权利要求5所述的基于服务器与Simulink库的协同开发测试方法,其特征在于:所述测试主文件由测试接口、主算法库映射的Simulink库文件和测试案例组成;
所述主算法库映射是指将主算法库转移到测试主文件中;
所述测试案例是导入测试对象具体的值。
7.根据权利要求5或6所述的基于服务器与Simulink库的协同开发测试方法,其特征在于:所述主算法库映射是指将主算法库通过拷贝的方式转移到测试主文件中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2019103726287 | 2019-05-06 | ||
CN201910372628 | 2019-05-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110297769A true CN110297769A (zh) | 2019-10-01 |
Family
ID=68028077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910515562.2A Withdrawn CN110297769A (zh) | 2019-05-06 | 2019-06-14 | 基于服务器与Simulink库的协同开发测试系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110297769A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391791A (zh) * | 2014-11-21 | 2015-03-04 | 北京经纬恒润科技有限公司 | 嵌入式控制算法的测试方法及装置 |
CN104573193A (zh) * | 2014-12-18 | 2015-04-29 | 北京控制工程研究所 | 一种航天器gnc系统快速设计方法 |
US9047165B1 (en) * | 2004-07-08 | 2015-06-02 | The Mathworks, Inc. | Multiversion model versioning system and method |
CN105302685A (zh) * | 2015-11-30 | 2016-02-03 | 北京润科通用技术有限公司 | 一种软硬件协同仿真测试方法和装置 |
CN105677332A (zh) * | 2015-12-30 | 2016-06-15 | 上海玖镕信息科技有限公司 | 软件开发需求管理系统 |
-
2019
- 2019-06-14 CN CN201910515562.2A patent/CN110297769A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047165B1 (en) * | 2004-07-08 | 2015-06-02 | The Mathworks, Inc. | Multiversion model versioning system and method |
CN104391791A (zh) * | 2014-11-21 | 2015-03-04 | 北京经纬恒润科技有限公司 | 嵌入式控制算法的测试方法及装置 |
CN104573193A (zh) * | 2014-12-18 | 2015-04-29 | 北京控制工程研究所 | 一种航天器gnc系统快速设计方法 |
CN105302685A (zh) * | 2015-11-30 | 2016-02-03 | 北京润科通用技术有限公司 | 一种软硬件协同仿真测试方法和装置 |
CN105677332A (zh) * | 2015-12-30 | 2016-06-15 | 上海玖镕信息科技有限公司 | 软件开发需求管理系统 |
Non-Patent Citations (4)
Title |
---|
刘怡然: "分布式协同仿真平台中数据管理系统的设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
唯有向前: "阿里云code与MATLAB simulink project 源代码管理指南", 《HTTPS://BLOG.CSDN.NET/WEIYOUXIANGQIAN/ARTICLE/DETAILS/81906010》 * |
孙忠潇 编著: "《Simulink仿真及代码生成技术入门到精通》", 31 October 2015, 北京航空航天大学出版社 * |
王御: "你是如何对正在开发的Simulink模型进行version control的?", 《HTTPS://WWW.ZHIHU.COM/QUESTION/47169125》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109086071A (zh) | 一种管理软件版本信息的方法及服务器 | |
US10552140B2 (en) | Automated identification of deployment data for distributing discrete software deliverables | |
CN107678951A (zh) | 测试用例自动化管理方法、装置、设备及存储介质 | |
US10255065B1 (en) | Automatically building software projects | |
EP3166031B1 (en) | Bi-directional synchronization of data between a product lifecycle management (plm) system and a source code management (scm) system | |
CN111066039A (zh) | 包括企业模型的微处理器 | |
CN109445836A (zh) | 一种源码文件的管理方法、服务器及计算机可读存储介质 | |
US10621524B2 (en) | Exporting hierarchical data from a source code management (SCM) system to a product lifecycle management (PLM) system | |
US10747852B1 (en) | License compliance analysis platform | |
CN109800226A (zh) | 一种数据治理中的任务管理方法及装置 | |
CN110990051B (zh) | 软件包依赖关系的维护方法、装置、介质和设备 | |
CN110825395A (zh) | 多插件分层部署系统、设备及介质 | |
CN110297769A (zh) | 基于服务器与Simulink库的协同开发测试系统及方法 | |
KR100994070B1 (ko) | 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치 | |
CN117035065A (zh) | 模型评估的方法及相关装置 | |
EP3166030B1 (en) | Exporting hierarchical data from a product lifecycle management (plm) system to a source code management (scm) system | |
US20130305219A1 (en) | Apparatus and method for providing custom software, and method for software customization | |
CN115185514A (zh) | 零代码建模的处理方法、装置及相关设备 | |
US11301246B2 (en) | Automatically generating continuous integration pipelines | |
US20220058011A1 (en) | Rapid bug identification in container images | |
CN113806327A (zh) | 一种数据库设计方法、装置及相关设备 | |
CN109814991A (zh) | 一种数据治理中的任务管理方法及装置 | |
CN110221952A (zh) | 业务数据的处理方法及装置、业务数据处理系统 | |
US11516285B2 (en) | Cloud system realization apparatus and method, recording medium storing program for executing the same | |
CN113741931B (zh) | 软件升级方法、装置、电子设备及可读存储介质 |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20191001 |
|
WW01 | Invention patent application withdrawn after publication |