SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2023 セッションレポート(AD)

ソフトウェアテストの専門家が解説する、失敗しないテスト自動化の始め方と継続して運用していく秘訣とは?

【10-E-3】テスト自動化の始め方 Developers Summit2023特別編 ~計画から事例まで~

  • このエントリーをはてなブックマークに追加

テスト自動化の保守:定期的に実行して、自動テストが成功する状態を保つ

 4番目のポイントは、テスト自動化の保守フェーズについてである。

 「テスト自動化のよくある問題として、作りっぱなしで、いざ使おうと思ったら動かないという現象があります。テストを一生懸命やらなきゃいけない時期があっても、一段落して、次のバージョンアップ開発が終わってからそう思ったら全然動かない。これは本当によくあるんです」

 このような現象が起こる原因は、テストケースやスクリプト・自動化の環境・実際のテスト環境などに齟齬があるためだ。また、自動テストが失敗したら間に合わせで修正して、何とか動くようにするため、自動テストなのに時間がかかってしまうことも少なくない。

 テストする環境をきちんとメンテナンスして、定期的に実行して自動テストが成功する状態を保つ。つまり、自動テストの保守の負債をため込まないことが重要になると江添氏は説いた。

事例から学ぶ、テスト自動化における成功と失敗の分かれ道

 5番目のポイントとして、テスト自動化の実例を紹介して、テスト自動化における成功と失敗の分かれ道を解説した。

 「テストのコストを削減するには、繰り返し利用が見込まれる部分の自動化が重要です。同じ操作を繰り返すテストケースなのか、何度も実施するテストなのか、きちんと精査した上で、効果的なところから進めていくことが大切です」

 ここで意識する必要があるのは、自動テストを一回やるだけで元が取れることは、ほとんどないと江添氏は説明した。何回か繰り返すと、実行時間が短縮されて、その繰り返しの積み重ねによってメリットが出てくる。

 そして、テスト自動化が効果を発揮しなかった事例を1つ紹介した。

 この例は、大規模システムのマイグレーションで、機能テストを自動化することで、現行システムと新規システムを比較するコストを削減すると共に、人的ミスによるテスト誤りの防止を目的としていた。そのために、約20万ものテストケースを自動化した。その結果、テスト期間内にすべての確認を終了でき、ローンチ後もユーザー不具合は一切発生しなかった。

 「このようにプロジェクトとしては成功したのですが、テストの自動化としては失敗事例としています。20万件ものテストケースを自動化したために、コピースクリプトが大量に発生しており、保守性が低くて再利用が難しくなっていたからです」

 せっかく導入したのに再利用ができないため、ROIは20%程度にとどまった。

失敗事例 - 実行頻度が少ないテスト
失敗事例 - 実行頻度が少ないテスト

 続いて、テスト自動化の成功事例を紹介した。こちらは、膨大な組み合わせ数のチャットボット用FAQを最小のテストシナリオで自動化して回答品質を向上させた。チャットボットであったため、同じ操作を反復することが多くなっており、スクリプト2本と4400パターンのテストデータを用意して、実装コスト4人日で自動化を実現したのだ。

成功事例 - 膨大な組み合わせテスト
成功事例 - 膨大な組み合わせテスト

 その結果、1回のテスト実行でROIは100%となった。チャットボットを修正した時も、同じテストを使い回すことができ、非常に大きなコストメリットが得られたのだ。

 では、テスト自動化の失敗と成功の分かれ道は、どこにあったのだろうか。

 「失敗と成功の定義にはいろいろな観点が考えられます。テスト自動化を継続する場合のコストで見ていくと、同じ操作を繰り返すテストの自動化が非常に効果的だといえます」

 開発チームにおいてテストの自動化は重要性が高いという認識が広がっているが、なんとなくテスト自動化を始めて、継続の難しさを感じているエンジニアやPMにとって、大いに参考になったのではないだろうか。

 テスト自動化を継続していくことは決して簡単なことではないが、あらかじめ自動テスト環境を保守する工数を計画に盛り込むことが大切になる。システムの運用を安定的に続けるにはコストがかかるが、自動テストの維持もそのための重要な要因になると、あらためて感じたセッションだった。

関連リンク

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Developers Summit 2023 セッションレポート連載記事一覧

もっと読む

この記事の著者

可知 豊(カチ ユタカ)

フリーランスのテクニカルライター 興味の対象はオープンソースの日常利用、ライセンス、プログラミング学習など。 著書「知る、読む、使う! オープンソースライセンス」。https://www.catch.jp

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:バルテス株式会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17451 2023/04/05 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング