Last Update 2024.11.30
「テスト設計」ってなんだろう?
「テスト設計」、と一言にいっても、組織によってその中身は様々です。
項目を羅列したものや、マトリクスをテスト設計というところもあれば、
テストケースでしょ?というところもあります。
ですので、普段一緒に仕事をしていないエンジニアと話すときには、
内容を確認しながら話をすることになります。
ここでは、項目書を書くことではなく、どういうテストをするか、を、
まとめる話をします。
テストフレームを作っておく
ここで、前日おはなしした、テストフレームの出番です。
テストフレームは、いわばテストの引き出しのようなもので、テストする要件に合わせて、
どういったテストが必要かを、チェック形式で選ぶことができます。
たとえば、今回はリグレッションだけでよいけど、別のプロジェクトは機能テストが必要、
だとか、さらに組み合わせテストが必要、というように。
そうすることで、時間の見積もりがしやすく、テストがいつまでに終わりそうか
まとめやすくなります。全体的な時間と効果の兼ね合いも見通しがつくようになります。
少なくとも、いつ終わるのかわからない、という状態にはなりにくいので、
テストコントロールがしやすくなるでしょう。
反対に、期日に間に合わないことがすぐに分かった場合、調整もしやすいですね。
自分のテストフレームワークを作ろう:
https://qiita.com/EgaSaQA/items/1eb643ebda0cceafa4bb
実行するテストを選ぶ
では、つくったフレームのなかから、プロジェクトで使うテスト技法を選びましょう。
上の黄色いフレームは、テスト設計でつかう技法が記載されています。
細かい説明は別記事に譲りますが、テスト設計はそれなりに神経を使う、というのは、
マスの数を比べてもご想像いただけるかと思います。
毎回こんなにやっている時間がないよ、という場合は、隙間時間に
モデリングや因子出し、エンティティの整理や、テストコンディションの洗い出しなどを
行っておくと、少しずつ出来合いの設計がたまっていきます。
あとは呼び出して使いまわします。
こうして作り置きしておいたテストを、テストスイートと呼びます。
(テストスイートの定義は、さまざま見かけるので、こちらも調べてみてください。)
テストスイートを用意しておけば、時短につながりますね!
テスト用語について
記述の中にわからない用語がある場合、インターネットでの検索のほか、JSTQBの用語集を
確認するとよいでしょう。インターネットでの解釈には揺らぎがあるので、
まずはそちらの参照をお勧めいたします。
https://jstqb.jp/dl/JSTQB-glossary-introduction.V3.2.J01.pdf
(リンクは変わる可能性があります)
用語解説
因子
テストすべき条件、または要素。
因子出し
テスト対象の因子を洗い出す作業をこう呼んでいます。
例: 年齢と住んでいる地域によって、表示を分ける場合、
年齢と住所が因子であると、ピックアップする作業をさします
テストコンディション
テストの条件を指す
例: メールアドレスのドメインがフリーの場合は・・・という仕様があった場合、
ドメインがテストコンディションになります