失敗しないテスト自動化のポイントは「属人化」対策
江添氏はソフトウェアテスト技術者資格「JSTQB」を所有するバルテスのテストエンジニアとして活躍するかたわら、テスト自動化に関する執筆活動なども行っている。
まず江添氏は、属人化を克服するポイントとして「フィージビリティスタディ」「テスタビリティ」という2つのキーワードを挙げた。
フィージビリティスタディとは、テスト自動化の本格導入前に実施する自動化の実現可能性調査のこと。自動化したメリットが得られるか、継続する確実性はどのくらいかなどを把握することができる。
テスタビリティは必要なテストが十分実施できるかを表す指標であり、テスタビリティを上げることで、メンテナンスに強いテストツールを作ることが可能となる。
テスト自動化の実現可能性が確認できたら、次に意識したいのは自動テストの実行時間である。短時間で利用頻度を高めるために、並列実行を想定してテスト設計をすることが重要となる。
システム設計において、本体のテスト対象で考慮すると良いポイントについても紹介された。テストケースは、期待結果を確認するためのテスト条件・テスト手順、合否判定するための期待結果で構成される。
それらに必要なテストデータやシステム状態、アクション、操作対象、比較判定、比較対象に対し、モック・スタブ、テスト用のAPIを用意し、自動化しにくいアクションの見直しやUI要素を一意に特定することで、バグの原因が特定しやすくなる。
また、自動化する候補を絞り込むこともテスト自動化においては、非常に大事であると江添氏は強調する。短時間で何度も実行できることに加え、期待結果を一つにすることが重要なのだ。
続いて、現在のテスト自動化における主流の考え方の一つとして紹介されたのが、「キーワード駆動テスト」だ。最新のソフトウェアテスト標準規格であるISO/IEC/IEEE 29119 Part.5で定義されている。
また、キーワード駆動テストは基本的な動作のキーワードを自然言語として設定し、そのキーワードにスクリプトを定義する。キーワードを使用してテストケースを作成すると、自動的にスクリプトに変換される。
簡易な手順でテスト自動化が設定できる一方で、UI要素のパス指定や定期的な見直しが必要であるほか、通常の自動化より高度なキーワード設定やカスタマイズのスキルが求められるといった課題もある。
このキーワード駆動テストを採用したテスト自動化ツールが、バルテスが提供する「T-DASH」だ。特徴としては、プログラムを書くことがないローコード、かつ日本語でつくることができる。
江添氏はT-DASHのデモを披露した後、効果の目覚ましかったテスト自動化事例を2つ紹介してくれた。
事例1:カード会社さま向けシステムマイグレーション
一つ目は、カード会社のレガシーシステム(COBOL)を新システム(Java)にマイグレーションした事例。新旧システムで差分結果を集めて確認したいが、そのテストケースが20万件と膨大な件数だった。
ユーザーサイトの自動化や利用可能枠、支払仮確定、確定、後リボなど全機能確認を実施し、20万件の比較テストはやり切ったが、費用対効果を高めるためには、以下のような課題も残った。T-DASHはこれらの課題を解消できるツールとして開発されている。
費用対効果を高める対策例
- 再利用性を高める:ログインなどの標準機能をモジュール化
- メンテナンス性を高める:テストケースのメンテのみでOK
- テスト内容の見える化:実装者以外でも実施内容が分かる
事例2:証券会社さま向け基幹システム
もう一つの事例は、証券会社の基幹システムにおける毎月リリースの負担を軽減し、コスト削減を図るもの。
まずは、自動化の効果を見極めるためにフィージビリティスタディを実施。自動化適合性が高いことを確認した上で、適性が高い領域を自動化。毎月のテストコストを約60%削減することに成功。テスタビリティを見極めることが成功につながった事例となった。
最後に石原氏が再度登場し、以下の4点を改めてまとめてセッションを締めた。
- 属人化は失敗を引き起こす
- スピードアップにテスト自動化は欠かせない
- 自動化は使い続けることで、ROIは高くなる
- 気軽に使えるツール導入が重要である
日本語で作ったテストケースをそのまま自動化することで自動化を誰でも理解・保守できるテスト自動化ツールです。