プログラミングエラー時に確認したいこと-汎用版

プログラミング 改善

プログラミングエラー時に確認したいこと - 汎用版

開発をしていたら、必ずエラーは発生しますし、常に付き合っていくものですよね。
今まで開発してきて、エラーが起きた時の対処法、考え方をまとめました。
基本的なことではありますが、初心者エンジニアの方の参考になれば。

エラーに関する情報を集めて分類する

まずはエラーに関する情報をとにかく集めましょう。
それを分類して、仮説を立てて、調査をするというのが基本的な流れです。
ただ、事象や報告によって、順番は前後することがあります。

ログを見る

意外と見ないで調査を始めてしまう人がいますが、非常にもったいないです。
ヒントがたくさんあるので、こちらは必ずチェックしましょう!

英語でなんか赤いメッセージが出てる...?ではなく、翻訳したりそのまま検索してみましょう。
ここからもヒントが得られます。さらにChatGPTにも調査に協力してもらいましょう。

導線を洗い出す

自分の操作や、他の人が実際にやった内容を細かく確認しましょう。
この辺りをまずは確認して、のちの再現テストに利用します。

  • いつ
  • だれが
  • どの環境で
  • どんな操作をしたときに
  • どんな挙動をして
  • 結果どうなったか

事実?推測?

ほかの人から聞き取るときには、事実と推測を切り分けながら聞くようにしましょう。
システムについて詳しくない人の場合、印象やその人に理解の範囲内で関連付けて話すことがあるためです。
もちろん重要なヒントも隠れているため、"事実"と断定できないことも気に留めておきます。

例1)朝からPCの調子が良くない気がして <= この時点では推測、なぜそう思ったかは聞く
例2)アプリケーションを立ち上げたとき、普段は見ない画面一瞬出ました <= 事実のはず
例3)並行作業していたら、Excelが立ち上がらなかった <= 関連性を要確認、クラウドシステムなら無関係のはず
例4)見慣れないエラーメッセージがでて、操作できなくなった <= 事実、画像コピーをもらえるようお願いする

仮説を立てる

ある程度、情報があつまったら、仮説を立てて調査をします。
網羅性はとても大事ですが、何らかの指針がないと人に協力も依頼しづらいため。
複数の仮説を立てて、手分けして調査をするのもよいですね。

再現テストをする

情報を集めて、仮説を立てたら、テストしましょう。
どういう条件で再現できるかわかれば、解決は間近です。

別の環境でも問題が出るか確認する

テスト環境などがあれば、そちらで動作検証をします。
このときもできれば、本番とテストのログを比較できるといいですね。

これにより、環境固有の問題か、バグかの切り分けが可能です。

別のユーザでも問題が出るか

条件を揃えて、別のユーザでも発生するか検証します。
権限管理されているシステムの場合、管理者権限、利用者権限のユーザそれぞれで実験します。

これにより、権限周りの問題か、バグかの切り分けが可能です。

小さく切り分け、実験し、再現性の確認

プログラム全体を動かすのではなく、エラーが出ていると思われる個所を抜き出して再現テストをします。
小さい範囲の中で想定通り動いているか確認していくと、問題個所を特定できます。

まとめ

色々書きましたが、情報収集・再現テストによって、エラーについての詳細をまずは把握しましょう。
今回は、すぐに特定困難なエラーのパターンにも対処できるように調査方針を記載しました。
もちろん調査の過程で、Google検索などで解決法がわかれば、適宜試してもよいですね。

どの目線でこの記事を書いているの?と思ったら

エンジニア歴13年でチームリーダーや各種障害対応の経験を基に書いています。
内容に興味を持った方はこちらもみてみてくださいね。

-プログラミング, 改善
-, , ,