Technology illustrations by Storyset
こんにちは、開発チームでエンジニアをしている和田です。
最近は涼しくなってきましたね。読書の秋ということで積読状態の技術書を読み漁る毎日です🤓
今回は、前回のテストに関する解説記事の続編ということで、ソフトウェア開発に携わって間もない人向けにテスト観点とテストケースの違いについて解説します。
まだ前回の記事を読まれていない方はぜひ下記の URL からどうぞ🙇♂️
記事執筆の背景
テスト観点とテストケースの違いについて解説を行う前に、そもそもこの記事を書くに至った背景について簡単に紹介させていただきます。
背景としては普段の開発のフローに対する理解を深めるためです。
N2i での基本的な開発フローについて
N2i では基本的に下記のフローで開発を行います。
- 要件定義
- テスト設計
- 実装
- テスト
- リリース
基本的には 1 ~ 4 番までの工程を EM や QA の力を借りつつ、エンジニアが担当するというフローです。4 のテストに関しては結合テストを担当します。
業務とは関係ないよい個人的な開発だったり、趣味レベルの開発をしていると、細かくテストを行うことはあまりないと思います。
N2i では品質保証の視点から、結合テストまでの領域はエンジニアが責任を持って開発を行うため、テストに関する理解が求められます。
【補足】結合テストとは
結合テストとは個々に開発されたモジュールやコンポーネントを組み合わせ、その結合部分が正しく動作するかを検証するテストのことです。
ショッピングサイトなどを例にすると...
- ショッピングカートに商品を追加する
- ショッピングカートを開く
- ショッピングカートに追加した商品一覧を表示する
このようなシナリオにおいて、ショッピングカート追加機能と商品一覧表示機能それぞれが正しく連携できているかを確認することが結合テストに当たります。
テスト設計とは?
先程の開発フローにおいて、テスト設計とはテスト観点を洗い出し、テストケースを作成することです。
「テスト観点?テストケース?なんだそれ??🙄」
という疑問を払拭すべく、それぞれの違いについても確認しながら見ていきましょう。
テスト観点とテストケース
まず、テスト観点とテストケースの違いについて述べる前にそれぞれの定義について確認していきます。
テスト観点とは?
一般的にテスト観点とは...
テストを行う際に確認すべき項目や焦点を示す指標のことを指します。
これは、要件や機能、非機能から派生するものであり、テストの方針や目的を明確にするためのもの。
として説明されます。なんだか難しいですね😅
先程のショッピングカートの例でいうと...
- ショッピングカート追加機能
- 商品一覧表示機能
- 支払い機能
などのように「〇〇すると〇〇という結果になる」ということを考える前に「どのような場合でテストケースを作成すべきか?」 という土台となるのがテスト観点に当たります。
テストケースとは?
ではテストケースとは何でしょうか? テストケースとは...
特定のテスト観点を検証するための具体的な手順や条件をまとめたもの。
テストを実施するときの手順、期待結果、実際の結果などを含む。
このように説明されます。
すなわちテスト観点をさらに具体的に掘り下げて「〇〇すると〇〇という結果になる」まで書き出したのがテストケースということです。
同様にショッピングカートを例にすると...
- ショッピングカート表示ボタンを押すと、追加した商品一覧が表示される
- 商品追加ボタンを押下すると、ショッピングカートに商品が追加される
- お支払いボタンを押下すると、支払い確認ページに遷移する
このあたりがテストケースに当たります。
テスト観点とテストケースの違いとは?
結論、テスト観点は「何を確認するか?」を示し、テストケースは「どのように確認するか?」を示します。 テスト観点がテストの方向性を示すのに対して、テストケースは具体的な検証の計画や実行内容を示すという点で異なるというわけです。
【まとめ】テスト観点は方向性、テストケースは具体的な実行内容
いかがでしたでしょうか?
テスト観点とテストケースそれぞれについて解説をさせていただき、その違いについて見てきました。
本文中で「どのような場合でテストケースを作成すべきか?」 という土台となるのがテスト観点であると述べたように、テスト観点なしではテストケースは考えられないわけです。