ソフトウェアテストの世界は急速に進化しており、より高速で効率的なソフトウェアデリバリーがますます求められています。自動テストもそのペースに合わせて進化する必要があります。これらの課題に直面し、SourceFuseのあるプロジェクトでは、エンドツーエンドのテストフレームワークであるCodeceptJSを採用することで、アプローチを刷新することにしました。そして、それだけではありませんでした。
さらに、人工知能(AI)を統合して、複雑なシナリオに対応することで、それを強化しました。CodeceptJSに組み込まれたAI搭載機能は、革新的な柔軟性、自己修復テスト、インテリジェントな意思決定を提供してくれました。これは、当社のプロジェクトのテストニーズを拡大するのに最適です。
このブログでは、テスト自動化におけるAIの役割、CodeceptJSの機能、および自動化テストを強化するためにこれら2つを統合する方法について説明します。
CodeceptJSを選ぶ理由
迅速なスクリプト作成: CodeceptJSのAI機能により、迅速なソリューションを提供し、機能を迅速に自動化し、手作業の数を大幅に削減することができました。
- 複数のフレームワークのサポート
CodeceptJSツールは、WebDriver、Puppeteer、Playwright、TestCafeなどの一般的なフレームワークと簡単に統合でき、既存のフレームワークを柔軟に利用できます。 - BDDスタイルの構文
プレーンな英語であるGherkin言語でテストケースを記述すると、BBDスタイルになり、チームメンバー(開発者とテスター)全員がテストケースを簡単に読んで理解できるため、より適しています。 - 並列実行
並列実行も、大規模プロジェクトでテスト速度を向上させ、重要な締め切りを守るのに役立つ機能の1つです。 - モジュール構造
ツールを設定すると、CodeceptJSはプロジェクトのモジュール構造を自動的に作成し、コードの保守性とテストコンポーネントの再利用性を向上させます。
テスト自動化におけるAIの必要性
手動テストは、時間がかかり、反復的で、エラーが発生しやすいことがよくあります。CodeceptJSのような自動化フレームワークを使用しても、自動化スクリプトのメンテナンスは非常に難しく、ここでAIが登場します。AI駆動型の手法をテスト自動化に活用するには、次の方法があります。
- テストデータ生成: AIを使用すると、以前の実行に基づいて、動的にユニークで特徴的なタイプのデータを生成できるため、テストカバレッジが向上します。
- スクリプトの作成: プレーンな英語を使用することで、AIを使用してスクリプトを簡単かつ迅速に生成できるため、手作業が大幅に削減されます。
- 自己修復テスト: AIは、実行時にロケーターを修正することで、テストケースを自己修復できます。これにより、誤ったエラーが減少し、UIのわずかな変更があっても、テストがスムーズに実行されます。
- 強化されたエラー検出: AIは、Webページのスタイル、パターン、および初期の欠陥の結果を比較できるため、製品全体の品質が向上します。
CodeceptJSでのAIの実装
SourceFuseプロジェクトでは、OpenAIをCodeceptJSと統合して、その強力なAI機能を活用しています。AIを活用してテストスクリプトを作成、保守、および開発することで、テスト自動化を簡素化します。
- 自己修復テスト: AIを使用すると、UIの変更によってテストが中断されることはありません。AIは、変更された要素を機械的に識別し、ロケーターを調整し、実行時にテストを更新できます。
- AI駆動型ロケータ戦略: AIツールは、ドキュメントオブジェクトモデル全体を調べ、コンテキストを認識し、アプリケーションの変更中に中断しにくい、回復力のあるロケーターを作成できます。
- 自動生成テスト: AIは、アプリケーションを自律的に分析し、動作を追跡し、テストスクリプトを生成できます。
- AI生成テストデータ: AIは、アプリケーションのニーズに適応する動的データとテスト記録を生成できます。
- ビジュアルリグレッションテスト: Applitools EyesなどのビジュアルAIツールを統合することで、AIはUIを比較し、アプリケーションの機能面と視覚面の両方が徹底的にテストされるようにすることができます。
CodeceptJS AIの設定方法
CodeceptJS AIを設定するには、まず以下のプラグインをインストールし、以下の手順に従う必要があります。
- CodeceptJS AIのインストール
- npm install @codecept-ai/ai –save
- CodeceptAIの設定
- Codecept.conf.jsファイルを開き、以下のプラグイン構成を行います。

- AIにスクリプトを代わりに記述させたい場所から、スクリプトにpause()を追加し、次のコマンドを実行します: npx codeceptjs run
- スクリプトは一時停止ポイントで停止します。その後、プレーンな英語で指示を与えて、次のコードを代わりに記述させることができます。例: ログインページにいて、ユーザー名とパスワードを入力して次に進みたい 。

BDDフレームワークがフレームワークで使用されている場合、AIはステップ定義でコードを提供します。
自己修復の設定
自動修復を設定するには、以下に示すように、codecept.conf.jsファイルにauto-healプラグインを設定します。

プラグインが設定されたら、テストを実行します。UIが変更された場合、スクリプトは自動的に修復され、実行の最後に、実行中に修復されたロケーターが一覧表示されます。
当社のプロジェクトでCodeceptAIを使用する主な利点
SourceFuseプロジェクトにCodeceptAIを組み込むことの利点は非常に大きかったです。
- クイックスクリプティング:CodeceptJSのAI機能により、迅速なソリューションを提供し、機能を迅速に自動化し、大幅な手動作業を削減することができました。
- メンテナンスの削減: 自動テストの修復とAIベースの戦略により、破損したテストを手動で修正する必要がなくなり、メンテナンスコストが大幅に削減されます。
- よりスマートなテスト実行: AI搭載のテスト選択は、コードの変更のみに基づいて影響の大きいテストを実行し、テスト実行を最適化します。
- テスト精度の向上: AIを動的テストデータ生成、ビジュアルリグレッション、およびよりスマートなロケーターに使用することで、テストはより堅牢で正確になります。
- リリースの高速化: UIの変更はAIで処理できるため、メンテナンス作業が削減され、開発サイクルが短縮され、デプロイメントが高速化されます。
結論
人工知能をCodeceptJSに統合することで、SourceFuseでのテスト自動化戦略が大きく変わりました。自動化が非常に効率的になっただけでなく、よりスマートになりました。自己修復テスト、AIプッシュロケーター、よりスマートなチェック選択、およびビジュアルAIツールを活用することで、手作業を削減し、テスト精度を向上させ、急速な変化に直面しても自動化を回復力のあるものにしました。この経験から、AIを適切に使用すれば、CodeceptJSは単なるツールではなく、最新のテスト自動化のゲームチェンジャーであることがわかりました。