Confidential「⽣成AIで⾃動化」だけでテストは⼗分︖
⾃動・⼿動の最適バランス
2024年 7⽉ 23⽇

株式会社GENZ
IT技術部 技術推進Group⽵花 和裕
Copyright ©2024 GENZ, Inc.

Confidential

会社紹介

Copyright ©2024 GENZ, Inc.

Confidential

株式会社GENZ
会社名

拠点

株式会社GENZ

東京本社〒101-0062 東京都千代⽥区神⽥駿河台2-3-11
ヒューリック御茶ノ⽔ビル ３F

札幌⽀店〒060-0061 北海道札幌市中央区南1条⻄5-20
郵政福祉札幌第1ビル6階

⻘森⽀店〒030-0861 ⻘森県⻘森市⻑島2-25-3
ニッセイ⻘森センタービル ６F

事業内容

品質コンサルティング/システム開発/システム技術者派遣
損害保険代理店業/不動産売買・賃貸仲介業務
営業・マーケティング⽀援設⽴

2016年5⽉

従業員

213⼈

Copyright ©2024 GENZ, Inc.

（2024年7⽉時点）

Confidential

GENZのテストQUALITY
ENGINEERINGTESTEXECUTIONNon-Functional
Requiremets

品質を考えるサービスカテゴリとして下記⽀援内容を提供しております

WEB・スマホアプリをはじめとしたテスト実施の⽀援をおこないます

脆弱性テスト、ストレステスト、⾃動化テスト等の特定のツールが必要なテストを⽀援します

・品質コンサルティング
・QMOサービス
・テスト計画/設計
・ドキュメント作成サービス

・PCテスト・スマートフォンテスト
・各種組込み機器テスト
・ゲームデバッグ
・IoTデバイステスト

・脆弱性診断・負荷テスト・テストツール作成

Copyright ©2024 GENZ, Inc.

２

Confidential

GENZの強み

多様な経験による柔軟な対応

⼈⽇単位での発注可エンジニアの技術ノウハウが蓄積徹底した品質管理を⾏うためエンジニアのスキル

SI業界では「⼈⽉」単位でのテスト業務請負が多当社2022年度の離職率は5.07%です。GENZで向上や多様な経験ができるようマネジメントしてい中、GENZではお客さまの様々なニーズに対応

⻑く活躍している経験豊富なメンバーが、お客さいます。そのため、お客さまのご予算・ご要望にするために、「⼈⽇」単位でのご依頼も可能です。

まに寄り添って伴⾛いたします。

応じて⾼品質かつ最適なテストサービスを提供す

お客さまのニーズに柔軟かつスピーディに対応しることができる体制を整えています。ております。

Copyright ©2024 GENZ, Inc.

Confidential

対象テストレベル

弊社は第三者検証会社で、担当する主なテストは• システムテスト• システム結合テスト

そのため、本セッションでお話しするソフトウェアテストの話はシステムテストを対象としています

Copyright ©2024 GENZ, Inc.

Confidential「⽣成AIで⾃動化」だけでテストは⼗分︖
⾃動・⼿動の最適バランス

Copyright ©2024 GENZ, Inc.

Confidential

⽣成AIの進化最近のAIの進化がすごい• Open AI の ChatGPT• Anthropic の Claude• Google の Gemini• Apple の Apple Intelligence• Meta の Llama• Google の Gemma• Microsoft の Phi-3
Copyright ©2024 GENZ, Inc.

Confidential

AIによるコーディング⽀援

⽂章⽣成だけではなく、コーディングもAIがサポート• GitHub Copilot• Cursor
特に経験の浅い開発者には理想的な環境

コーディングも出来るのだからテストもAIに任せちゃおう︕

Copyright ©2024 GENZ, Inc.

Confidential

テストの⾃動化を考えて単体テストや結合テストレベルのテスト⾃動化はコードベースで書きやすい
しかし、システムテストの⾃動化になるとハードル（⼿間）が急に上がります

ローコードやノーコードで⾃動テストを作れるサービスもあり、⽐較的システムテストの⾃動化も⼿を出しやすくなった

Copyright ©2024 GENZ, Inc.

Confidential

ChatGPTでのテストの⾃動化

⽣成AIで、システムテストの⾃動テストのコードも書いてくれる

Copyright ©2024 GENZ, Inc.

Confidential

⾃動化、移⾏。
そうだ 京都、⾏こう。
Copyright ©2024 GENZ, Inc.

Confidential

待ってください︕

⾃動化、移⾏。
そうだその⾃動化、
京都、⾏こう。
最適解ですか︖
Copyright ©2024 GENZ, Inc.

Confidential

テスト⾃動化の夢

⾃動化を銀の弾丸や魔法のように捉え、⾃動化に移⾏した結果
苦労してきたお客様を弊社ではたくさん⾒てきました
⾃動化したら• システムテストのコストが下がるんでしょ︖• システムテスト担当者は全員クビでいいんでしょ︖• 24時間テストを実⾏して、テスト期間は短くなるでしょ︖• システムテストは放置でうまいことやってくれるんでしょ︖

Copyright ©2024 GENZ, Inc.

Confidential

⾃動化したらシステムテストのコストが下がるんでしょ︖

みなさんお分かりのように、⾃動化構築にはコストがかかります• ⾃動化のコーディング⾃体に時間がかかる• ⾃動化サービスなどを利⽤して軽減は可能• 組んだ⾃動テスト⾃体に不具合が混⼊する可能性がある• ソフトウェアのための⾃動テスト、のためのテスト︖• ⾃動テストはメンテナンスも必要• 画⾯操作を軸にするE2Eテストでは、デザインなどUIの変更は⾃動テストに⼤きな影響がある• メンテナンスを⾏わないと形骸化する• 実⾏時のエラーを無視
Copyright ©2024 GENZ, Inc.

Confidential

⾃動化したらシステムテスト担当者は全員クビでいいんでしょ︖

テストエンジニアとしては恐ろしい⼀⾔😨
• ⾃動化には、効果的なテスト設計が必要• 意味のないテスト結果が⾃動かつ⾼速で⽣み出されてしまう• 効果的なテスト設計には、テストに対する知識や経験が必要• そこでAIを活⽤• テスト観点 / プロダクトリスク / テスト技法の選択など• ただし、AIの結果が全て正しいわけではない• アイディアの⼟台としてリストアップしてもらう• ⼈が考えた内容に対してFBをもらい、考慮漏れをフォロー• 気づきの機会をAIにもらう• ハルシネーションのリスクは考慮する
Copyright ©2024 GENZ, Inc.

Confidential

⾃動化したら24時間テストを実⾏して、テスト期間は短くなるんでしょ︖

実施するテストによります• 繰り返し⾏う必要があるテストには効果的• リグレッションテスト
• 本番環境のサービスやAPIの死活監視• ⼈ができない夜間や休⽇の実⾏ができる• 夜間や休⽇のテスト実⾏は、⾃動テストの安定が必要• 繰り返し⾏わないテスト⾃動化は、⾃動化の構築やメンテナンスの⼯数で逆にテスト期間が延びる可能性がある

Copyright ©2024 GENZ, Inc.

Confidential

⾃動化したらシステムテストは放置でうまくやってくれるんでしょ︖

テスト⾃体の⾃動化だけではなく、プロセスの⾃動化も必要• レポート• 通知• 継続的インテグレーション（CI）• エラー検知やデバッグのしやすいログ

上記のプロセス⾃動化構築の⼯数も考慮する必要がある• ⼤きなシステムほどメンテナンスコストやサンクコストが膨らむ
Copyright ©2024 GENZ, Inc.

Confidential

テスト⾃動化のご依頼事例

ご依頼内容
ご要望について
開発⼿法
対象システム課題

新規開発中の⼤規模不動産賃貸検索サイトの結合テスト以降のテスト⼯程を⾃動化してコストを削減したい。
また開発完了後のエンハンス開発時もテストが⾃動化されていることでテスト⼯数の削減を⽬指したい
ウォーターフォール型開発 （但し、開発メンバーはオフショア対応のため海外のエンジニアが対応）
WEBアプリケーション（ブラウザ）l 仕様書や設計書といったドキュメントは基本的にほぼなく、必要最低限は作成されているが情報が古い
l ある程度すでに開発⼯程が進んでおり、アーキテクチャなどは部分的に決まっている
l 初期開発後もすでにPh2が確定しており、Ph1完了後からすぐにPh2の開発が開始される
l プロジェクトメンバー内にQAやテスト⾃動化を対応したことがある、もしくは知⾒があるメンバーはいない

⾃動化の⽬的

テスト⼯程を⾃動化することによるテスト⼯数削減及びコストダウン

体制

40名（PM 1 ／ GrpLdr 2 ／ GrpSubLdr 6 ／Mem 31 ）このまま⾃動化を進めた場合に起こり得る問題

l エンハンス開発がこれからも⾏われることで発⽣する⾃動化スクリプトの更新頻度と「誰が更新するのか」問題
l 開発が並⾏するために⾃動化⽤のテストケースが更新されずスクリプトだけ更新され、結果⾃動化出来ている箇所と出来ていない箇所が誰もわからなくなってしまう問題
l コストダウンが究極の⽬的となっているため、本質的な⽬標であるはずの「不具合の検出」がどこかへ⾏ってしまい
⾃動化構築をしたとしても将来的に形骸化する可能性

Copyright ©2024 GENZ, Inc.

Confidential

⾃動化の向き・不向き

そのシステムテストは⾃動化すべきかどうか• ⾃動化に向いているGUIや機能がある• 逆に⼿動の⽅が効率よくテストできる場合もある• スクロールのカクツキ• ユーザビリティ（使いやすさ）• なんとなく気持ちがいい、説明が難しいけどしっくりこない• ⾔語化できないとロジックに落とすのが難しい• そのような箇所にこそUXの課題がある場合がある• ⼿動だと狙った箇所以外のテストも同時にできる• デザイン / UX / 脆弱性
Copyright ©2024 GENZ, Inc.

Confidential

⾃動化の注意点

⾃動化するにあたり注意すべきポイント• ⾃動テストサービスを利⽤する場合、開発中のソフトウェアや開発環境・クラウド環境と他社のサービス連携が可能かどうか• セキュリティポリシーなど• ⾃動化するにあたり、テスタビリティ（テストのしやすさ）を考慮したコーディングが必要になる場合もある• ただしテスタビリティを優先して、ユーザビリティを犠牲にしないように注意する

Copyright ©2024 GENZ, Inc.

Confidential

ハサミとカッター
ハサミ

カッター

直線

素早く正確に切るのが難しい

素早く正確に切れる

曲線

正確に切りやすい

正確に切るのが難しい

下敷き

不要

状況により必要

刃の寿命と切れ味⻑い。ただし、切れ味が落ちても刃の交換はできない短い。ただし、切れ味が落ちたら刃の交換ができる

厚み

厚みがあるものは苦⼿

厚みがあっても切ることができる

ダンボールの封

切りにくい

切りやすい

Copyright ©2024 GENZ, Inc.

Confidential

ハサミとカッター

切りやすさ、使いやすさのほかに安全性の観点もあります。
カッターの⽅が使いやすい状況でも、⼩さな⼦供が使う状況ではハサミを使わせると思います

⽬的や状況に合わせた住み分けが必要

Copyright ©2024 GENZ, Inc.

Confidential

⾃動テスト・⼿動テストの住み分け

⾃動テストと⼿動テストの住み分けポイント• 無理にすべてを⾃動化する必要はない• Webサービスであれば、ページタイトルやヘッダー、フッター表⽰など簡単なテストであってもテスト担当者は楽になる• ミニマムステップ• 画⾯の⾒切れ、不⾃然な改⾏位置などの不具合は捉えにくい• AIでだいぶフォローはできるようになっている• 画⾯⽐較などで⾃動テストできないこともない• 画⾯内に広告など可変の箇所があると難易度が上がる• ⼈が実施した⽅が早い
Copyright ©2024 GENZ, Inc.

Confidential

⾃動テスト・⼿動テストの住み分け• 住み分けの線引きが重要• ⽊こりのジレンマに陥る可能性がある• ⾃動化の成果の計測は重要• テスト（実施）⾃動化だけが⾃動化すべき対象ではない• ⼤量のテストアカウント⾃動作成ツール• テストで出⼒された⼤量のCSVをExcelで⽐較するツール• テストプロセスの⾃動化も有効• テストケースの進捗や結果の集計• Slackなどへの通知の⾃動化• ちょっとしたツールをAIに書いてもらう
Copyright ©2024 GENZ, Inc.

Confidential

JSTQB Advanced Level – テスト⾃動化エンジニア シラバス
• テスト⾃動化の制限• すべての⼿動テストの⾃動化はできない（するべきではない）• ⾃動化によってチェックできるのは、ツールが解釈できる結果のみ• ⾃動化によってチェックできるのは、あらかじめ定義された期待結果によって検証可能な実⾏結果だけ• 探索的テストを⾃動化に置き換えることはできない• メンテと優先度観点で以下は避けるべき• インターフェイスの影響を受けやすいスクリプトは対象外• GUIや、APIのどうでも良い箇所の変更• データ変更の影響を受けやすい、または特定のデータ値に⼤きく依存する
テストは対象外• ⽇付や時刻、別アプリケーションの影響を受けやすいテストは対象外
Copyright ©2024 GENZ, Inc.

Confidential

⾃動化に向いているポイント• リグレッションのように繰り返すテストは⾃動化すべき• 3回以上が⽬安• ヒューマンエラーを防ぐための⾃動化は有効• ⼈間が実施するのが難しいテスト• タイミングやセットアップ• 死活監視• 勤務時間外のテスト実⾏

Copyright ©2024 GENZ, Inc.

Confidential

まとめ

⾃動・⼿動の最適バランスはありません

プロジェクトだから状況が⼀定ではない• 開発対象• 組織 / チーム• 新規開発 / エンハンス開発• コスト / スケジュール• ステークホルダー / 業界
• 開発⼿法Copyright ©2024 GENZ, Inc.

Confidential

まとめ

⾃動・⼿動の最適バランスはありません

プロジェクトだから状況が⼀定ではない• 開発対象• 組織 / チーム
最適バランスを取るために• 新規開発 押さえておくべきチェックポイント/ エンハンス開発• コスト / スケジュールはある• ステークホルダー / 業界
• 開発⼿法Copyright ©2024 GENZ, Inc.

Confidential

まとめ

1. ⾃動化に対する夢を捨てる『⼗分に発達した科学技術は、魔法と⾒分けがつかない』• 魔法ではない。銀の弾丸でもない• 全部は⾃動化できない• ちょっとした⾃動化でも、意外と仕事は楽になる• 壊れたら検知できる仕組みで、安⼼して開発ができる

Copyright ©2024 GENZ, Inc.

Confidential

まとめ

1. ⾃動化に対する夢を捨てる

2. 再利⽤できるテストを⾃動化する• 壊れる可能性は低いが、ユーザーへの影響が⼤きい箇所• メンテが少ない。テスト⾃動化の練習に向いている• 価値が低い（と思われる）箇所（バグるとちょっとダサい）• サイトタイトルやリンク切れ• 開発者として気軽に変更ができ、UX効果の⼤きい箇所はNG• デザイン変更など• ⾃動テストのメンテナンスが⼤変
Copyright ©2024 GENZ, Inc.

Confidential

まとめ

1. ⾃動化に対する夢を捨てる
2. 再利⽤できるテストを⾃動化する

3. テスト実施の⾃動化にこだわりすぎない• 何のための⾃動化か、⽬的を思い出す• テスト実施の⾃動化だけがテスト活動の効率化ではない• がんばって⾃動化を果たしたけど、結果⼿動の⽅が早かった• 楽しくてやっちゃうのは仕⽅がない..

Copyright ©2024 GENZ, Inc.

Confidential

まとめ

1. ⾃動化に対する夢を捨てる
2. 再利⽤できるテストを⾃動化する
3. テスト実施の⾃動化にこだわりすぎない

4. テスト⾃動化も開発プロジェクトの⼀つ• 要件定義など上流⼯程の検討が必要• ⽬的、計画、構築後の運⽤、ドキュメントなど• 開発同様、しっかり⾏わないとプロジェクトが失敗してしまう• 判断には専⾨家の知識が必要
Copyright ©2024 GENZ, Inc.

Confidential

Copyright ©2024 GENZ, Inc.