こんにちは。CREエンジニアの田中です。日々不具合の調査や対応をしています。
今回は、日頃行っている不具合調査の手順をまとめてみたいと思います!
ひとえに不具合といっても、色々なパターンがあるので、今回の記事では、「Webアプリケーションの不具合」の場合をイメージしてまとめてみます。
調査手順
- CS(カスタマーサポート)から、不具合のお問い合わせの連絡をいただく
- 問い合わせ内容の確認
- 調査に必要な情報をヒアリング
- CSからお客様に質問してもらう
- 不具合検知のツールでエラーログが吐かれているか確認
- bugsnagを利用しています(Datadogに移行予定)
- 再現確認
- 再現手順がわかっている場合
- 自分の環境でも再現できるかの確認
- ブラウザのdevtool>networkタブで問題となる処理を確認する
- 1-cで把握できている場合もある
- 再現手順がわかっていない場合
- きつい。。この場合、自分であれこれ確認しにいきます
- それでも、再現手順が分からない=CSの方やテスターの方が確認して分からないということ
- エンジニア視点で、不具合の絞り込みをする ⇒ 3へ進む
- 再現手順がわかっている場合
- ソースコードを確認
- エディタの検索ツールで、エンドポイント or 関数名を検索
- 上流のControllerから問題となる処理箇所まで追っていく
- デバッグをする
- 問題を切り分ける
- エディタの検索ツールで、エンドポイント or 関数名を検索
- 原因を特定
- 3の作業を進めていくと、不具合の詳細や原因が突き止められる
- 原因が突き止められなかったにせよ、少なくとも、最初のお問合せ時点での不具合内容(実際の不具合状況とは異なる場合が割とある)よりは、詳細になっている
- 調査内容を情報を起票されたチケットやスレッドに記載していく
- 現在CREチームでは、調査の効率化目的で、対応した不具合に対して、メモを残すようにしている(Notion)
- 対応後、メモ→ドキュメントにしていくことで、対応の可視化をし、フローの洗練を行なっている
- 3の作業を進めていくと、不具合の詳細や原因が突き止められる
- CSや関係者に進捗や原因を報告
- エンジニアに依頼 or 自分で対応
まとめ
不具合の原因調査はい不確実性を少しずつ、クリアにしていっております。
もっといいやり方は全然あると思いますので、今回手順を可視化し、洗練していこうと思います!
参考になれば幸いです。
株式会社フォトラクションでは一緒に働く仲間を募集しています