テスト効率化のカギとなる「テスト資産」とは?
大規模アジャイルにおける課題について朱峰氏は対応方法を紹介する。1つめのアプローチはテスト資産管理の効率化だ。テストプロセス全体の流れを見渡すと、最初はテスト計画から始まる。リソースは有限なので、いかにコスパ良く実行できるか作戦を立てて(分析・設計)、テストケースに落とし込む(実装)。ここで自動化する場合もある。データや環境などの準備をしたうえで、ようやくテスト実行へと進む。実際は全てが計画通りに、1回でテストが通るとは限らない。どこかでバグが見つかり2周目、3周目の繰り返しを経て、最終的に全体を振り返ってようやくテストは完了する。
この一連のプロセスの中で、テストで使うテスト観点、テストケース、テストデータといった成果物がテスト資産だ。
そしてもう1つ、朱峰氏は「テスト結果もうまく扱っていくべき」と提言する。プロジェクトは繰り返し発生するため、過去のテスト結果をうまく活かすことで、以降のテストのアジリティを上げることができると期待できるためだ。
朱峰氏によるとテスト資産管理に着目する理由は主に2点あるという。1点目は、仕様変更時の分析の効率化だ。日常的にテストを繰り返すなか、「今回は仕様のどこが変更されていて、どこか変更されていないのか」と、仕様変更が既存テストに与える影響を分析することは結構な手間になる。
この作業を効率化するには「愚直に仕様とのトレーサビリティが取れるテストケースのバージョン管理が求められる。ここは何かしらの支援がないとテストエンジニアが大変になる」と朱峰氏は言う。何せテストは増え続ける。どこかバグがあると、テスト範囲を広げることにもなる。
「そもそもテストは終わりのない活動なのでいくらでも増えてしまうが、ヒューマンリソースは有限」と朱峰氏は言う。どこかで増えたら、その分、どこかで減らすことも考えなくてはならない。
それではどこのテストを減らせるか。これはテスト担当者としては苦渋の決断になる。削ったことでバグを見逃してしまったら……と想像するだけでも恐ろしい。
そこで、テストを減らす判断の助けになるのが過去の実績だ。例えば過去10〜20回のテストで「この機能でバグは出ていない。安定している」ことが分かれば、テストを減らす判断の根拠にできる。朱峰氏は「過去のテスト結果はテストの数や分量を最適化するのに役立つのではないでしょうか」と提案する。
絶え間なくプロダクトは進化する。それに伴い仕様も変化していく。仕様変更の影響分析をいかに迅速に行うか。そして増加の一途をたどるテストから、いかに不要なところを自信を持って削減させていくか。これらの課題を解決するにはテスト仕様とトレーサビリティも含めたテスト資産を人間の頭の中や表計算アプリケーションで管理するのではなく、何らかのツールを使うのが現実的だろう。
ツールについて、朱峰氏は「自社ツールも含め、誤解を恐れずに言えば、まだまだで進化している途上にあります」と前置きしつつも、テスト管理ツールというジャンルを紹介した。
テスト管理ツール導入時には、カタログスペックやプリセールスレベルでの机上判断、無料プランやトライアルにて小規模パイロット案件適用で比較していくことになるだろう。朱峰氏によると、パイロット案件に含めるべきは「100件以上、できれば1000件以上のテストケース」だという。また1プロジェクト内での繰り返し(パスしなかったテストの2周目以降のテストや、パスしたテストの回帰テスト)、2プロジェクト目以降の繰り返し(仕様変更を想定したテストケースなど)を考慮するのがポイントだという。
朱峰氏は「テストケースや過去のテスト結果をしっかり資産として、手の内化して、自分たちのテスト活動を効率化していくこと」とアドバイスする。