6

私は現在、大学で C を勉強しています。私は、教授の PC ではなく、私の PC と大学の PC で正しい出力が得られる C プログラムを作成する任務を負っています。教授は私のプログラムの出力を彼の PC に提供し、バグを見つけるように私に命じました。

ロジックと期待される出力を調べましたが、それらの間に相関関係はありません。3台中2台のコンピューターで実行されている場合、それは確かに論理エラーではありません.

学校のコンピューターに基づいて課題を採点するよう教授に頼んだとき、彼は同意せず、1 台のコンピューターだけで動作しない場合、私のプログラムにはバグがあると現実世界について怒鳴りつけました。

そこで、現実世界の専門家がこの状況で何をするかを尋ねたいと思います。テスト目的で提供されたツールでプログラムにバグがない場合、どのようにプログラムをデバッグできますか? つまり、自分では再現できないバグを顧客が報告した場合、何ができるでしょうか? または、どのようにバグを再現しますか?

参考までに、私のコンピューターは Windows、学校のコンピューターは Linux、教授のコンピューターは Mac です。

4

3 に答える 3

2

1) 防御的プログラミング。物事がうまくいくと思い込まないでください。ファイルを開く必要がありますか? 存在することを確認してください。データ構造をロードしますか? データ構造が正しいことを確認してください。

1a) 意味のあるユーザー エラー: ファイルが存在しない場合は、ユーザーに「パス C:\items にファイル 'file.txt' が見つかりませんでした」と表示します。ただ前に進み続けないでください。

2) コメントに投稿されているように、すべてをログに記録します。学校のプロジェクト (パフォーマンスが重要ではない場合) の場合は、すべてをファイルに記録し、プログラムが実行しているパスと (可能な場合) その理由 (データ構造の値) を確認します。

2a) 密接な関係を考えると、教授のコンピューターで実行するテスト ケースを定義できます。彼のログをあなたのログと照合してください。

于 2013-06-02T00:22:04.250 に答える