モデルベースのテストとは何ですか?
モデルベースのテストとは何ですか?
モデルベースのテストは、テスト対象のソフトウェアの実行時の動作をモデルによる予測と照合してチェックするソフトウェア テスト手法です。 モデルはシステムの動作を記述したものです。 動作は、入力シーケンス、アクション、条件、出力、および入力から出力へのデータの流れという観点から説明できます。 実際に理解でき、再利用可能である必要があります。 shareable には、テスト対象のシステムの正確な説明が含まれている必要があります。
多数のモデルが利用可能であり、システム動作のさまざまな側面が説明されています。 モデルの例は次のとおりです。
- データフロー
- 制御フロー
- 依存関係グラフ
- デシジョンテーブル
- 状態遷移マシン
モデルベースのテストでは、(モデルによって決定される) アクションに応じてシステムがどのように動作するかを記述します。 アクションを実行し、システムが期待どおりに応答するかどうかを確認します。
これは、システムを検証するための軽量の形式的な方法です。 このテストは、ハードウェア テストとソフトウェア テストの両方に適用できます。
モデルベースのテストの例
上記のモデルは、メモ帳で詩を書く簡略化されたアプローチと、各ステップに関連する可能なアクションを説明しています。 あらゆるアクション (開始、詩の入力、保存など) ごとに、 テストケース を生成し、出力を確認できます。
MBTの種類
モデルベースのテスト フレームワークには XNUMX つのタイプがあります。
- オフライン / アプリオリ: 実行前のテスト スイートの生成。 テスト スイートはテスト ケースのコレクションにすぎません。
- オンライン/オンザフライ: テスト実行中のテスト スイートの生成
テスト中のさまざまなモデル
MBT を理解するには、以下で説明するモデルのいくつかを理解する必要があります。 一つずつ見ていきましょう。
有限状態機械
このモデルは、テスターが選択した入力に応じて結果を評価するのに役立ちます。 入力のさまざまな組み合わせにより、対応するシステムの状態が得られます。
システムには特定の状態と現在の状態があり、それはテスターによって与えられた一連の入力によって制御されます。
例を考えてみましょう。
従業員がアプリケーションにログインできるシステムがあります。 現在、従業員の現在の状態は「アウト」ですが、システムにサインインすると「イン」になります。 「in」状態では、従業員はシステム内のドキュメントを表示、印刷、スキャンできます。
状態図
これは有限状態マシンの拡張であり、複雑でリアルタイムなシステムに使用できます。ステートチャートは、システムのさまざまな動作を説明するために使用されます。ステートチャートには一定数の状態があります。システムの動作は分析され、各状態のイベントの形式で表されます。
例えば -
欠陥は、ステータスが「新規」として欠陥管理ツールに表示されます。 開発者によって修正されたら、ステータスを修正済みに変更する必要があります。 欠陥が修正されていない場合は、ステータスを「再オープン」に変更します。 状態グラフは、各状態のイベントを呼び出すように設計する必要があります。
統一モデリング言語(UML)
統一モデリング言語 (UML) は、標準化された汎用モデリング言語です。 UML には、システムの非常に複雑な動作を説明できる視覚的なモデルを作成するための一連のグラフィック表記技術が含まれています。
UML には次のような表記法があります。
- アクティビティ
- 役者
- ビジネス プロセス
- コンポーネント
- プログラミング言語
モデルベースのテストの課題
あらゆる組織にMBTを導入するには、当然ながら多額の投資と労力が必要です。以下はMBTの欠点です。 ソフトウエアエンジニアリング.
- テスターに必要なスキル
- 学習曲線の時間が長くなります
- モデル自体がわかりにくい
モデルテストの利点
MBT の利点は次のとおりです。
- テストケース/スイートのメンテナンスが簡単
- コスト削減
- テストカバレッジの向上
- n 台のマシンで異なるテストを実行可能
- 欠陥の早期発見
- 欠陥数の増加
- 時間の節約
- テスターの仕事満足度の向上
まとめ:
テスターはテスト中にとにかくメンタル モデルを構築します。 それらのメンタルモデルは紙上のモデルに変換できます。 これは、テスターが読みやすさと再利用性を実現するのに役立ちます。
モデルベースのテストは、次の新しいアプローチです。 ソフトウェアテスト。 ソフトウェア テストの進化を以下に示します。