機能テストについて
機能テストとは?
機能テストとは、webサイトやアプリケーションを使用してみて、正しく動作するかを確認するテストです。
その作業を通してプログラムに含まれる誤りや欠陥(バグ)を発見します。
バグとは、「虫」という意味の英単語で、コンピュータの分野ではプログラムに含まれる誤りのことを指します。
クラウドテスティングサービスで行われるテストは、大半はこの機能テストに分類されます。
作業の流れ
クラウドテスティングでの機能テストはおおまかに2種類あります。
あらかじめテスト項目をエクセルで指定され、順番に作業を進める「シナリオテスト」と、 テスターが自由にソフトを触ってバグを探す「探索的テスト」です。
それぞれ単独で行われる場合もあれば、両方を課す場合もあり、テスト案件によってまちまちです。
バグの種類
だいたい以下の4つが、報告の対象になるバグです。
- クラッシュ・・・ソフトウェアが落ちる
- フリーズ・・・ソフトウェアが落ちないが応答がない
- 機能・・・検索やフィルタ、支払いなどが仕様どおりの動作をするか。エラーが表示される場合も含む
- 表示・・・レイアウトの崩れや画像の非表示など見た目の不具合
- 文章・・・翻訳ミスや誤記
以下は対象にならないことが多いバグです。
- セキュリティ・・・セキュリティ上の欠陥
- アクセシビリティ・・・目が見えない人用の読み上げ機能など、障害者向け機能の各種不備
- ユーザビリティ・・・使い勝手に関わる不備
Out Of ScopeやKnown Issueについて
テストでは、すべての不具合がバグとして扱われるわけではありません。 例えば、以下の理由で対象外となることがあります。
• Out Of Scope:そのテスト依頼では、報告対象に含まれない不具合。例えば、ささいな誤字脱字や翻訳漏れを対象としないテストがあります。
• Known Issue:開発者が既に認識している不具合で、修正予定や回避策がある場合。例えば、仕様変更や優先度の低さなどで修正が遅れている場合など。 (不具合がいつまでも修正されずに数百個たまっているお客さんとかもいます)
バグを見つけたら
報告書を書きます。 だいたいどのプラットフォームも同じような項目で報告します。
- タイトル
- バグの重大さ
- 再現頻度
- テストした環境
- 再現手順
- 本来おこるはずの動作
- 実際の症状
- バグのスクリーンショット
- 再現環境のスクリーンショット(OSのバージョン情報など)
- バグがおきたときのビデオ
- ログファイル
具体例を知りたい
uTestが運営している、AcademyBugsというwebサイトがとても参考になります。
バグテストの実際を体験したい方は、academybugs.comというサイトを利用してみてください。 このサイトでは、架空のECサイトに含まれるバグを見つる体験ができ、バグテストの流れやコツを学ぶことができます。
仕様とバグの線引き
バグテストでは、仕様(Work As Designed)とバグ(不具合)の線引きが重要です。 仕様とは、ソフトウェアがどのように動作すべきかを定めたものです。仕様に沿っていない動作がバグとして扱われます。 クラウドテスティングでは、とりあえずバグとして報告したあと、「それは仕様です」と回答され、バグとして承認されない場合があります。 単に「お客さんにとってわかりづらい、不親切」というバグ報告では「それは仕様です」と回答されることが多いです。 なので、承認してもらうには「仕様だと言い逃れしようがない不具合」バグを報告するのがコツです。
例:
- クラッシュやフリーズ
- 放置するとそのサービスの目的が達成できない
- お客さんが~~できない
- お客さんに実際の損害が発生する
- 誤字や項目の抜け
バグが見つからないときは?
これがエンジニアであれば、テスト範囲やテスト方法を見直したり、専門用語でいう”異常系”や”境界値”などのテストを行ったり、”自動化ツール”や”デバッグツール”を利用したりなど、 専門的なアプローチをとるでしょう。
しかし、私達はクラウドテスターです。エンジニアとはまた少し違ったアプローチをとりましょう。 例えば以下の事例が考えられます。
・計算が複雑なところが正しく計算されているか
例えば裁縫グッズの通販サイトにおいて、 「1mあたり500円の布生地の商品が、5m以上のまとめ買いで10%オフ、送料無料、さらにクリスマス限定クーポンとお友達紹介クーポンを適用。ただしゴールド会員クーポンは適用対象外」 みたいな複雑な購入条件で計算間違いや適用ルールの矛盾がないかを確認します。
・特定の商品や、地図上の店舗のリストの中で、表示がおかしいものがないか
アパレル系ブランドで、大型ショッピングモール内の店舗や個別の建物で住所表示がおかしいものがある、など
(専門的な表現でいうと、「『”正常系”の中で”境界値”ではない特殊なケース』がねらい目です)
まとめ
機能テストとは、プログラムが仕様どおりに動作するか確認し、それを通じ誤りや欠陥を発見するために行うテストのことです。 機能テストでは、仕様とバグの線引きや優先順位付けなどが重要です。 また、バグ体験サイトacademybugs.comで 実際のバグを見つけてレポートを作成してみることで、バグテストの流れやコツを学ぶことができます。