SHOEISHA iD

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

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

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

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

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

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

 ソフトウェアテストの自動化は、Developer Summitでも人気のテーマだ。今回も、自動化について多くのセッションがおこなわれた。テストの自動化はモダンな開発チームには不可欠な技術の1つとなっているからだ。一方で、テストの自動化に難しさを感じているエンジニアは少なくない。本セッションでは、ソフトウェアテストの専門企業であるバルテス株式会社のエキスパートである石原一宏氏と江添智之氏が「テスト自動化の始め方 Developers Summit2023特別編 ~計画から事例まで~」と題して講演した。

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

そもそもなぜテストを自動化するのか

 セッションの冒頭で、石原氏は「なぜ、そもそもテストを自動化するのか」と問いかけた。

 「一番大きなメリットは、人的・コスト的なメリットを生み、開発の効率化が期待できるからです。自動テストと手動テストには、いくつか異なる点があります。自動テストであれば24時間365日やってくれて、書いてあることはしっかり実行してくれる。何より、スピーディに実行してくれます」と説明した。

 一方で、テスト自動化にはデメリットもある。まず、テストスクリプトを書いたりテスト環境を整えたりと初期導入コストを考える必要がある。さらに、常にテストが成功する状態を保つために、自動テストの保守運用体制の確保が不可欠になるのだ。

 ここで石原氏は、デブサミ2022夏で実施したアンケート調査の結果を見せた。「これまで、テスト自動化経験がありますか?」という質問では、「ある(現在も利用)」が44%ともっとも多いが、「ある(現在は使っていない)」が30%となっていたのだ。

 さらに「テスト自動化について、今どんな課題を抱えていますか?」という質問では、スキル不足・リソース不足など多くの課題があがっていた。

テスト自動化について、今どんな課題を抱えていますか?
テスト自動化について、今どんな課題を抱えていますか?

 「使い続けていないという声が多かったのが今日のセミナーのポイントですね。使い続けるために問題になってくるのは、人の問題とメンテナンスの問題です。この2つが一番大きなボトルネックになっています」

テスト自動化の計画:スコープと解決したい課題を明確に

 1番目のポイントは、テスト自動化の計画フェーズについてだ。テスト自動化で何を解決したいのか、スコープと解決したい課題を明確にすることが重要になると説明した。

 「何を自動化するのかを整理する。これは自動化においてすごく重要なところです。自動化には向くところと向かないところがあるからです」

 テストは、その対象によって単体テスト・APIテスト・機能テストなどに整理できる。このテストの種類によって、実行頻度とカバレッジが異なり、自動化に向くのは実行頻度とカバレッジの高いところ、つまり単体テストとAPIテストのレイヤーになるのだ。

 なぜ、ここがテスト自動化に向いているのか。それを説明するために石原氏は、DevOpsバグフィルタという考え方を紹介した。バグフィルタでは、単体テスト・結合テスト・E2Eテストといった階層になっている。各フィルタの粒度と範囲も異なっており、単体テストは粒度は細かいが範囲が狭く、E2Eテストは粒度は荒いが範囲が広くなっている。

バグフィルタ
バグフィルタ

 「ちょっと気持ち悪いと思うかもしれませんが、ここに上から害虫のタマゴが降ってくると考えてください。単体テストでしっかりと害虫のタマゴを見つけると、次の段階で孵化する害虫を減らすことができます。結合テストで孵化した害虫を見つけられると、次の段階で成虫が少なくて済むんです」

 このように単体テストや結合テストのフェーズで細かく網羅的に繰り返しテストをしたほうが、費用対効果が高くなる。

 「もう1つ、テスト自動化で何を解決しようとしているのか、これもしっかり押さえておきたい話です」

 つまり、テスト自動化の目的を定義することで、どのような手段を採用すべきか明確になるのだ。

 例えば、デグレードが頻発してテスト工数が増えているのであれば、単体・結合・スモークテストを強化しながら、開発プロセスに自動化を組み込み頻度を向上させることが考えられる。テストエンジニアのスキルにバラツキがありテストミスが多ければ、機能テストやリグレッションテストを強化する。クライアントから品質が低いという評価を受けたのであれば、自動化によってスピード・頻度・コストの課題をクリアにして、人による高度なテストを十分に実施するコストを確保するといった具合だ。

 「うまく行かなかった例では、とりあえず自動化、何でもやっちゃえが多くなっています。テストの自動化を計画するときは、スコープと解決したい課題のところを明確にすることで、どこを自動化するのか、どこの自動テストをちゃんとやるのか見極めることが重要になります」

次のページ
テスト自動化の実装:テスト自動化をスモールスタートさせる方法

関連リンク

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

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

もっと読む

この記事の著者

可知 豊(カチ ユタカ)

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

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

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

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

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

提供:バルテス株式会社

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング