# はじめに
Webサービスを運営していると、不具合からは逃れられません。
大小いろいろな不具合に、日々皆さん対応していることでしょう。弊社でも、毎日いろいろな報告が上がってきます。
私はエンジニアではなくデザイナーですが、不具合の報告を受け、調査を試みることがありました。しかし、コードを読んでもわかりませんし、そもそもどこから手をつければいいのかわかりませんでした。
そこで、CTOに教えていただいた不具合調査の方法をまとめました。
エンジニアではない人でもできることも多いので、初心者の人やエンジニア以外の人にも参考になると思います!
# まずすべきことは状況を明らかにすること
不具合が発生したとき、まずすべきことは、不具合が発生した状況を明らかにすることです。
# やること1:報告者の操作方法を詳しく聞く
まずは起きた状況を報告者に聞きます。再現状況について聞くのが難しければ、録画をお願いするといいでしょう。
報告者への質問の例:
- 「操作の順番やクリックしたボタンは何ですか?」
- 「使用している端末やOSは何ですか?」
- 「アプリやブラウザのバージョンは何ですか?」
# やること2:期待する動きを聞く
次に、本来であればどのような動きが望まれていたのか、報告者は何をしたかったのかを聞きます。
報告者への質問の例:
- 「正常であれば、どう動作することを期待していましたか?」
- 「何を達成しようとしていましたか?」
# やること3:何に困っているのか詳細に聞く
その不具合が起きたことで、報告者がどのような問題に直面しているのかを聞きます。
報告者への質問の例:
# 問題の絞り込み
状況の確認をしたら、次に、再現するものとしないものの境界をさぐっていきます。
確認ポイント
- 何が違うと発生するのか?
- 何が変わると発生しないのか?
下記に条件の例を挙げます。下記のポイントを一つひとつ確認しながら、発生条件を絞り込んでいきましょう。
# 時間による条件
- いつから発生しているか
- 特定の日付や時間帯でのみ発生するのか、以前から継続して発生しているのか。
 
- 特定のタイミングでのみ発生するか
- システムのピーク時間帯、メンテナンス後、データ更新直後など特定のタイミングで発生するか。
 
# 権限による条件
- ユーザーの権限レベル
- 特定のアクセス権限が影響しているか
- ファイルの読み取り/書き込み権限やAPIへのアクセス権限など。
 
# 使用する環境
- OSやブラウザの違い
- Windows、macOS、LinuxなどのOS、Chrome、Firefoxなどのブラウザの違いによって発生するかどうか。
 
- 端末やデバイスの種類
- ネットワーク環境
- Wi-Fi環境が悪い場合起きるか(検証ツールで3Gにしてみるなど)。
 
# データや入力内容
- 入力内容やデータの違い
- 特定のデータ(例:特殊文字、長いテキスト、空欄、漢字)で発生するか。
- 文字の入力ミス。
- 空白が入っている。
 
- データ量や負荷
- データが多いとき、少ないとき、または特定の形式のファイルでエラーになるか。
 
# 操作手順
- 手順や順番による違い
- 特定の操作手順でのみ発生するのか。ショートカットや直接入力で異なるか。
 
- 複数の操作を組み合わせた場合
- 連続して操作した場合や、特定の画面を経由した場合エラーになるか。
 
# 外部要因
- 他のシステムやアプリとの連携
- 外部APIやサーバー、連携する他のアプリケーションが関与している場合。
 
- 地域や時間帯
# 実際にコードを見る
ここまで調べられたら、ついに実際にコードを見る番です。
エンジニア以外の人は、ここでバトンタッチし、エンジニアに調査を依頼しましょう。
# おわりに
上記の方法を使うことで、エンジニア以外の人でも不具合調査をある程度行うことができますし、エンジニアに依頼する際、より具体的な情報を提供できるようになるでしょう。
また、上記だけで解決できる不具合も意外とあります。(経験談)
例えば、登録していたメールアドレス誤植があったり、アカウント有効化の期限が切れていただけ、設定ミスだった場合などがありました。
ユーザーに安心感を与えるより良いサービスを提供できるように、不具合調査の方法を身につけていきましょう!!!!