SHOEISHA iD

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

連載記事

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

翔泳社では、「独習」「徹底入門」「スラスラわかる」「絵で見てわかる」「一年生」などの人気シリーズをはじめ、言語や開発手法、最新技術を解説した書籍を多数手がけています。プロジェクトマネジメントやチームビルティングといった管理職向けの書籍も豊富です。

ITエンジニアとしてのスキルアップ・リスキリングに、ぜひお役立てください。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
Developers Summit 2024 KANSAI セッションレポート(AD)

生成AIの登場でテスト自動化は変わるのか? メリット・デメリットを徹底検証!

【B-4】「生成AIで自動化」だけでテストは十分?自動・手動の最適バランス

 GENZはソフトウェアテストに強みを持つ企業だ。テストの計画・設計・実施は当然のこと、テストの上流となる品質コンサルティングやQMO(品質管理組織活動)サービスやドキュメント(仕様書)作成サービスなども幅広く手がけている。テストの領域はPC、組み込み系、IoTデバイス、ゲームまで。豊富な経験と、人日単位で発注可能な柔軟性も強みとしている。今回はGENZ 竹花和裕氏がテストの自動・手動の最適バランスをテーマに解説する。

株式会社GENZ 札幌支店 IT技術部 技術推進グループ マネージャー 竹花 和裕氏
株式会社GENZ 札幌支店 IT技術部 技術推進グループ マネージャー 竹花 和裕氏

テスト自動化を検討する際の3つの分岐点 

 生成AIが登場し、自動テストが着実に普及してきた。自動テストと手動テストのバランスについての最適解を導くにはどうしたらいいかと多くの開発現場で議論になっていることだろう。本稿でもそれがテーマではあるが、GENZ 竹花和裕氏は「最初に結論から言いますが、自動・手動の最適バランスは残念ながらありません」と言い切る。

 とはいえ、ここで終了ではない。ここでは最適バランスをとるためのポイントについて深掘りしていこう。自動化を検討する際の分岐点となるのが「単体テスト vs システムテスト」「手動テスト vs 自動テスト」「人 vs AI」の3つだ。

自動化が有効なのはどんな場合? å˜ä½“テストとシステムテストの違いから考える

 近年ではテスト駆動開発や開発フレームワークの進化で単体テストの自動化が進んでいる。テストにかかるコスト削減のために自動化したいという要望がありつつも、E2Eのシステムテストにおいては、まだ手動が多いのが実情だ。

 その理由は、自動化してもなおコストがかかることが挙げられる。例えばUIを操作するために(単体に比べると)時間がかかる。またネットワークを経由するため、タイムアウトエラーなどテストが安定しないこともある。バグが発生するとデバッグに時間がかかる、UIの変更に弱い、テストコード自体に不具合が混入してしまう可能性もある。

 ここで竹花氏は「システムテストの自動化では、3回以上同じテストを繰り返すなら有効」と目安を示す。逆に言えば3回未満であれば自動テストの構築コストやメンテナンスコストで赤字になる可能性もある。そのため「自動テストはなるべく単体テストで行うのが望ましい。もしシステムテストを自動化するなら、システムテストでなければならない箇所に絞る」と竹花氏。

 とはいえ「単体テスト」の範囲をどうとらえるか。組織や担当者により、ポリシーや解釈が異なるところだ。その点、竹花氏は「システムをどこまで見るかというレンジの問題もありますが、単体テスト・結合テストだと認識がふわっとしていますので定量的に測れるテストサイズで考えるのがおすすめです」と話す。テストサイズというのはGoogle社内から広まった自動テストにおける分類手法で、Small、Medium、Large、Enormousで分類する。

 Smallとは単一のプロセスで実行できるものを対象とする。そのためファイルシステムや外部リソースは使わない。テスト実行時間は最長で1分以内を目安とする(目標は1ms未満)。Mediumはローカル環境で実行できるものを対象とする。コンテナを利用した場合はローカルとなるので、外部リソースも許容する。テスト実行時間は最長で5分以内とする(目標は1秒未満)。これ以上のものはLarge以上と考える。

テストサイズの分け方

 Smallだとテスト時間が短く、手軽であることがメリットだが、一方で本番環境までが遠いというデメリットがある。単一プロセスのため、外部リソースとの間の部分はモックなど、本番とは異なる環境でテストすることになる。すると、本番で不具合が出てしまうリスクもある。逆にLargeになると本番環境に近くなるが、テスト時間がかかることや手間がかかることになる。

 あらためて自動化のポイントとして竹花氏は「なるべく単体テストを自動化するのが理想」と言う。テスト実行が安定し、コーディング後にすぐテストできて、結果もすぐ分かるので開発のしやすさにもつながる。ただしレガシーシステムでは言語やフレームワークの問題でテストが組み込めない、あるいは組み込んだら問題が起きる可能性もあるので、そういう場合は無理して組み込まないほうがいいだろう。

 またシステムテストだとメンテナンスに時間がかかるのがデメリットだと述べたが、UIの変更がない、またはUXの重要性が低いなら、メンテナンスがあまり発生しないためデメリットは小さくなるだろう。

次のページ
残念な自動テスト「あるある」から見えること

関連リンク

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

Developers Summit 2024 KANSAI セッションレポート連載記事一覧

もっと読む

この記事の著者

加山 恵美(カヤマ エミ)

フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレーターも担当しています。Webサイト:http://emiekayama.net

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

丸毛 透(マルモ トオル)

インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。

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

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

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

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

提供:株式会社GENZ

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/20297 2024/11/06 12:00
" ); }

おすすめ

アクセスランキング

  1. 1
    Google Maps、徒歩・自転車向けにGeminiナビゲーションを提供開始 NEW
  2. 2
    Google Chrome、同ブラウザ内における「Gemini」の大規模アップデートを発表
  3. 3
    Pythonデータ解析ライブラリ「Pandas 3.0」リリース
  4. 4
    Vercel、skillとAGENTS.mdの比較検証を同社ブログで公開 NEW
  5. 5
    MCPクライアントにUI機能を提供する「MCP Apps」が公開 NEW
  1. 6
    .NET向けAI開発基盤「Microsoft.Extensions.AI」紹介、統合APIでLLM活用を容易に NEW
  2. 7
    GeminiでNotebookLMのノートブックをソースとして追加することが可能に
  3. 8
    Moonshot AI、マルチモーダルモデル「Kimi K2.5」を発表 NEW
  4. 9
    JetBrainsが2025年のゲーム開発についてレポートを発表、Godotが急速に普及 NEW
  5. 10
    Claude Skillsとは? AIエージェント開発における新たなベストプラクティスをやさしく解説

アクセスランキング

  1. 1
    Google Maps、徒歩・自転車向けにGeminiナビゲーションを提供開始 NEW
  2. 2
    Google Chrome、同ブラウザ内における「Gemini」の大規模アップデートを発表
  3. 3
    Pythonデータ解析ライブラリ「Pandas 3.0」リリース
  4. 4
    Vercel、skillとAGENTS.mdの比較検証を同社ブログで公開 NEW
  5. 5
    MCPクライアントにUI機能を提供する「MCP Apps」が公開 NEW
  6. 6
    .NET向けAI開発基盤「Microsoft.Extensions.AI」紹介、統合APIでLLM活用を容易に NEW
  7. 7
    GeminiでNotebookLMのノートブックをソースとして追加することが可能に
  8. 8
    Moonshot AI、マルチモーダルモデル「Kimi K2.5」を発表 NEW
  9. 9
    JetBrainsが2025年のゲーム開発についてレポートを発表、Godotが急速に普及 NEW
  10. 10
    Claude Skillsとは? AIエージェント開発における新たなベストプラクティスをやさしく解説
  1. 1
    Google Antigravity、エージェント拡張機能「Skills」の搭載を発表
  2. 2
    開発工数の8割減を実現させた「バイブコーディング」実装論、ジュニアエンジニアが上流工程をこなす新しい開発フローとは?
  3. 3
    Claude Skillsとは? AIエージェント開発における新たなベストプラクティスをやさしく解説
  4. 4
    ベスト10が選出! ITエンジニア本大賞 2026、最終プレゼン大会に進む技術書とビジネス書は!?
  5. 5
    1/10まで全文無料公開『暗号技術のすべて』 誰もが密かに憧れている「暗号」の仕組みを解説
  6. 6
    Copilot Studio拡張機能がVisual Studio Codeで一般提供開始
  7. 7
    新卒エンジニア育成の課題は「ソフトスキル不足」が9割。「新卒エンジニア育成」に関する調査結果
  8. 8
    XAML Studioがオープンソース化、WinUI開発ツールの最新版も公開
  9. 9
    「AIにコードを書かせる」だけじゃない!「AIネイティブ開発」へ移行するためのマインドセットと2つの実践手法
  10. 10
    GeminiでNotebookLMのノートブックをソースとして追加することが可能に

イベント

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

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

メールバックナンバー

アクセスランキング

  1. 1
    Google Maps、徒歩・自転車向けにGeminiナビゲーションを提供開始 NEW
  2. 2
    Google Chrome、同ブラウザ内における「Gemini」の大規模アップデートを発表
  3. 3
    Pythonデータ解析ライブラリ「Pandas 3.0」リリース
  4. 4
    Vercel、skillとAGENTS.mdの比較検証を同社ブログで公開 NEW
  5. 5
    MCPクライアントにUI機能を提供する「MCP Apps」が公開 NEW
  1. 6
    .NET向けAI開発基盤「Microsoft.Extensions.AI」紹介、統合APIでLLM活用を容易に NEW
  2. 7
    GeminiでNotebookLMのノートブックをソースとして追加することが可能に
  3. 8
    Moonshot AI、マルチモーダルモデル「Kimi K2.5」を発表 NEW
  4. 9
    JetBrainsが2025年のゲーム開発についてレポートを発表、Godotが急速に普及 NEW
  5. 10
    Claude Skillsとは? AIエージェント開発における新たなベストプラクティスをやさしく解説

アクセスランキング

  1. 1
    Google Maps、徒歩・自転車向けにGeminiナビゲーションを提供開始 NEW
  2. 2
    Google Chrome、同ブラウザ内における「Gemini」の大規模アップデートを発表
  3. 3
    Pythonデータ解析ライブラリ「Pandas 3.0」リリース
  4. 4
    Vercel、skillとAGENTS.mdの比較検証を同社ブログで公開 NEW
  5. 5
    MCPクライアントにUI機能を提供する「MCP Apps」が公開 NEW
  6. 6
    .NET向けAI開発基盤「Microsoft.Extensions.AI」紹介、統合APIでLLM活用を容易に NEW
  7. 7
    GeminiでNotebookLMのノートブックをソースとして追加することが可能に
  8. 8
    Moonshot AI、マルチモーダルモデル「Kimi K2.5」を発表 NEW
  9. 9
    JetBrainsが2025年のゲーム開発についてレポートを発表、Godotが急速に普及 NEW
  10. 10
    Claude Skillsとは? AIエージェント開発における新たなベストプラクティスをやさしく解説
  1. 1
    Google Antigravity、エージェント拡張機能「Skills」の搭載を発表
  2. 2
    開発工数の8割減を実現させた「バイブコーディング」実装論、ジュニアエンジニアが上流工程をこなす新しい開発フローとは?
  3. 3
    Claude Skillsとは? AIエージェント開発における新たなベストプラクティスをやさしく解説
  4. 4
    ベスト10が選出! ITエンジニア本大賞 2026、最終プレゼン大会に進む技術書とビジネス書は!?
  5. 5
    1/10まで全文無料公開『暗号技術のすべて』 誰もが密かに憧れている「暗号」の仕組みを解説
  6. 6
    Copilot Studio拡張機能がVisual Studio Codeで一般提供開始
  7. 7
    新卒エンジニア育成の課題は「ソフトスキル不足」が9割。「新卒エンジニア育成」に関する調査結果
  8. 8
    XAML Studioがオープンソース化、WinUI開発ツールの最新版も公開
  9. 9
    「AIにコードを書かせる」だけじゃない!「AIネイティブ開発」へ移行するためのマインドセットと2つの実践手法
  10. 10
    GeminiでNotebookLMのノートブックをソースとして追加することが可能に