ソフトウェアテストにおける組み込みテストとは?
組み込みシステムとは何ですか?
組み込みシステムは、ソフトウェアとハードウェアが密接に結合された電子制御デバイスです。組み込みシステムには、さまざまなコンピューティング デバイスが含まれる場合があります。これらは、アプリケーション固有の機能を実行するために他のデバイスに組み込まれた PC です。通常、エンド ユーザーはその存在に気付きません。
組み込みテスト
組み込みテスト 組み込みシステムのソフトウェアとハードウェアの両方の機能的および非機能的属性をチェックし、最終製品に欠陥がないことを確認するテスト プロセスです。 組み込みテストの主な目的は、組み込みハードウェアおよびソフトウェアの最終製品がクライアントの要件を満たしているかどうかを検証および検証することです。
組み込みソフトウェアのテストでは、関連するソフトウェアが高品質であり、満たすべきすべての要件を満たしていることを確認します。 組み込みソフトウェアのテストは、医療機器、鉄道、航空、自動車産業などの重要なアプリケーションのセキュリティを保証するための優れたアプローチです。ソフトウェアの認証を取得するには、厳格かつ慎重なテストが不可欠です。
組み込みソフトウェアのテストを実行する方法
一般に、次の XNUMX つの理由でテストを行います。
- ソフトウェアのバグを見つけるには
- ユーザーと企業の両方に対するリスクの軽減に役立ちます
- 開発コストと保守コストを削減する
- パフォーマンスを向上させるには
組み込みテストでは、次のアクティビティが実行されます。
1. ソフトウェアにはいくつかの入力が提供されています。
2. ソフトウェアの一部が実行されます。
3. ソフトウェアの状態が観察され、出力が期待される結果と一致するかどうか、要件への適合性、システム クラッシュがないかなど、出力の期待される特性がチェックされます。
組み込みソフトウェアのテストの種類
基本的に、組み込みソフトウェアに適用できるテストには XNUMX つのレベルがあります。
ソフトウェア単体テスト
ユニット モジュールは関数またはクラスのいずれかです。ユニット テストは開発チーム (主に開発者) によって実行され、通常はピア レビュー モデルで実行されます。モジュールの仕様に基づいて、テスト ケースが開発されます。
統合テスト
統合テストは次の XNUMX つのセグメントに分類できます。
- ソフトウェア統合テスト
- ソフトウェア/ハードウェアの統合テスト。
最後に、ハードウェア ドメインとソフトウェア コンポーネントの相互作用がテストされます。 これには、内蔵周辺機器とソフトウェア間の相互作用の検査を組み込むことができます。
組込みソフトウェアの開発は、ソフトウェアが動作する実際の環境を重視し、ソフトウェアと並行して開発するのが一般的です。 このため、模擬状態で総合的な試験を行うことができず、試験に不都合が生じる。
システムユニットテスト
ここでテストされるモジュールは、完全なソフトウェア コードに加えてすべてのコードで構成される完全なフレームワークです。 リアルタイム オペレーティング システム (RTOS) 割り込み、タスクメカニズム、通信などのプラットフォーム関連部分も含まれます。 Point of Control プロトコルは、もはや関数の呼び出しやメソッド呼び出しではなく、RTOS メッセージ キューを利用してメッセージの送信/取得を行うようになりました。
システム リソースは、組み込みシステムの実行をサポートするシステムの能力を評価するために観察されます。 この側面に関しては、 グレーボックステスト が好まれるテスト方法です。 組織によっては、システム単体テストは開発者または専任のシステム統合チームの義務となります。
システム統合テスト
テスト対象のモジュールは、単一ノード内のコンポーネントのセットから始まります。制御および監視ポイント (PCO) は、ネットワーク メッセージや RTOS イベントなど、ネットワーク関連の通信プロトコルと RTOS を組み合わせたものです。コンポーネントに加えて、仮想テスターはノードの役割も果たすことができます。
システム検証テスト
テスト対象のモジュールは、完全な実装または完全な組み込みシステムを備えたサブシステムです。 この最終テストの目的は、外部エンティティの機能要件を満たすことです。 外部エンティティは、人、通信ネットワーク内のデバイス、またはその両方であることに注意してください。
違い: 組み込みテストとソフトウェアテスト
ソフトウェアテスト | 組み込みテスト |
---|---|
ソフトウェア テストはソフトウェアのみに関連します。 | 組み込みテストは、ソフトウェアとハードウェアの両方に関連します。 |
世界で行われているテストの平均 90% は、純粋に手動のブラック ボックス テストです。 | 組み込みテストは組み込みシステムまたはチップ上で行われ、ブラック ボックス テストまたはホワイト ボックス テストになります。 |
テストの主な領域は、GUI チェック、機能、検証、およびある程度のレベルのデータベース テストです。 | テストの主な領域は、No.XNUMX のハードウェアの動作です。 それに与えられた入力の。 |
ソフトウェア テストは主に、クライアント サーバー、Web、およびモバイル ベースのアプリケーションで実行されます。 | 組み込みテストは通常、ハードウェア上で実行されます。 |
例: Google Mailヤフー Mail, Android 分野の様々なアプリケーションで使用されています。 | 例: ヘルスケア分野の機械、コンピューターで使用されるマイクロコントローラー。 |
課題: 組み込みソフトウェアのテスト
組み込みソフトウェアのテスト中に直面する可能性のある課題には、次のようなものがあります。
ハードウェアの依存関係
ハードウェアへのアクセスが制限されているために、組み込みソフトウェアのテスト中に直面する主な問題の XNUMX つは、ハードウェアの依存関係です。 ただし、エミュレータとシミュレータは実際のデバイスの動作を正確に表していない可能性があり、システムのパフォーマンスやアプリケーションの使いやすさについて誤った認識を与える可能性があります。
オープンソースのソフトウェア
組み込みソフトウェア コンポーネントの大部分は本質的にオープン ソースであり、社内で作成されたものではなく、利用可能な完全なテストが存在しません。 テストの組み合わせとその結果のシナリオは多岐にわたります。
ソフトウェアとハードウェアの欠陥
もう XNUMX つの側面は、新しく作成されたハードウェア用にソフトウェアが開発されている場合、このプロセス中に高い割合でハードウェアの欠陥が特定される可能性があることです。 見つかった欠陥はソフトウェアに限定されません。 ハードウェアにも関係があるかもしれません。
再現可能な欠陥
組み込みシステムの場合、欠陥を再現/再作成することは困難です。そのため、組み込みテスト手順では、欠陥の根本原因を見つけるためにシステムを変更するのに合理的に必要となるデータをできるだけ多く収集する以外に、すべての欠陥発生を標準的なケースよりも大幅に高く評価する必要があります。
継続的なソフトウェア更新
組み込みシステムでは、カーネルのアップグレード、セキュリティ修正、さまざまなデバイス ドライバーなどの定期的なソフトウェア アップデートが必要です。ソフトウェア アップデートの影響によって生じる制約により、バグの特定が困難になります。また、ビルドおよび展開手順の重要性が高まります。
製品概要
組み込みソフトウェアのテストには、通常のソフトウェア テストよりも難しいいくつかの問題があります。最も根本的な問題は、ソフトウェアと同時に準備され、信頼性の高いソフトウェア テストを実行するために定期的に必要となるハードウェア環境への強い依存です。カスタム ツールなしでソフトウェアをテストすることさえ難しい場合があり、そのため、後期段階でテストに集中することが非常に魅力的になります。
考慮すべき最も重要なことの 1 つは、自動化されたソフトウェア テストを頻繁に選択する必要があるという事実です。組み込みの自動化テストは、完了するまでに数時間かかるより迅速なプロセスであり、この方法でソフトウェアの問題が解決されます。