デバッグ
Debug
でばっぐ
他の資格での定義
プログラムの不具合(バグ)を発見し修正するプロセス。机上デバッグや実行デバッグがあり、デバッガ、トレーサー、アサーション、スナップショットなどのツールや手法を用いる。静的解析と動的テストを組み合わせて行う。
プログラムの誤り(バグ)を発見し修正する作業。静的解析、動的テスト、アサーション、トレーサー、スナップショットなどの手法やツールを用いる。机上デバッグと実機デバッグがあり、デバッグ環境の整備が重要。
ネットワークやシリアル接続を介して、ホストPC上のデバッガからターゲット機器のプログラムをデバッグする手法。GDBサーバ(gdbserver)を使用して、ブレークポイント設定、変数監視、ステップ実行を遠隔で行う。組込みLinux開発で一般的。
関連キーワードの用語
プログラムの内部構造(ロジック、分岐、ループなど)に着目して行うテスト。命令網羅、分岐網羅などのカバレッジ基準を用い、すべての処理経路が正しく動作するか検証する。単体テストで主に用いられる。
単体テスト済みの複数のモジュールを結合し、モジュール間のインタフェースや連携が正しく機能するか検証するテスト。結合テストとも呼ばれ、トップダウンテストやボトムアップテストなどの手法がある。
プログラムの内部構造を考慮せず、入力と出力の関係に着目して行うテスト。仕様書に基づいて期待される出力が得られるかを検証する。同値分割法や境界値分析などのテスト技法が用いられる。
システムの処理速度、応答時間、スループットなどが要件を満たしているか検証するテスト。想定される通常の使用条件下で、システムが期待どおりの性能を発揮するかを確認する。
システムに想定される最大負荷やそれ以上の負荷をかけ、性能の限界や挙動を検証するテスト。アクセス集中時にシステムが安定して稼働するか、性能劣化がどの程度かを確認する。
プログラムの修正や変更を行った後に、既存の機能に悪影響(デグレード)が生じていないか確認するテスト。リグレッションテストとも呼ばれ、変更箇所以外の部分が正常に動作することを検証する。