この記事は ソフトウェアテストの小ネタ Advent Calendar 2023 21日目 の記事です。
こんにちは。QAエンジニアをしている @afracs です。
今回はテストシナリオを考えるときに、『個人的に意識していること』を整理する内容となっています。
QAやテスト界隈が長い方々からすれば当たり前の内容かと思いますが、将来の自分のために言語化しておこうと思い、本記事を書くことにしました。
縦軸と横軸
縦軸と横軸とは何を指すのか?
私の中では、以下の内容を指す言葉として使用しています。
縦軸
ある時点でのシステム状態の断面。
(具体例)
- 注文前 → (注文操作を行う) → 注文後
- バッチ処理前 → (バッチを流す) → バッチ処理後
横軸
時間経過や状態遷移によって変化していく流れ。
(具体例)
- 株式の注文受付日 → 約定日 → 受渡日
- 口座開設申込 → 内容の審査 → 審査完了 → 口座開設完了
このような内容をテストシナリオとして考えるときに、縦軸と横軸として意識しています。
これを意識すると何がお得なの?
一番のメリットはこの2つです。
- シナリオの漏れを無くしやすい
- ユーザーストーリー上どこまでできているのかの把握がしやすい
QAEやテスター視点で見ると、テストシナリオの作り方が変わってきます。
テストシナリオの作り方が変わるって??
テストシナリオを作るときに、前提条件によって書きっぷりが変わってきます。
具体的には以下のことを意識して作っていく感じですね。
- この機能は今後運用していくサービスだから、リグレッションテストで再利用できるように作ろう
- この機能は今回限りの部分だから、この仕様に合わせて細かく作ろう
特に新規機能のテストシナリオは細かく作りがちです(だって気になるし)
ただ、それをそのままリグレッションテストとして今後もずっと実施し続けるかといえばNOです。
当然、不要な部分を削ぎ落として使い回していきたくなります。
テストシナリオの再利用
リグレッション用のテストシナリオとしては、機能担保や画面崩れがないことを確認したい意図のものを使っていきたいと考えるのが王道かと思います。
となると、上述した横軸ベースのテストシナリオがあると便利です。
逆に縦軸のテストシナリオが必要になる場面としては、画面操作や機能改修が大幅に行われた場合になります。
ただ、この場合は、新仕様に合わせてテストシナリオも手を入れることになると思うので、再利用というよりもカスタマイズといったイメージに近いかもしれません。
どこまで意識してテストシナリオを組めばいいのか?
実際に本当にど新規でテストシナリオを作る場合、どこまでの未来を想定して作るのかは結構悩みどころだと思います。
細かくみたいポイントもあるでしょうし、時間との戦いもあるし、、、と色々考えなければいけません。。。
私個人のおすすめとしては 『両方作る』 です!
作り方としてはこれ↓
1. 横軸の全体の流れを見るテストシナリオを最初に作る
2. 細かく見たいポイントは縦軸方式で作っていく
3. 横軸シナリオの方に、画面デザインとかリグレッションでも見たくなる部分を追加する
4. 入れ込めないものを縦軸シナリオの方に追加で作っていく
こうやって作ると、全体を俯瞰してみるテストシナリオと、詳細部分を細かく見ていくテストシナリオが出来上がります。
最初のテストタイミングだと全部実施することになりますが、その後の再利用するシーンでは必要なシナリオだけ抽出してテストすれば良くなるので、テストシナリオ多すぎ問題とかの解決策の1つになるかも?
最後に
取り止めもなくつらつらと書いてしまいましたが、他の方々がちゃんと有益な記事を書いてくださっているので、私のは初心者が書いたんだな的な感じで暖かい目で読んでもらえると嬉しいです。
また、これ以外にもこんな考え方取り入れてみるといいかも!など、コメントいただけると助かります。
ここまで読んでくださった方々、ありがとうございました!