テストについて書いていますが、以下について混乱しています。
ブラックボックステストとは正確には何ですか?
機能テストとユーザビリティテストは2つの異なるタイプのテストですか?それらはブラックボックステストのタイプですか?
2種類のテスト手順を実行する必要があります。機能テストとユーザビリティテストを行っても大丈夫ですか?
ブラックボックステストは、テスターがシステムの内部動作に精通していないことを意味しますが、ホワイトボックステストは、プログラムの動作を正確に知っている人が実行します。どちらにも長所と短所があります。
機能テストとは、ソフトウェア製品が「不適切にフォーマットされたファイルをロードすると、プログラムはエラーメッセージを出力する必要がある」や「Xをクリックするとプログラムは閉じる」などの機能要件を満たしているかどうかをテストすることです。このようなテストの結果は、「動作する」または「動作しない」というバイナリです。
ただし、機能要件では使いやすさを説明することは困難です。特定のユーザーインターフェイスが使いやすいかどうかを事前に判断するのは困難です。あなたはそれを構築し、人々にテストさせ、彼らの主観的なフィードバックを聞く必要があります。あるテスターにとって使いやすいものは別のテスターにとって使いにくいかもしれません。つまり、この場合、単純な「使用可能」または「使用不可」の区別は役に立ちません。テスト結果は、通常、はるかに自由な形式で解釈されます。
また、ユーザビリティテストは、機能テストのように体系的に欠陥を見つけるのに役立ちません。ユーザビリティテスターは、製品を実際の世界でどのように使用するかを使用し、意図的にそれを壊そうとする不合理なアクションを実行しようとしないことをお勧めします。ユーザビリティテスターが明らかなバグに遭遇した場合にバグレポートを提出するのをやめさせるようなものではありません(結局、それらはユーザビリティに影響を与えます)が、それは彼らの主な関心事ではありません。また、製品が機能要件に従って動作しない場合でもバグを報告することは期待されていませんが、実際には望ましい結果です。
ホワイトボックステストとは対照的に、ブラックボックステストは、実装がどのように機能するかがわからない、または知る必要がないテストを含む広範なテストカテゴリであり、結果をテストするだけです。
例:Webサイトの[購入]ボタンをクリックすると、選択した商品がショッピングカートに入っています。プログラマがこれをどのようにして実現したかは気にしません。それが実現し、正しいアイテムがショッピングカートに入れられただけです。
ホワイトボックステストでは、コードの内部とプローブの実装の詳細を調べます。これは、下位レベルの単体テストでより一般的です。
機能テストは、実行するテストのタイプに応じて、ブラックボックステストまたはホワイトボックステストのいずれかになります。 2つの分類は相互に排他的ではなく、テストの異なる側面を参照します。テストを分類する方法はたくさんありますが、特定の状況において、誰もが最適または最も適切な解釈を独自に持っています。
ユーザビリティテストはほぼ間違いなくブラックボックステストになると思います。製品のメリットが最も大きいと思われるテストを実行する必要がある、さまざまな種類のユーザビリティテストがあります。ユーザーインターフェイスの設計を批評したり、顧客のエンドツーエンドのシナリオが機能することを確認したり、ユーザー補助の法的要件が満たされていることをテストしたりする場合があります。私はこれらのユーザビリティテストのすべてを検討しますが、さまざまな種類のテストを何と呼ぶかについて異なる意見を持っている人々について前に述べたように、他の人は反対するかもしれません。
両方を実行して付加価値を付けようとしている場合は、両方のタイプのテストを実行しても問題ありません。バグを見つける際にチームをサポートすることで価値を付加していることもあれば、新鮮な目でデザインを批評することによって価値を付加していることもあります。時には、自動回帰テストを作成して、将来チームが一般的なミスを犯さないようにし、変更によって何も壊れていないことを簡単に確認できるようにします。同じことをもう一度テストしていると思われる場合、おそらくそれほどの付加価値はありませんが、すべてのテストを実行せずにバグレポートを埋めるだけで付加価値を付けることができます。