JP2020004036A - ソースコード生成装置 - Google Patents
ソースコード生成装置 Download PDFInfo
- Publication number
- JP2020004036A JP2020004036A JP2018122141A JP2018122141A JP2020004036A JP 2020004036 A JP2020004036 A JP 2020004036A JP 2018122141 A JP2018122141 A JP 2018122141A JP 2018122141 A JP2018122141 A JP 2018122141A JP 2020004036 A JP2020004036 A JP 2020004036A
- Authority
- JP
- Japan
- Prior art keywords
- source code
- model
- sub
- generated
- unit
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
Description
[1.構成]
図1に示すモデルベース開発システム2は、ソースコード生成部10と、モデル12と、ソースコード14と、テストケース生成部20と、ソースコード実行部30と、モデル実行部32と、実行結果比較部40と、結果表示部42とを備えている。モデルベース開発システム2は、例えば、ディスプレイ、入出力装置、CPU、RAM、ROM、HDD等を備えるパーソナルコンピュータにより実現される。
ソースコード生成部10は、HDD等に記憶されているモデル12から、例えばC言語で記述されたソースコード14を生成する。
ソースコード実行部30は、テストケース生成部20によって生成されたテストケースを入力データとして、ソースコード14に記載された処理内容を実行する。その実行の際、ソースコード実行部30は、ソースコード14の実行単位による出力データ、および実行した命令文の時系列的なリストを生成する。
実行結果比較部40は、ソースコード実行部30およびモデル実行部32によって実行された実行結果データを比較し、その比較結果をHDD等に格納する。尚、比較とは、ソースコード実行部30が実行したソースコード14と、モデル実行部32がシミュレーションを行ったモデル12とのそれぞれの実行結果のデータの比較をいう。
[2.処理]
[2−1.メイン処理]
ソースコード生成装置50が実行するソースコード生成のメイン処理について、図3のフローチャートに基づいて説明する。
符号128が示す遅延処理ブロックは、1周期前の値を出力する。
S404において分析部60のテストケース生成部62は、モデル100に実行させるテストケースを生成する。この場合、テストケース生成部62は、図1に示すテストケース生成部20と実質的に同じ処理を実行する。S406において分析部60のカバレッジ判定部64は、モデル100にテストケースを実行させた結果のカバレッジが所定値以上であるか否かを判定する。
S412においてテストケース生成部62は、サブシステム130、140のそれぞれについてテストケースを生成する。
S414の判定がNoである、つまりカバレッジが所定値未満のサブシステムが存在する場合、処理はS410に戻り、カバレッジが所定値未満のサブシステムがさらに複数のサブシステムに分割される。
そして、S418において、S416で生成されたサブシステム130、140に対応するサブソースコードと、サブシステム130、140とに対して、図1に示すモデルベース開発システム2においてソースコード実行部30とモデル実行部32とが、S412で生成されたテストケースを使用してテストを実行する。
図3のS416においてソースコード生成装置50が実行するソースコード置換処理について、図4のフローチャートに基づいて説明する。
各処理ブロックに対応付けるソースコードは、反復および順接については、処理ブロックに関連するソースコードの記述がすべて抽出される。分岐については、複数の分岐の条件がソースコードに記述されている場合、該当する分岐の条件だけが抽出される。
S438においてサブコード生成部74は、今回の置換処理の対象である処理ブロックに対応するソースコードの記述において、分岐先の処理が省略されているか否かを判定する。S438の判定がYesである、つまりソースコードにおいて分岐先の処理が省略されている場合、処理はS440に移行する。S438の判定がNoである、つまり分岐先の処理が省略されていない場合、処理はS442に移行する。
S442において、サブコード生成部74は、処理ブロックに対応する処理で、出力パラメータに入力パラメータを代入する記述を追加する。
この場合、図14の下線で示すように、条件分岐ブロック122の判定結果が偽のときに実行されるsub1_tmp1[s4t_tmp]=sub1_tmp2[s4t_tmp]の前に、乗算ブロック120の処理結果であるout1[s4t_tmp]*0.01がsub1_tmp2[s4t_tmp]に代入される。
サブシステム140に対応するソースコード214の部分において、条件分岐ブロック126の判定であるif (in4s4t_tmp] != 0.0F)の判定結果が偽の場合、out1[s4t_tmp]には同じ値が代入されるので、分岐先の記述は追加されていない。
[3.効果]
以上説明した上記実施形態では、以下の効果を得ることができる。
上記実施形態において、S406、S414がカバレッジ判定部の処理に対応し、S430、S432が対応付け部の処理に対応し、S434がパラメータ定義部の処理に対応し、S436〜S448がサブコード生成部の処理に対応し、S450がソースコード生成部の処理に対応する。
[4.他の実施形態]
(1)上記実施形態では、置換処理前のモデルであるモデル100を1回分割して生成されたサブシステム130、140のカバレッジが所定値以上になる例を説明した。
(3)上記実施形態では、ソースコード生成装置50のカバレッジ判定部64が、モデル100から取得する分割情報に基づいて、モデル100またはサブシステム130、140を分割して複数のサブシステムを生成した。
(4)上記実施形態における一つの構成要素が有する複数の機能を複数の構成要素によって実現したり、一つの構成要素が有する一つの機能を複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を一つの構成要素によって実現したり、複数の構成要素によって実現される一つの機能を一つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加または置換してもよい。尚、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
(5)上述したソースコード生成装置の他、当該ソースコード生成装置を構成要素とするシステム、当該ソースコード生成装置としてコンピュータを機能させるためのソースコード生成プログラム、このソースコード生成プログラムを記録した記録媒体、ソースコード生成方法など、種々の形態で本開示を実現することもできる。
Claims (4)
- 入力データに対する処理を複数の処理ブロック(112、120〜128)間におけるデータの入出力の仕様として記述されるモデル(12、100)から、前記モデルに対応するソースコード(14、210)を生成するソースコード生成装置(50)であって、
前記モデル(100)から生成されるテストケースを前記モデルに実行させたカバレッジが所定値未満の場合、前記モデルを分割して生成された複数のサブシステム(130、140)のそれぞれに対し、前記サブシステムから生成されるテストケースを実行させた前記カバレッジが所定値以上か否かを判定するように構成されたカバレッジ判定部(64、S406、S414)と、
前記複数のサブシステムの前記カバレッジがすべて前記所定値以上であると前記カバレッジ判定部が判定すると、前記サブシステム毎に、前記サブシステムに分割される前の前記モデルから生成された元のソースコード(200)と、前記処理ブロックおよび前記処理ブロックの入出力パラメータとを対応付けるように構成された対応付け部(70、S430、S432)と、
前記対応付け部が対応付けた結果において、前記元のソースコードで定義されていない前記入出力パラメータが存在すれば、前記サブシステム毎に、定義されていない前記入出力パラメータを定義するように構成されたパラメータ定義部(72、S434)と、
前記サブシステム毎に、前記対応付け部が対応付けた結果と前記パラメータ定義部が定義する前記入出力パラメータとに基づいて、前記サブシステムに対応するサブソースコード(212、214)を生成するように構成されたサブコード生成部(74、S436〜S448)と、
前記サブコード生成部が生成する前記サブソースコードから、前記モデルに対応するソースコードを生成するように構成されたソースコード生成部(76、S450)と、
を備えるソースコード生成装置。 - 請求項1に記載のソースコード生成装置であって、
前記カバレッジ判定部は、前記サブシステムに前記テストケースを実行させた前記カバレッジが所定値未満の場合、前記カバレッジが所定値未満の前記サブシステムをさらに分割して生成された複数のサブシステムのそれぞれに対し、生成されたテストケースを実行させた前記カバレッジが所定値以上であるか否かを判定するように構成されている、
ソースコード生成装置。 - 請求項1または2に記載のソースコード生成装置であって、
前記サブコード生成部は、前記サブシステムにおいて後段の処理を実行する前記処理ブロックから順番に、前記パラメータ定義部が定義する前記入出力パラメータを使用して、前記元のソースコードに基づいて、前記処理ブロックの処理に対応する前記サブソースコードを生成するように構成されている、
ソースコード生成装置。 - 請求項3に記載のソースコード生成装置であって、
前記サブコード生成部は、前記処理ブロックが条件分岐の処理を実行し、いずれかの分岐先の処理に対応する記述が前記元のソースコードに存在しない場合、記述が存在しない分岐先の処理を表すサブコードを生成するように構成されている、
ソースコード生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018122141A JP7059827B2 (ja) | 2018-06-27 | 2018-06-27 | ソースコード生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018122141A JP7059827B2 (ja) | 2018-06-27 | 2018-06-27 | ソースコード生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020004036A true JP2020004036A (ja) | 2020-01-09 |
JP7059827B2 JP7059827B2 (ja) | 2022-04-26 |
Family
ID=69100290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018122141A Active JP7059827B2 (ja) | 2018-06-27 | 2018-06-27 | ソースコード生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7059827B2 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01303533A (ja) * | 1988-05-31 | 1989-12-07 | Toshiba Corp | テスト網羅率測定システム |
JP2005301568A (ja) * | 2004-04-09 | 2005-10-27 | Denso Corp | 表示情報記憶制御装置および表示情報記憶制御プログラム |
JP2009294846A (ja) * | 2008-06-04 | 2009-12-17 | Denso Corp | テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法 |
JP2010250669A (ja) * | 2009-04-17 | 2010-11-04 | Denso Corp | テストケース生成装置、オブジェクト検査装置、およびプログラム |
US9665350B1 (en) * | 2009-05-29 | 2017-05-30 | The Mathworks, Inc. | Automatic test generation for model-based code coverage |
-
2018
- 2018-06-27 JP JP2018122141A patent/JP7059827B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01303533A (ja) * | 1988-05-31 | 1989-12-07 | Toshiba Corp | テスト網羅率測定システム |
JP2005301568A (ja) * | 2004-04-09 | 2005-10-27 | Denso Corp | 表示情報記憶制御装置および表示情報記憶制御プログラム |
JP2009294846A (ja) * | 2008-06-04 | 2009-12-17 | Denso Corp | テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法 |
JP2010250669A (ja) * | 2009-04-17 | 2010-11-04 | Denso Corp | テストケース生成装置、オブジェクト検査装置、およびプログラム |
US9665350B1 (en) * | 2009-05-29 | 2017-05-30 | The Mathworks, Inc. | Automatic test generation for model-based code coverage |
Also Published As
Publication number | Publication date |
---|---|
JP7059827B2 (ja) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9389849B2 (en) | Test case pattern matching | |
US10664383B2 (en) | Automated software program repair of similar code snippets | |
JP2005302028A (ja) | プログラムを計装するプローブ最適化のための方法およびシステム | |
JP6904043B2 (ja) | 未知のプログラムバイナリのための入力発見 | |
US20130081003A1 (en) | Selective data flow analysis of bounded regions of computer software applications | |
WO2016121074A1 (ja) | ソフトウェア検査装置 | |
JP2008191963A (ja) | ソースコード検証システム、ソースコード検証方法、およびソースコード検証用プログラム | |
JP2016115175A (ja) | ソフトウェアテスト装置およびソフトウェアテストプログラム | |
JP2009294846A (ja) | テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法 | |
US20210389977A1 (en) | System migration support apparatus, system migration support method and program | |
JP6878707B2 (ja) | 試験装置、試験方法および試験プログラム | |
US9928089B2 (en) | Optimizing software code | |
KR20150128711A (ko) | 컴퓨터 시스템 활동의 트레이스 타임라인을 분석하기 위한 방법 및 시스템 | |
JP7059827B2 (ja) | ソースコード生成装置 | |
KR100511870B1 (ko) | 소프트웨어 테스트 장치 및 방법 | |
JP5811978B2 (ja) | モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法 | |
WO2019142266A1 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
JP2015069400A (ja) | ソフトウェアテストシステム | |
JP5755861B2 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
JPWO2012049816A1 (ja) | モデル検査装置、方法及びプログラム | |
JP2016126700A (ja) | プログラム検証装置、プログラム検証方法及びプログラム検証プログラム | |
JP4782315B2 (ja) | 影響解析装置および方法、記録媒体、プログラム | |
US20170220450A1 (en) | Analytic method and analyzing apparatus | |
JP4847102B2 (ja) | コンピュータプログラムのテストプログラム生成方法 | |
JP2009205239A (ja) | ソフトウェア検証システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210218 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220228 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220315 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220328 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7059827 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |