JPWO2020157795A1 - 試験装置、試験方法および試験プログラム - Google Patents
試験装置、試験方法および試験プログラム Download PDFInfo
- Publication number
- JPWO2020157795A1 JPWO2020157795A1 JP2020568832A JP2020568832A JPWO2020157795A1 JP WO2020157795 A1 JPWO2020157795 A1 JP WO2020157795A1 JP 2020568832 A JP2020568832 A JP 2020568832A JP 2020568832 A JP2020568832 A JP 2020568832A JP WO2020157795 A1 JPWO2020157795 A1 JP WO2020157795A1
- Authority
- JP
- Japan
- Prior art keywords
- log
- program
- trace
- function call
- series
- 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
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/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/3684—Test management for test design, e.g. generating new test cases
-
- 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/3692—Test management for test results analysis
-
- 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/3664—Environments for testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
特許文献2では、テストケースをユーザから見た処理単位にまで拡大し、処理の履歴を記憶し、テストが再実行できるようにすることで、ユーザ側でのプラットフォームの不具合検証を容易にする技術が提案されている。
特許文献4では、ユーザ操作を取得し、複数回再生することでプラットフォームの回帰試験を高速に実行する技術が提案されている。
特許文献5では、障害発生時にハードウェア情報をトレースし、トレースデータをシミュレータに関連付けられたフォーマットに変換し、シミュレータで再生することで、デバッグ、検証、あるいは最適化を可能とする技術が提案されている。ハードウェア情報とは、命令デコーダ、キャッシュ、およびレジスタといった情報である。
特許文献6では、上位アプリケーションと他依存ライブラリが、デバッグ対象のライブラリの関数呼び出しを解析することで、デバッグを容易にする技術が提案されている。
前記アプリケーションプログラムを複数回繰り返し実行し、前記一連の関数呼び出し処理をトレースしたトレース結果であって前記一連の関数呼び出し処理により呼び出された関数の引数と返り値とを含むトレース結果を複数含むトレースログを取得するログ取得部と、
前記トレースログを解析することにより、前記一連の関数呼び出し処理により呼び出される関数の引数と返り値との各々の属性を変数属性として推定するログ解析部と、
前記変数属性を用いて、前記一連の関数呼び出し処理を再現する再現プログラムを生成するプログラム生成部とを備えた。
***構成の説明***
図1は、本実施の形態に係る試験装置100のハードウェア構成を示す図である。
図2は、本実施の形態に係る試験装置100の機能構成を示す図である。
試験装置100は、コンピュータである。試験装置100は、プロセッサ910を備えるとともに、メモリ921、補助記憶装置922、入出力インタフェース930、および通信装置950といった他のハードウェアを備える。
プロセッサ910は、信号線940を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
プロセッサ910は、演算処理を行うIC(Integrated Circuit)である。プロセッサ910の具体例は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
補助記憶装置922は、データを保管する記憶装置である。補助記憶装置922の具体例は、HDDである。また、補助記憶装置922は、SD(登録商標)メモリカード、CF、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記録媒体であってもよい。なお、HDDは、Hard Disk Driveの略語である。SD(登録商標)は、Secure Digitalの略語である。CFは、CompactFlash(登録商標)の略語である。DVDは、Digital Versatile Diskの略語である。
また、入出力インタフェース930は、ディスプレイといった出力機器のケーブルが接続されるポートを出力インタフェースとして備える。出力インタフェースは、具体的には、USB端子またはHDMI(登録商標)(High Definition Multimedia Interface)端子である。ディスプレイは、具体的には、LCD(Liquid Crystal Display)である。
試験プログラムは、ログ取得処理、ログ解析処理、プログラム生成処理、コンパイル処理、プログラム実行処理、および結果判定処理をコンピュータに実行させる。また、試験方法は、試験装置100が試験プログラムを実行することにより行われる方法である。
試験プログラムは、コンピュータ読取可能な記憶媒体に格納されて提供されてもよい。また、試験プログラムは、プログラムプロダクトとして提供されてもよい。
試験装置100は、ソフトウェアプラットフォーム106を利用して一連の関数呼び出し処理を行うアプリケーションプログラム111を実行し、ソフトウェアプラットフォーム106の試験を行う。
図2に示すように、試験装置100において、オペレーティングシステム108が動作しており、その上で動的ライブラリ109が動作している。ソフトウェアプラットフォーム106は、具体的には、動的ライブラリ109である。動的ライブラリは複数であってもよい。また、その上でアプリケーションプログラム111が動作している。アプリケーションプログラム111は、表示処理、音声処理、データベース処理、WEBアプリケーション処理、あるいは計算処理といった情報処理である。トレースプログラム112はアプリケーションプログラム111が動的ライブラリ109の関数呼び出しをフックし、トレースログ113に出力するプログラムである。トレースログ113は、メモリ921あるいは補助記憶装置922に出力される。
関数呼び出しテーブル301において、関数の引数には、例えば、乱数、時刻、システム変数、あるいはアドレスといった変数種別のタグが記憶される。また、返り値には、例えば、他関数において流用されている流用箇所が記憶される。
コンパイル部204は、再現プログラムソースコード302をコンパイルし、実行可能な再現プログラム303を生成する。
関数呼び出し試験表304には、再現プログラム303において期待される出力の期待値と、判定結果とが記憶される。期待値は、関数呼び出しテーブル301の変数種別あるいは流用箇所に基づいて予め定められる。開発者110は、関数呼び出し試験表304を確認し、動的ライブラリ109が期待される動作を行ったかを判断する。
まず、図3を用いて、本実施の形態と比較するための比較例のソフトウェア試験処理の流れを説明する。
ステップS101において、再現試験プログラムが開発される。
ステップS102において、再現試験プログラムが実行される。
ステップS103において、実行の成否が判定され、実行が成功すれば、処理は終了する。
実行が失敗すると、ステップS104において、開発者により、ログ解析あるいは再現性試験が行われ、失敗箇所が特定される。また、開発者により、修正方法が検討される。
ステップS105において、プラットフォームが改修される。
図4は、本実施の形態に係るログ取得部201の動作を示すフロー図である。
ログ取得処理において、ログ取得部201は、アプリケーションプログラム111を複数回繰り返し実行し、トレース結果13を複数含むトレースログ113を取得する。トレース結果13は、一連の関数呼び出し処理333をトレースした結果である。トレース結果13は、一連の関数呼び出し処理333により呼び出された関数の引数と返り値とを含む。
ステップS202において、ログ取得部201は、実行環境を初期化する。実行環境の初期化とは、設定ファイルあるいは共有メモリの削除といった前処理である。
ステップS204において、ログ取得部201は、トレースプログラム112を実行し、ステップS203で実行したアプリケーションプログラム111を指定して、図5のトレースログ113を出力する。
ログ取得部201は、トレースプログラム112により、アプリケーションプログラム111の動的ライブラリの呼び出しをフックし、実行開始時刻、関数名、引数、および返り値を出力する。ログ取得部201は、引数として、引数1から引数maxまで取得する。取得した数以上の引数は、“−”で表す。引数maxは、予め決まっている。また、システムコールの呼び出しといった、前述のもの以外のデータがトレースログ113に付随しても構わないが、動的ライブラリの呼び出しと区別できるフォーマットである必要がある。実行開始時刻は、互いに比較演算でき、絶対時刻が分かるものであれば、どの形式でも構わない。例えば、実行開始時刻は、UNIX(登録商標) timeといった形式でよい。引数および返り値の各々は、型名と値である。型名は、例えば、アドレス、文字列、整数、小数、NULL、あるいはvoidである。また、引数および返り値には、アプリケーション実行に関係するメモリマップを参照できるものを含めてもよい。メモリマップを参照できるものは、例えば、構造体のポインタであれば、構造体のメンバ変数名とその値、配列であれば、全配列データといったデータである。
ステップS206において、ログ取得部201は、ログ取得回数iがm以上であれば終了し、iがm未満であればステップS202に戻る。mは予め決めておく。mは1以上であれば、どの値でも構わない。
図6は、本実施の形態に係るログ解析部202の動作を示すフロー図である。
ログ解析部202は、トレースログ113を解析することにより、一連の関数呼び出し処理333により呼び出される関数の引数と返り値との各々の属性を変数属性21として推定する。ログ解析部202は、一連の関数呼び出し処理333により呼び出される関数の引数と返り値との各々に、変数属性21を表す変数属性タグ208をタグ付けした関数呼び出しテーブル301を生成する。
ステップS302において、ログ解析部202は、トレースログ113から関数シーケンスを一連の関数呼び出し処理333として作成する。具体的に図5のトレースログ113であれば、ログ解析部202は、No1からNoxまでの関数シーケンス(funcA,funcB,funcA,・・・,funcF)を作成する。
変数属性タグ208は、変数および返り値のタグである。変数属性タグ208は、予めメモリ921あるいは補助記憶装置922に記憶されている。
ログ解析部202は、m個の通信シーケンスを統計的に解析し、それぞれの引数および返り値の変数属性が図7のうちのいずれであるかを推定し、それぞれの引数および返り値にタグ付する。変数属性のTypeがシステムとなるものは、システムライブラリの関数名と引数の型を予め保存しておき、関数シーケンスの関数名と一致すれば、その関数の引数と判別する。例えば、関数名がgetpidであれば返り値がPIDであると判別する。システムライブラリは、オペレーティングシステムのシステムコールのラッパー関数であればどのライブラリでも構わない。例えば、システムライブラリは、標準CライブラリのglibcあるいはNewlibといった関数である。
関数呼び出しテーブル301は、トレースログ113における全ての引数および返り値に、統計的に解析した変数属性21をタグ付したテーブルである。
アドレスが構造体の場合は、ログ解析部202は、図8の変数属性T301のように、メンバ変数とその値をタグ付する。メンバ1とメンバ2は変数属性T302のstructAの構造体のメンバを意味している。メンバ1とメンバ2には、ログ取得部201で取得されたデータがそのままタグ付されている。
変数種別T401は、Typeが「固定値」の例である。変数種別T501は、Typeが「システム」の例である。
ステップS305において、ログ解析部202は、ステップS304までの解析結果を関数呼び出しテーブル301に出力する。
図9は、本実施の形態に係るプログラム生成部203の動作を示すフロー図である。
プログラム生成処理において、プログラム生成部203は、変数属性21を用いて、一連の関数呼び出し処理333を再現する再現プログラム303を生成する。プログラム生成部203は、関数呼び出しテーブル301を用いて、再現プログラム303を生成する。
ステップS312において、プログラム生成部203は、アプリケーションプログラム111とリンクされた動的ライブラリ情報を読み込む。例えば、アプリケーションプログラム111には動的ライブラリの関数名が含まれており、アプリケーションプログラム111から呼び出される関数の情報が動的ライブラリ情報としてメモリに記憶されている。
動的ライブラリ情報は、変数名と型を特定できるものであればいかなる情報でも構わない。動的ライブラリ情報は、例えば、ヘッダファイルといった情報でもよい。ヘッダファイルとは、動的ライブラリをリンクするために必要なヘッダファイルを指す。例えばC言語でlibcライブラリを使う場合ソースコードの先頭に#include<stdio.h>を付けるが、stdio.hがそのヘッダファイルとなる。そのヘッダファイルのみで変数名と型(具体的にはバイト数)が特定できない場合は、ヘッダファイルが参照しているファイルを検索するといった方法で特定する。
ステップS314において、プログラム生成部203は、ステップS312で定義した変数を用いて、関数呼び出し、また、それぞれの関数呼び出しのログを出力するように再現プログラムソースコード302を生成する。ログには、関数呼び出し時刻、関数名、引数の型、および返り値の値を出力する。ログは、関数の呼び出し順序を一意に特定できるものであれば、どのような形式でも構わない。
プログラム実行部205は、結果判定部206から命令を受けて、再現プログラム303を実行させる。
なお、ここでは、プログラム生成部203が再現プログラムソースコード302を作成し、コンパイル部204が再現プログラムソースコード302から再現プログラム303を作成している。しかし、プログラム生成部203が再現プログラムソースコード302から再現プログラム303を作成する機能を有していてもよい。
図10は、本実施の形態に係る結果判定部206の動作を示すフロー図である。結果判定部206は、再現プログラム303の出力結果を判定する再現プログラム出力結果判定部ともいう。
結果判定部206は、再現プログラム303を実行し、一連の関数呼び出し処理333により呼び出された関数の引数と返り値との各々を再現結果26として取得し、再現結果26の属性が期待値を満たしているかを判定する。
ステップS402において、結果判定部206は、プログラム実行部205に再現プログラム303の実行を要求する。プログラム実行部205は、再現プログラム303を実行する。
ステップS403において、結果判定部206は、再現プログラム303の出力を再現結果26として取得する。
ステップS404において、結果判定部206は、再現プログラム303の再現結果26と関数呼び出しテーブル301の同等の関数における出力結果とを比較し、関数呼び出し試験表304に出力する。
関数呼び出し試験表304には、トレースログ113の項目に、返り値の期待値と結果の項目が加えられている。返り値の期待値は、関数呼び出しテーブル301にタグ付された変数属性21に基づいて求められる。具体的には、試験装置100が、ステップS303で返り値に付与したタグを基に返り値の期待値を自動的に設定する。例えば、変数種別がPIDであれば、返り値の期待値には、1以上、システムのPIDのMAX値以下の値が設定される。また、変数種別がアドレスであれば、返り値の期待値には、システムの有効なアドレス範囲内といった値が設定される。結果判定部206は、返り値と期待値を比較し、返り値が期待値の範囲であれば結果に範囲内と設定する。結果判定部206は、返り値が期待値の範囲外であれば結果に範囲外と設定する。結果判定部206は、返り値の種別がその他であるといった特定できない場合は、結果に判断不可を設定する。また、結果判定部206は、引数についても、タグ付された変数属性を基に結果を判定する。
本実施の形態では、ログ取得部201、ログ解析部202、プログラム生成部203、コンパイル部204、プログラム実行部205、および結果判定部206の機能がハードウェアで実現されてもよい。
電子回路は、ログ取得部201、ログ解析部202、プログラム生成部203、コンパイル部204、プログラム実行部205、および結果判定部206の機能を実現する専用の電子回路である。
電子回路は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。ASICは、Application Specific Integrated Circuitの略語である。FPGAは、Field−Programmable Gate Arrayの略語である。
ログ取得部201、ログ解析部202、プログラム生成部203、コンパイル部204、プログラム実行部205、および結果判定部206の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
別の変形例として、ログ取得部201、ログ解析部202、プログラム生成部203、コンパイル部204、プログラム実行部205、および結果判定部206の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。また、ログ取得部201、ログ解析部202、プログラム生成部203、コンパイル部204、プログラム実行部205、および結果判定部206の一部またはすべての機能がファームウェアで実現されてもよい。
以上のように、本実施の形態に係る試験装置100によれば、実行可能な再現プログラムを自動生成することにより、アプリケーションプログラムの使用範囲に即したライブラリの試験が可能となる。よって、本実施の形態に係る試験装置100によれば、ソフトウェアプラットフォームの品質が向上する。
本実施の形態では、実施の形態1と異なる点について説明する。なお、実施の形態1と同様の構成については同一の符号を付し、その説明を省略する。
本実施の形態では、試験装置100のハードウェア構成および機能構成は、実施の形態1と同様である。ただし、本実施の形態では、再現プログラムソースコード302、再現プログラム303、および関数呼び出し試験表107が複数になる。
図12は、本実施の形態に係る関数呼び出しテーブル301aの例である。
関数呼び出しテーブル301aには、図8の関数呼び出しテーブル301の各トレース結果13に、処理フローを分類する処理フローの項目が追加されている。また、1つのトレース結果13は、1,2,・・・,nまでの処理フローのいずれかに分類される。nは1以上m以下の値を取る。
(1)ログ解析部202が、トレースログ113の複数のトレース結果13を処理フロー毎に分類し、類似トレースログ132から成る関数呼び出しテーブル301aを生成する点。
(2)プログラム生成部203が、関数呼び出しテーブル301aの類似トレースログ132毎に、再現プログラムソースコード302を生成する点。
(3)コンパイル部204が、複数の再現プログラムソースコード302をコンパイルし、複数の再現プログラム303を生成する点。
(4)結果判定部206が、類似トレースログ132毎に生成された再現プログラム303を実行し、関数呼び出し試験表304を類似トレースログ132毎に複数出力する点。
図13のステップS301、ステップS302、およびステップS305は、実施の形態1の図6と同様である。
ステップS501において、ログ解析部202は、トレース結果13の関数シーケンスの類似度を算出し、トレース結果13の関数シーケンスをn個に分類する。複数のトレース結果13は、類似トレースログ132に分類される。
ステップS502において、ログ解析部202は、分類した類似トレースログ132毎に、ステップS303と同様の処理を行う。
ステップS503において、ログ解析部202は、分類した類似トレースログ132毎に、ステップS304と同様の処理を行う。
図14のステップS311、ステップS312、およびステップS313は、実施の形態1の図9と同様である。
ステップS601において、プログラム生成部203は、処理フローnを設定する。
ステップS602において、プログラム生成部203は、処理フローの番号を付与した再現プログラムソースコードiを生成する。
ステップS603において、プログラム生成部203は、iを次の処理フロー番号に設定する。
ステップS604において、プログラム生成部203は、処理フロー番号iが処理フローn未満であれば、ステップS313に分岐し、処理フロー番号iが処理フローn以上であれば、処理を終了する。
図15のステップS401は、実施の形態1の図10と同様である。
ステップS701において、結果判定部206は、処理フローnを設定する。
ステップS702において、結果判定部206は、処理フロー番号iに対応した再現プログラムiを実行し呼び出し結果を取得する。
ステップS703において、結果判定部206は、処理フロー番号iに対応した関数呼び出し試験表iを出力する。
ステップS704において、結果判定部206は、iを次の処理フロー番号に設定する。
ステップS705において、結果判定部206は、処理フロー番号iが処理フローn未満であれば、ステップS702に分岐し、処理フロー番号iが処理フローn以上であれば、処理を終了する。
以上のように、本実施の形態に係る試験装置100によれば、アプリケーションプログラムの異なる処理フロー毎にライブラリのテストを実施できる。よって、複数パターンのライブラリのテストにより、発見しづらいバグおよび脆弱性を効率的に検証でき、ソフトウェアのプラットフォームの品質が向上する。
本実施の形態では、実施の形態1および2と異なる点について説明する。なお、実施の形態1および2と同様の構成については同一の符号を付し、その説明を省略する。
本実施の形態では、試験装置100のハードウェア構成および機能構成は、実施の形態1と同様である。
ログ取得部201は、アプリケーションプログラムを実行する間隔を表す実行規定間隔で、アプリケーションプログラム111を複数回繰り返し実行する。
図16は、本実施の形態に係るログ取得部201の動作を示すフロー図である。
図16のステップS201、ステップS202、ステップS204、ステップS205、およびステップS206は、実施の形態1の図4と同様である。
ステップS802において、ログ取得部201は、前回実行時刻に現在時刻を設定する。
ステップS803において、ログ取得部201は、前回実行時刻から実行規定間隔Tを加算した時刻まで待機する。
ステップS804において、ログ取得部201は、起床した現在時刻を前回実行時刻に保存し、アプリケーションプログラム111を実行する。
以上により、ログ取得部201は、ステップS801で設定した実行規定間隔Tでの、アプリケーションプログラム111の実行が可能となる。
図17のステップS301、ステップS302、ステップS502、ステップS503、およびステップS305は、実施の形態2の図13と同様である。
本実施の形態に係る試験装置100によれば、処理フローの分類精度を向上させることができ、再現プログラムの実行可能性を高めることができる。
本実施の形態では、実施の形態1から3と異なる点について説明する。なお、実施の形態1から3と同様の構成については同一の符号を付し、その説明を省略する。
本実施の形態では、試験装置100のハードウェア構成および機能構成は、実施の形態1と同様である。
ログ取得部201は、アプリケーションプログラム111を実行する毎に、ソフトウェアプラットフォームを初期化する。
図18のステップS202、ステップS203、ステップS204、ステップS205、およびステップS206は、実施の形態1の図4と同様である。
ステップS902において、ログ取得部201は、再起動回数がトレースログ取得回数よりも少なければ、再起動する。ログ取得部201は、再起動をオペレーティングシステム108に指示する。
再起動回数がトレースログ取得回数以上になったら、ログ取得部201は、終了する。これら実行状態の管理は、再起動によって保持される方法であれば、いかなる方法でもよい。
本実施の形態に係る試験装置によれば、アプリケーションプログラムの動作環境を同一にすることが可能となり、複数のトレースログの類似性が高まり、解析精度が向上する。
なお、上述した実施の形態は、本質的に好ましい例示であって、本発明の範囲、本発明の適用物の範囲、および本発明の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。
Claims (11)
- ソフトウェアプラットフォームを利用して一連の関数呼び出し処理を行うアプリケーションプログラムを実行し、前記ソフトウェアプラットフォームの試験を行う試験装置において、
前記アプリケーションプログラムを複数回繰り返し実行し、前記一連の関数呼び出し処理をトレースしたトレース結果であって前記一連の関数呼び出し処理により呼び出された関数の引数と返り値とを含むトレース結果を複数含むトレースログを取得するログ取得部と、
前記トレースログを解析することにより、前記一連の関数呼び出し処理により呼び出される関数の引数と返り値との各々の属性を変数属性として推定するログ解析部と、
前記変数属性を用いて、前記一連の関数呼び出し処理を再現する再現プログラムを生成するプログラム生成部と
を備えた試験装置。 - 前記試験装置は、
前記再現プログラムを実行し、前記一連の関数呼び出し処理により呼び出された関数の引数と返り値との各々を再現結果として取得し、前記再現結果の属性が期待値を満たしているかを判定する結果判定部を備えた請求項1に記載の試験装置。 - 前記ログ解析部は、
前記トレースログを統計的に解析することにより、前記変数属性を推定する請求項1または請求項2に記載の試験装置。 - 前記ログ解析部は、
前記一連の関数呼び出し処理により呼び出される関数の引数と返り値との各々に、前記変数属性を表す変数属性タグをタグ付けした関数呼び出しテーブルを生成し、
前記プログラム生成部は、
前記関数呼び出しテーブルを用いて、前記再現プログラムを生成する請求項1から請求項3のいずれか1項に記載の試験装置。 - 前記ログ解析部は、
前記トレースログを統計的に解析することにより、前記変数属性として、前記一連の関数呼び出し処理により呼び出される関数の引数と返り値との各々の種別を表す変数種別を推定する請求項1から請求項4のいずれか1項に記載の試験装置。 - 前記ログ解析部は、
前記トレースログを統計的に解析することにより、前記変数属性として、前記一連の関数呼び出し処理により呼び出される関数の引数と返り値との各々が流用される流用箇所を推定する請求項1から請求項5のいずれか1項に記載の試験装置。 - 前記ログ取得部は、
前記トレースログに含まれる複数のトレース結果を、前記複数のトレース結果の各々に含まれる関数呼び出しの順序に基づいて類似トレースログとして分類し、
前記ログ解析部は、
前記類似トレースログごとに、前記変数属性を推定し、
前記プログラム生成部は、
前記類似トレースログごとに、前記再現プログラムを生成する請求項1から請求項6のいずれか1項に記載の試験装置。 - 前記ログ取得部は、
前記アプリケーションプログラムを実行する間隔を表す実行規定間隔で、前記アプリケーションプログラムを複数回繰り返し実行する請求項1から請求項7のいずれか1項に記載の試験装置。 - 前記ログ取得部は、
前記アプリケーションプログラムを実行する毎に、前記ソフトウェアプラットフォームを初期化する請求項1から請求項8のいずれか1項に記載の試験装置。 - ソフトウェアプラットフォームを利用して一連の関数呼び出し処理を行うアプリケーションプログラムを実行し、前記ソフトウェアプラットフォームの試験を行う試験装置の試験方法において、
ログ取得部が、前記アプリケーションプログラムを複数回繰り返し実行し、前記一連の関数呼び出し処理をトレースしたトレース結果であって前記一連の関数呼び出し処理により呼び出された関数の引数と返り値とを含むトレース結果を複数含むトレースログを取得し、
ログ解析部が、前記トレースログを解析することにより、前記一連の関数呼び出し処理により呼び出される関数の引数と返り値との各々の属性を変数属性として推定し、
プログラム生成部が、前記一連の関数呼び出し処理により呼び出される関数の引数と返り値との前記変数属性を用いて、前記一連の関数呼び出し処理を再現する再現プログラムを生成する試験方法。 - ソフトウェアプラットフォームを利用して一連の関数呼び出し処理を行うアプリケーションプログラムを実行し、前記ソフトウェアプラットフォームの試験を行う試験装置の試験プログラムにおいて、
前記アプリケーションプログラムを複数回繰り返し実行し、前記一連の関数呼び出し処理をトレースしたトレース結果であって前記一連の関数呼び出し処理により呼び出された関数の引数と返り値とを含むトレース結果を複数含むトレースログを取得するログ取得処理と、
前記トレースログを解析することにより、前記一連の関数呼び出し処理により呼び出される関数の引数と返り値との各々の属性を変数属性として推定するログ解析処理と、
前記一連の関数呼び出し処理により呼び出される関数の引数と返り値との前記変数属性を用いて、前記一連の関数呼び出し処理を再現する再現プログラムを生成するプログラム生成処理と
をコンピュータである試験装置に実行させる試験プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/002721 WO2020157795A1 (ja) | 2019-01-28 | 2019-01-28 | 試験装置、試験方法および試験プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2020157795A1 true JPWO2020157795A1 (ja) | 2021-04-30 |
JP6878707B2 JP6878707B2 (ja) | 2021-06-02 |
Family
ID=71842420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020568832A Active JP6878707B2 (ja) | 2019-01-28 | 2019-01-28 | 試験装置、試験方法および試験プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210286715A1 (ja) |
JP (1) | JP6878707B2 (ja) |
WO (1) | WO2020157795A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722020B (zh) * | 2020-05-26 | 2024-06-11 | 腾讯科技(深圳)有限公司 | 接口调用方法、装置和计算机可读存储介质 |
KR102614650B1 (ko) * | 2022-11-28 | 2023-12-19 | 쿠팡 주식회사 | 전자 장치 및 그의 api 관리 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009217664A (ja) * | 2008-03-12 | 2009-09-24 | Hitachi Software Eng Co Ltd | 自動テスト実行システム |
JP2010226617A (ja) * | 2009-03-25 | 2010-10-07 | Seiko Epson Corp | テストプログラム生成方法、プログラム |
JP2016177659A (ja) * | 2015-03-20 | 2016-10-06 | ヤフー株式会社 | 検証プログラム、検証装置及び検証方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8762781B2 (en) * | 2010-11-16 | 2014-06-24 | International Business Machines Corporation | Method and apparatus useful in manufacturing test case operations |
-
2019
- 2019-01-28 JP JP2020568832A patent/JP6878707B2/ja active Active
- 2019-01-28 WO PCT/JP2019/002721 patent/WO2020157795A1/ja active Application Filing
-
2021
- 2021-06-03 US US17/337,717 patent/US20210286715A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009217664A (ja) * | 2008-03-12 | 2009-09-24 | Hitachi Software Eng Co Ltd | 自動テスト実行システム |
JP2010226617A (ja) * | 2009-03-25 | 2010-10-07 | Seiko Epson Corp | テストプログラム生成方法、プログラム |
JP2016177659A (ja) * | 2015-03-20 | 2016-10-06 | ヤフー株式会社 | 検証プログラム、検証装置及び検証方法 |
Non-Patent Citations (1)
Title |
---|
藤原 貴之 他: "大規模組込み機器向けテスト自動化拡大方式 Expanding Automated Testing for Large Embedded System", 情報処理学会論文誌 コンシューマ・デバイス&システム(CDS) VOL.4 NO.4 [ONLINE, vol. 第4巻 第4号, JPN6021003867, 10 December 2014 (2014-12-10), JP, pages 1 - 10, ISSN: 0004439715 * |
Also Published As
Publication number | Publication date |
---|---|
WO2020157795A1 (ja) | 2020-08-06 |
JP6878707B2 (ja) | 2021-06-02 |
US20210286715A1 (en) | 2021-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4148527B2 (ja) | 機能テスト・スクリプト生成装置 | |
US9152731B2 (en) | Detecting a broken point in a web application automatic test case | |
US9208057B2 (en) | Efficient model checking technique for finding software defects | |
US8621441B2 (en) | System and method for software immunization based on static and dynamic analysis | |
US11675575B2 (en) | Checking source code validity at time of code update | |
US8832125B2 (en) | Extensible event-driven log analysis framework | |
US10664383B2 (en) | Automated software program repair of similar code snippets | |
US20130145347A1 (en) | Automatic modularization of source code | |
JP2006185211A (ja) | プログラム解析装置、テスト実行装置、その解析方法及びプログラム | |
US11132282B2 (en) | Managing cloud-based hardware accelerators | |
EP3682324A1 (en) | Method and apparatus for finding long methods in code | |
US20130179867A1 (en) | Program Code Analysis System | |
US8898649B2 (en) | Application program analysis method, analysis system and recording medium for identifying a contributing factor for an invalid operation of an application program | |
US9117020B2 (en) | Determining control flow divergence due to variable value difference | |
JP6878707B2 (ja) | 試験装置、試験方法および試験プログラム | |
US8762781B2 (en) | Method and apparatus useful in manufacturing test case operations | |
US10380313B1 (en) | Implementation and evaluation of designs for heterogeneous computing platforms with hardware acceleration | |
US10839124B1 (en) | Interactive compilation of software to a hardware language to satisfy formal verification constraints | |
US10318403B2 (en) | Code update based on detection of change in runtime code during debugging | |
US11947966B2 (en) | Identifying computer instructions enclosed by macros and conflicting macros at build time | |
US20220318005A1 (en) | Generation of software program repair explanations | |
CN108255802B (zh) | 通用文本解析架构及基于所述架构解析文本的方法和装置 | |
WO2023145165A1 (ja) | プログラム検査装置、及びプログラム検査方法 | |
JP2007219893A (ja) | ファームウェア評価システムおよびファームウェア評価方法 | |
CN117616387A (zh) | 增量编译处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201210 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201210 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20201210 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20210128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210209 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210302 |
|
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: 20210406 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210428 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6878707 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |