テストケースとテストシナリオの管理方法の悩み
01.はじめに
Advent Calendar 2024の「テスト自動化あるある言いたい by T-DASH」、21日目の記事です。
https://qiita.com/advent-calendar/2024/t-dash03
2024年では、仕事以外でもアウトプットをすると思いつつ年末まで来てしまいました。
アドベントカレンダーの季節となりましたので、これを機会に、投稿いたします。
初投稿なので、よろしくお願いします。
02.背景
タイトルの「テストケースとテストシナリオの管理方法」ですが、第三者検証としてのシステムテストにフォーカスした話となります。
システムテストのテスト自動化を導入は、今まで手動で実施していたテストケースを、様々なツールを使用して自動化しています。
この時、テストケースとテストシナリオが1対1で紐づくわけですが、テストケースは往々にして、テスト実施中や仕様変更によって変更されます。
皆様は、どのように管理されていますでしょうか?
手動テストの経験はありますが、自動化については知見がない人間の試行錯誤の話として、読んでいいただければと思います。
03.試行錯誤の内容
私のPJで試行錯誤した結果の取り組みを記載します。
今回の状況としては、
・ テスト仕様書は、エクセルなどで管理
・ 自動化テストのシナリオは、1ファイル=1テストケースのようなイメージ
・ 自動化困難なテストケースもあり、手動テストも入り混じっている
・ 自動化シナリオの作成が間に合っていないテストケースもある
で考えていただければと思います。
この時、テストシナリオとテストケースのトレーサビリティをとるにはどうすればよいのでしょうか?
1回目の取り組み
単純に、テストケースの項番をテストシナリオを格納しているフォルダ名やファイル名にしました。
しかしながら、この項番は、新規にテストケースを追加した際に、実施のしやすさなどから順序を変更することがありました。
過去のテスト仕様書と現在のテスト仕様書を参照して、テストシナリオを探して実行するという手間が発生してしまいました。今後のことを考えると毎回この手間がかかるのはいただけません。
2回目の取り組み
テスト項番が変わる可能性があるため、テスト項番とは別にユニークなテストIDを付与し、テストIDとテストシナリオを紐づけるようにいたしました。テスト項番とユニークなテストIDの二重管理となり、二度手間な気がしないでもないですが、不具合チケットの関連付けやテストメンバーへの実施依頼をした際に、視認性がよく使いやすいため、維持することとなりました。
これで、テストケースと自動化シナリオのトレーサビリティはとれるようになりました。
テストケースが追加され、テスト項番などの並び順が変わっても、自動化シナリオにアクセスできます。
しかしながら、仕様変更により、テストケースの手順や期待値の変更が発生しました。
この変更にテストシナリオが、追従しているのかを中身を確認しなければ、ならなくなりました。
3回目の取り組み
テストケースを変更した際に、テストシナリオを変更すれば、よいのですが、工数の都合上などで、いったん手動でテストして、後でシナリオを修正するなどで、後回しになることがありました。
後から見たときに、変更したテストケースに対して、どのテストシナリオが対応済みで、どのシナリオが未対応なのかを明確にする必要があります。
テストケースを修正した際には、テスト仕様書のバージョンをインクリメントしていますので、テストシナリオにはテストID以外にも、テスト仕様書のバージョンも記載するようにしました。
04.まとめ
これらにより、テストケースとテストシナリオの管理ができるようになりました。
ただ、テストケースの変更した際の手間が増えてきましたので、管理が大変になってきました。
テスト項番くらいだったテストケースに、
・ユニークなテストID
・バージョン
を管理していかなければなりません。
過去のソフトでの再評価や、再利用性を考慮すると利点もありますが、今後の運用の中で、よりよい方法を検討していきます。