こんにちは。TSEX開発チームの仲です。
2021年もあっという間に終わり2022年になりました。今年もよろしくお願いします。
今回は年末にリリースされたAutifyの機能であるラベル機能を利用してテストシナリオをラベル分けを行って自動テストの管理を開始しました。
autify.com
ラベル機能とは?
2021年12月22日のリリースにてテストシナリオごとに任意のラベルを追加できるようになりました。 https://autify.zendesk.com/hc/ja/articles/4411895830681-2021%E5%B9%B412%E6%9C%8822%E6%97%A5%E3%81%AE%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9
現状の背景として私たちがAutifyの導入を開始して作成したテストシナリオの総数が500シナリオ前後(不要なテストシナリオなども含まれています)あり定期実行を行っているテストシナリオや新機能のテストシナリオを確認することが難しくなっておりました。
この問題を解決するためにテストシナリオにラベル付けを行い管理・運用できるようラベル作成・運用ルールを定義しました。
どのように管理したいのか?
膨大なテストシナリオの中から何をどのように管理したいのかを考えます。
- 何を: 定期実行や特定のタイミングで実行したいテストシナリオ
- どのように: いつ作成されたのか・何の機能なのか・外部開発により実装された機能なのか
上記の内容から3つの観点として管理しようと考えました。
- リグレッションテストとして定期実行しているテストシナリオ
- 現在のシーズン中に開発・不具合修正された機能のテストシナリオ
- その他(事前準備を実行するテストなどの円滑に行うためのテストシナリオなど)テストシナリオ
運用の観点で1,3については一意のフラグを付けておけば問題ありませんが、シーズンごとに項目が増えていく2の観点については一つのラベルで運用するのは難しいと感じたため以下の3つの内容のラベルの有無で管理するように考えました。
ラベル機能のルール決めとフラグ付け
上記の観点をもとに参考用のラベル名を準備し、ラベル名の定義とラベル付けのミーティングを行いました。
その中でシーズン内に作成したテストシナリオのラベルのルールとして以下の3種類をラベルとして追加するというルール決めを行いました
- どのシーズンで作成されたテストシナリオなのか?
- このテストシナリオのドメインは何か?
- ベンダー開発により実装された機能なのか?
ルール決めが完了後に、テストシナリオごとにラベル付けを開始しました。 上記のルールでテストシナリオを分類したところ8種類に分類ができたため、各分類ごとにラベル付けのメンバーを割り振り分担してラベル付けを行いました。
ラベル付け結果
ラベル付けの分担を行うことにより500件のテストシナリオの中から260件のテストシナリオにラベル付けを行いました。
また複数人でラベル付けを行うことにより、ルール決めのミーティング含め一時間以内に完了することができました。
抽出前
抽出後
注意点
注意点としてはテストシナリオに追加するラベルを大量に追加しないことを心がけております。
ラベルのルールを大量に作成すると運用時のルール確認に時間がかかってしまうことや。ラベルの存在価値が薄れてしまうことを懸念したため、テストシナリオ内に最大でも4つよりも多くラベルを設定しないように運用を行っています。
画像のようにラベル付けを行いました。
運用結果
現在ラベルの追加を行いテストシナリオの運用を開始しております。運用開始直後でもラベルを検索すれば大量のテストシナリオから指定したテストシナリオのみを抽出できるため、Autifyに新規で携わることになったユーザでも必要なテストシナリオを表示できるようになったと思います。
また他のメンバーが作成したテストシナリオのフラグからどのようなテストシナリオを追加したのかを詳細を確認せずに把握できるようになりました。その中でフラグ管理が正しく行われていないテストシナリオについても一目で確認できているため、修正依頼などを出すことも容易にできるようになっております。
将来的にはテストシナリオから過去のシーズンでどのような機能が追加され、自動テストが作成されたのかさかのぼり、過去に作成したテストシナリオを参考できるようになるのではないかと思っております。
終わりに
前回はテストシナリオの運用ルールを定義して実行して運用を開始したため、その運用ルールを参考にラベルを作成しました。
teamspirit.hatenablog.com
また各ドメインを横断して開発を行うプロジェクトも新たに追加され、テストシナリオを作成するメンバーも増えました。そのためリスト上で何のテストシナリオなのかが明確にできるように運用を行おうと考えました。
今後の課題としては現状は導入開始直後なので今後に課題や運用時に求めていたものが抽出できないという課題が出てくるとは思いますが、現状の運用方法をブラッシュアップしてゆきたいと思っております。