ホームページ  >  記事  >  ソフトウェアのデバッグの目的は何ですか?

ソフトウェアのデバッグの目的は何ですか?

青灯夜游
青灯夜游オリジナル
2021-06-10 15:54:4116535ブラウズ

ソフトウェア デバッグの目的は、エラーを修正することです。ソフトウェアデバッグとは、作成したプログラムを実際に動作させる前に手動またはコンパイルによってテストし、文法的、論理的な誤りを修正する作業であり、コンピュータ情報システムの正確性を保証するために不可欠な作業です。

ソフトウェアのデバッグの目的は何ですか?

このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。

ソフトウェア デバッグの目的は、エラーを修正することです。

ソフトウェア デバッグの概念

ソフトウェア デバッグとは、一般に、ソフトウェアの欠陥を再現し、問題の根本原因を特定して見つけ出し、最終的に問題を解決するプロセスを指します。ソフトウェア デバッグには、通常、次の 2 つの異なる定義があります。

  • 定義 1:

    ソフトウェア デバッグは、ソフトウェア プログラム内のエラーを検出して除去することです。これは、特定の方法で実行できます。メソッド デバッグされたプログラムの実行ステータスをいつでも表示および変更できるように、デバッグされたプログラムの実行プロセスを制御するメソッド。この定義では、ソフトウェア テストはソフトウェア デバッグの一部であり、オックスフォード辞書のデバッグの定義と同様です。オックスフォード辞書では、デバッグは次のように定義されています。「コンピュータ ハードウェアまたはソフトウェアのエラーを特定し、除去するプロセス。」

  • 定義 2:

    デバッグとは、次の実行です。テストは成功しました。 次に何をするか。いわゆるテストの成功とは、プログラムが期待された機能を達成していないことを証明できることを意味します。デバッグは、成功したテスト ケースの実行と問題の発見から始まる 2 つのステップで構成されます。最初のステップは、プログラム内の疑わしいエラーの正確な性質と位置を特定することであり、2 番目のステップはエラーを修正することです。この定義では、ソフトウェアのテストはデバッグ作業から分離されます。

ソフトウェア デバッグの意味

ソフトウェア デバッグとは、コンパイルされたプログラムを実際に動作させる前に、手動でプログラムをコンパイルすることです。テストを実施し、文法的および論理的な誤りを修正するプロセス。 これは、コンピュータ情報システムの正確性を確保するために不可欠な手順です。コンピュータ プログラムをコンパイルした後、テストのためにコンピュータに送信する必要があります。テスト中に見つかったエラーに基づいて、さらなる診断が実行され、原因と具体的な修正箇所が特定されます。

デバッグという用語はさまざまな意味を持ちますが、最も文字通りには、エラー、例外、バグを削除することを意味します。さて、これを行う方法はたくさんあります。たとえば、コードの入力エラーをスキャンしたり、コード アナライザーを使用したりしてデバッグできます。パフォーマンス プロファイラーを使用してコードをデバッグできます。あるいは、デバッガーを使用してデバッグすることもできます。

##ソフトウェア デバッグの基本プロセス

定義 1 によると、ソフトウェア システムのデバッグの基本プロセスは次のとおりです。 編集プログラムを使用して、コンパイルされたソース プログラムをコンピュータに送信します。編集プログラムは、ユーザーの意図に応じてソースプログラムを追加、削除、修正します。

  • 受け取ったソース プログラムを機械語に翻訳します。つまり、コンパイラを使用してソース プログラムの文法をチェックし、文法規則に準拠したソース プログラムのステートメントを「言語」に翻訳します。コンピューターが認識できること」。コンパイラによるチェックの結果、文法上の誤りが見つかった場合は、編集プログラムを使用してソースプログラムの文法上の誤りを修正し、文法上の誤りがなくなるまで再度コンパイルする必要があります。

  • コンピュータの接続プログラムを使用して、翻訳されたコンピュータ言語プログラムを接続し、コンピュータが実際に実行できるプログラムに組み込みます。接続処理中に接続エラーが発生することは通常ありませんが、接続エラーが発生する場合は、サブルーチン呼び出しの混乱やソースプログラム内のパラメータの受け渡しの誤りなどの問題が発生していることを意味します。このとき、編集プログラムを使用してソースプログラムを修正し、コンパイルして接続するという作業を、接続エラーがなくなるまで繰り返します。

  • 修正したプログラムの試算を行う この際、いくつかのシミュレーションデータを想定して試行し、出力結果を手動処理の正しい結果と比較します。違いがある場合は、コンピュータ プログラムに論理的なエラーがあることを示します。プログラムが大きくない場合は、手動の方法を使用してコンピューターをシミュレートし、ソース プログラムのこれらのデータを変更および処理できますが、プログラムが比較的大きい場合は、手動のシミュレーションは明らかに機能しません。現時点で設定できるのは、コンピュータからシングルステップ実行への移行 ステップ追跡プログラムの実行。問題が見つかった後も、編集プログラムを使用してソース プログラムを修正する必要があり、その後、論理エラーがなくなるまでコンパイル、リンク、および実行する必要があります。完了後にコンパイルすることもできます。

#定義 2 によると、ソフトウェア システムのデバッグの基本プロセスは次のとおりです。

  • 問題を再現する: ソフトウェア テストで発見された問題を再現します。

  • ##問題の場所: 問題が発生しているプログラム セグメントの場所を特定します。問題が発生する可能性があります;

  • #原因を見つけてください。関連するコードを調べて、欠陥の原因となっている問題を特定します。内部的な理由:

  • ## 設計計画: ソフトウェアの欠陥問題に対する解決策を提案します。

  • ## コードの変更 : 設計計画に従ってプログラム コードを変更します;

  • # 検証と検証: レビュー、分析、テストなどの手法を使用して、エラーが排除されたかどうか、または新しいエラーが導入されたかどうかを判断します。
  • #上記の 6 つのステップが繰り返し実行されます。問題は解決されました。ソフトウェア デバッグの基本プロセスを図 1 に示します。


##これらの手順では、問題の場所と原因の特定がソフトウェア デバッグの重要な側面であり、その作業負荷がソフトウェア デバッグの約 90% を占めます。合計ワークロード。%上。ソフトウェアのデバッグは、時間と労力がかかり、熟練した技術が必要な作業です。現在、ソフトウェアのデバッグにおける問題箇所の特定に関する研究が数多く行われています。 定義 1 のプロセスは日常の開発およびテスト作業に適していることがわかりますが、定義 2 のプロセスはテスト、特にソフトウェアの後に見つかった問題に関連する作業に適していることがわかります。リリースまたはオンライン。

ソフトウェア デバッグの基本特性

  • 広範な相関性
    デバッガーには、コンピューターの基本的な知識 (オペレーティング システム、開発言語、ツールなどを含む) と、ビジネス上の問題領域の知識に精通している。
  • 難易度
    難しいかどうかは「広範な相関関係」でわかります。もちろん、直面する特定の問題やデバッガの品質にも依存します。
  • 完了時間を見積もることは困難です
    この時間を見積もるのは、この分野の専門家がいない限り実際には不可能です。特定の問題、全体的なソフトウェア アーキテクチャ、コードの理解と習熟度。

ソフトウェアデバッグの分類

  • デバッグ対象のシステム環境による分類:Windowsでのソフトウェアデバッグ、Linuxでのソフトウェアデバッグ、ソフトウェアデバッグDos ソフトウェアのデバッグなどで使用されます。
  • は、ターゲット コードの実行方法に応じて分割されます:
    スクリプト プログラム – スクリプト デバッガ
    コンパイルされたプログラムが実行されます:
    最初にコンパイルされるのは、次のとおりです。中間コードを生成し、現在の CPU で実行できるターゲット コードに動的にコンパイルします (C# で開発された .NET プログラムなど) – マネージド デバッグ
    プログラムを直接コンパイルしてターゲット コードにリンク (C/C) – ローカル デバッグ
    上記の両方 – 混合デバッグ
  • ターゲット コードの実行モードに応じて、ユーザー モード デバッグ (User Mode Debugging)、カーネル モード デバッグ (Kernel Mode Debugging) に分けられます。順序の基準として、システムは 2 つの実行モード、つまり、低特権レベルのユーザー モード (ユーザー モード) と高特権レベルのカーネル モード (カーネル モード) を定義します。
    アプリケーション コードはユーザー モードで実行され、オペレーティング システムのカーネル、実行本体、およびほとんどのデバイス ドライバーはカーネル モードで実行されます。
  • ソフトウェアの段階に応じて: 開発期デバッグ、製品期デバッグ (分割線は製品の正式リリース)
  • デバッガとデバッグの相対的な位置に応じてターゲット: ローカル デバッグ ああ、Haas、リモート デバッグ
  • デバッグ ターゲットのアクティビティによると: アクティブ ターゲット デバッグ、ダンプ ファイル デバッグ
関連知識の詳細については、こちらをご覧ください

FAQ コラム!

以上がソフトウェアのデバッグの目的は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。