メインコンテンツにスキップ

機能バグ

機能バグとは何か、重大度をどのように評価するか、またユーザビリティ改善提案との違いは何か。

対応者:Nikola Jonic

機能バグは、ソフトウェアの機能に関するバグです。例えば、ボタンをクリックしてもフォームが送信されない、検索がユーザーの入力に反応しない、アプリがクラッシュするといったものです。操作を行った際に、Webサイトやアプリが期待どおりに動作しない場合、それは機能バグである可能性があります。私たちはお客様の製品に関する情報が限られており、その実装についても把握していないため、確認した動作が意図された仕様なのか、それとも実際のバグなのかを判断することは容易ではありません。経験に基づいて推測を行い、さまざまなシナリオで製品の動作を検証することで、その判断材料を得ることができます。

アプリの動作が機能バグかどうかを判断する方法

  • その機能が意図的にそのように設計されているのか、それとも実際に壊れているのかを判断してください。機能単体だけでなく、他の機能と組み合わせてもテストし、動作の違いがないか確認してください。

  • お客様がどのような意図でその機能を実装したのかを考え、その製品が実装どおりに動作しているだけである可能性も考慮してください。

  • 期待どおりに動作していないことを示す証拠を見つけ、その主張を裏付けてください。

  • : Webショップの機能が、あなたの知っている他のWebショップとは異なる動作をしていても、それだけでは機能が壊れていることにはなりません。お客様は、自分たちの製品を自由に実装することができます。

  • : フォームの入力欄で入力内容が検証されておらず、それがバグであると主張する場合、その入力欄が本来検証されるべきであることを示す根拠はありますか。同じ入力欄がある場合には検証され、別の場合には検証されないことを示すなど、証拠を提示してください。証拠がなければ、その主張は裏付けのないものとなります。

  • 視覚上の問題やコンテンツの問題であっても、それが機能の利用を妨げる場合は、機能バグとして報告する必要があります。

  • ある機能がさまざまな状況で常に同じように動作し、明らかな問題が見られない場合は、おそらく意図された仕様(バグではない)です。その場合は、変更の提案(ユーザビリティ改善提案)として報告してください。

重大度の評価

機能バグの重大度を評価する際には、いくつかの要素を考慮する必要があります。具体的には、問題が機能に与える影響、問題の影響範囲、回避策があるかどうか、または業務を継続できないレベルの問題かどうか、売上に大きな損失をもたらす可能性があるか、さらに同じ重大度の他のバグと比較して適切かどうかです。

機能への影響に注目することが、最も分かりやすい評価方法です。その機能が利用できないことがどれほど重大かを考えてください。補助的な機能が利用できなくても、通常はユーザーが目的を達成することを妨げません。一方で、主要な機能が利用できない場合は目的を達成できなくなる可能性があります。その機能が製品全体の中でどれほど重要かを考えてください。

機能上の問題によって、どれだけ多くのユーザー、商品、または項目が影響を受けるかも、問題の影響範囲を判断する重要な要素です。例えば、Webショップの商品詳細ページにある「Add to Cart」ボタンが、すべての商品で反応しないのか、それとも特定の商品だけで反応しないのかを確認してください。また、影響を受けるのが一部のユーザーだけなのか、それともすべてのユーザーなのかも考慮してください。

別の経路や方法で目的を達成できるか、それともその機能がまったく利用できないままかも考慮してください。バグを簡単かつ直感的に回避できる場合、その回避方法(ワークアラウンド)によって目的を達成できます。ワークアラウンドがあるバグは、同等の問題であってもワークアラウンドがないバグより低い重大度になります。一方、主要な機能が利用できず、ワークアラウンドも存在しない場合は、業務を継続できないレベルの問題(ショーストッパー)となります。

売上損失の可能性を見積もることは補足的な評価方法です。実際には、ユーザーがそのバグにどのように反応するかは推測するしかない場合が多いためです。それでも、想定される売上損失の大きさは考慮してください。例えば、商品の価格差が数セントなのか、数百ドルなのかでは、影響は大きく異なります。

最後に、同じテストで同じチームリーダーがすでに承認したバグと比較することで、自分が設定した重大度が適切かどうかを確認することもできます。

機能バグの重大度には、3つのレベルがあります。

LOW

  • 製品の利用への影響が最小限である。

  • 製品が意図しない動作を示しているが、通常の利用には影響しない。

  • 影響を受けるユーザー、商品、または項目が少ない。

  • 機能またはその一部が壊れている、または利用できないが、簡単な回避策によって問題を解決できる。

HIGH

  • 製品の利用に重大な影響があるが、主要な機能は維持されている。

  • 多くのユーザー、商品、または項目が影響を受ける。

  • 重要ではあるものの主要ではない機能が壊れている、または利用できず、回避策も存在しない。

  • 重要な機能が壊れている、または利用できないが、回避策が存在する(そのため、ショーストッパーではない)。

CRITICAL

  • このバグにより、アプリまたはWebサイトの中核となる機能を利用できなくなる。

  • ショーストッパーにより、ユーザーは主要な操作(例: チェックアウトプロセス)を続行できなくなる。

  • このバグにより、アプリまたはWebサイトを運営する企業に、売上の大きな損失が発生する可能性がある。

一般的な評価

重大度があらかじめ決められているケースの一覧があります。その一覧に含まれるケースには、上記の評価基準は適用されません。

この一覧は随時更新されるため、定期的に確認してください。

エッジケースのバグ

エッジケースのバグは、通常とは異なる方法で機能を使用した場合に発生するバグです。一般的なデータや通常のユーザー操作では、その機能は正常に動作します。以下はその例です。

  • ボタンをクリックした直後にアプリを最小化するなどの、瞬間的な操作

  • メニューを繰り返し開閉するなど、同じ操作を何度も繰り返すこと

  • 一般的ではない一連の操作を行った後でのみ発生するバグ

それぞれのケースは個別に評価されます。お客様にとって重要と判断されたエッジケースのバグは、Lowのバグとして転送されます。一方、ほとんどのエッジケースのバグに該当する重要ではないケースは却下されます。

強制的に発生させたバグ

通常ではない操作や特殊な条件によって強制的に発生させたバグは、一般的に対象外です。そのようなバグは、お客様にとって重要ではないためです。通常ではない操作や特殊な条件の例は次のとおりです。

  • 複数の要素を同時にタップすること

  • ボタンを無作為に押すこと

  • ボタンを短時間で何度もクリックすること

  • ウィンドウのサイズを通常ではない大きさまで変更すること、またはコンテンツを拡大・縮小すること

  • RAMまたは内部ストレージがいっぱいの状態で発生する予期しない動作

  • 非公式版、ベータ版、または変更されたOSバージョンを使用すること

こちらの回答で解決しましたか?