![見出し画像](https://assets.st-note.com/production/uploads/images/131402740/rectangle_large_type_2_a7a69c663a345c3fbbabab0c71022129.png?width=1200)
ソフトウェアテストの本質は情報収集!
はじめに
同僚のエンジニアから「テストは合格か不合格かの二択じゃないか」という話をうけて、ソフトウェアテストは合格か不合格かの二択ではないことを知ってほしいと思い、自分なりのソフトウェアテストの考えを整理しました。
開発エンジニアに「テストって合格か不合格かの二択じゃないですか。テストするなら合格か不合格かの基準が必要ですよね。ユーザビリティテストとかにも基準を作るのは大変ですよね?」と言われ、「テストって合格か不合格の二択じゃないよ、何か気づきを得る手段だから、二択じゃなくても良いよ」
— tsutomun (@tsutomun1985121) February 1, 2024
ソフトウェアテストとは・・・
ソフトウェアテストとは「テスト対象の情報を収集する手段」だと考えています。これは、ソフトウェアの機能、仕様、および要件に関する理解を深めることを指します。ドキュメントレビューや自動テスト、手動テストもテスト対象の情報を収集することが起点であると考えているからです。不具合を見つける、ステークホルダーに情報提供する、品質を保証することはテスト対象の情報収集をすることと同義であるという考えです。
情報収集は、「合格/不合格」、「OK/NG」という二者択一ではなく、「使いやすい」、「複雑である」、「わかりにくい」というような定性的なフィードバックも情報の一つだと考えています。
テストというと、何らかの基準を用いて、「合格/不合格」、「OK/NG」という尺度で評価し、不具合を見つけるために実施するプロセスであるイメージを持つ人がいると思います。
しかし、より広義にテストの意味や目的を捉えてみてはどうでしょうか。
ソフトウェアテストをテスト対象の情報を収集をする手段と捉えると、ソフトウェアに対する定性的なフィードバックを得る活動もソフトウェアテストの一種であるということはイメージしやすいかと思います。
なお、JSTQB Foundation Levelシラバスでは、テストに共通する目的として以下が挙げられています。これらの目的には、「評価」、「検証」、「確認」といった用語が使われていますが、「収集」という目的も含まれると考えています。
1.1.1 テストに共通する目的
すべてのプロジェクトで、テストの目的は以下を含む。
• 要件、ユーザーストーリー、設計、およびコードなどの作業成果物を評価することによって欠陥を防ぐ。
• 明確にしたすべての要件を満たしていることを検証する。
• テスト対象が完成したことを確認し、ユーザーやその他ステークホルダーの期待通りの動作内容であることの妥当性確認をする。
• テスト対象の品質に対する信頼を積み重ねて、所定のレベルにあることを確証する。
• 欠陥や故障を発見し、ソフトウェアの品質が不適切になるリスクレベルを軽減する。
• ステークホルダーが意志決定できる、特にテスト対象の品質レベルについての十分な情報を提供する。
• 契約上、法律上、または規制上の要件や標準を遵守する
まとめ
ソフトウェアテストを情報収集と捉えることで、定性的なフィードバックを含む情報収集から、ソフトウェアの使いやすさや複雑さなど、重要な側面が考慮されるのではと考えました。ソフトウェアテストは単なる合格/不合格の判定に留まらず、あらゆる側面のソフトウェアの品質改善に向けた重要な手段であると説明しやすくなればと思います。
この記事が気に入ったらサポートをしてみませんか?