セールスフォースエコシステムでは、セールスフォースやGitHubのコード生成コパイロットに馴染みのある方が多いでしょう。 しかし、セールスフォーステストにおけるAIの影響力については、あまり認識されていないかもしれません。 本記事では、AIがテストプラクティスのあらゆる側面を改善し、チーム全体の生産性を向上させる方法に焦点を当てます。
開発者なら「テスト」と聞いて単体テストを思い浮かべるかもしれません。 一方で、テストエンジニアやビジネスアナリスト(BA)なら、機能テストを考えるでしょう。
朗報です! AIはそのどちらにも役立ちます。
まず機能テストから始めましょう。AIは、コードが書かれる前でも、機能の説明を基にテストを作成できます。 本当に可能なのか? 実際に、これはセールスフォーステストのベストプラクティスとされています。 この「シフトレフト」というアプローチにより、要件の説明とコード完成後、すぐに実行可能な機能テストを開発者に提供できます。 効率的ですよね?
要件に基づいて生成されるテストは、インテントベーステストと呼ばれます。 このテストは、要件が完全で、曖昧さがなく、しっかりと記述されていることに依存します。 より詳細な情報を提供するほど、テストの品質は向上します。 しかし、要件が十分かどうかをどう確認しますか?
AIを使いましょう。開発者がコードを静的に解析するツールを使用するのと同じように、セールスフォーステストではAIを活用してユーザーストーリーを豊かにし、明確にすることができます。
開発者は、AIにクラスを生成させるだけでなく、単体テストも生成するよう依頼すべきです。 この方法はセールスフォースの自動化QAを効率化し、クラスが完成した直後にテストを実行できるようにします。 インテントベースの単体テストを提供することが重要な理由がここにあります。 開発者は、完成した機能に対してテストを実行して完了しているかを確認できます。 そして、初回のテストが合格した後、AIにさらに単体テストを生成させるよう依頼します。
AIが生成したテストを確認して、妥当性を確認することが重要です。 このプロセスは、機能テストの自動化にも単体テストの自動化にも適用されます。 機能テストでは、次のような実践が役立ちます。 スクリプトを生成する前に、AIに手動テスト手順を生成させるよう依頼します。 これにより、テスト入力やクリックが合理的であることを確認できるだけでなく、ユーザー受け入れテスト(UAT)中に他のテスターが使用できるドキュメントも得られます。
インテントベースのテストは価値がありますが、主にポジティブケースをカバーします。 機能の限界を押し広げたり、エッジケースを探求することはあまり行われません。 ここでAIを活用してテストを補完することができます。
まず、スクリプトを複数のデータ入力に対応できるよう準備する必要があります。 AIは要求に応じてハードコードされた値を変数に置き換えることができます。 次に、テストエンジニアがAIをガイドして境界ケースや否定テストケースのデータセットを作成します。 ガイドが必要な理由は、境界の知識が必要だからです。 ただし、AIの進歩は目覚ましく、近い将来では境界テストを要求するだけで十分になるでしょう。
探索的テストというテスト手法があります。 これは、主題専門家(SME)がテストセッションを行い、アプリケーションのさまざまな使用方法を探求するものです。 コパードエクスプローラーのようなツールは、これらのセッションを記録できます。 AIはこれらの記録されたセッションを処理して、複数のテストに分割し、自動化の準備を整えます。 これにより、セールスフォースの自動テストが大幅に強化され、探索的テストやUATセッションでも新機能を探索できます。 AIはこれらのセッションを自動化テストに変換し、UATをより効率的にします。
UATに関連して言えば、AIはテストされた各機能に付随するドキュメントを生成できます。 このドキュメントには、スクリーンショット、ビデオ、機能の概要、手動テスト手順などが含まれます。 これらはUAT中に非常に価値があり、各手動テストの目標と結果を明確に伝えるのに役立ちます。 UATに関するベストプラクティスについては、セールスフォースに関する完全ガイドをご覧ください。
テストデータの作成は、もう少し詳しく見るべきテーマです。 テスト環境でのプロダクションデータの使用は、個人情報(PII)や企業機密情報の漏洩リスクを伴う可能性があるため、 データストレージ規制の理解がコンプライアンス維持のために重要です。 より良い方法は、プロダクションデータを代表する合成データを使用することです。 AIはここで役立ち、実際のデータのように感じられるデータを作成します。
お気に入りの生成AIツールに名前、住所、電話番号のリストを生成させ、それらの電話番号が住所に適切であることを確認するよう依頼してみてください。 さらに、データの場所をパリに制限し、その場所に合った名前を生成するよう依頼します。 また、出力をカンマ区切り値(CSV)形式にするよう求めれば、テストツールに直接インポートできます。 これにより、AIを使用してデータを生成するのがいかに簡単かを実感できるでしょう。
大量の自動テストを作成し、UATイベント前に環境でフルテストを実行したとしましょう。 その後、テストログをレビューして、どのテストが失敗したのか、どの失敗がバグではなくテストの破損によるものかを特定する必要があります。 これは手間のかかる作業ですが、AIがここでも助けになります。
AIは以下を支援します:
これらすべてをAIが行っている間に、コーヒータイムを楽しむことができます。
コパードは、上記の手順をすべて実行するテスト実行分析ツールを提供しており、 自動テストの結果の調査と対応にかかる時間を短縮しています。
この簡単な概要からもわかるように、AIはDevOpsの計画、構築、テストフェーズにおけるテストプロセスに大きな影響を与えることができます。 すべてのテストに影響する要件を改善することから始まり、テスト計画のすべてのコンポーネントを生成します。 これにより、開発者、テスター、さらにはBAにとっても役立ちます。
AIはリリースや運用フェーズでも役立ちますが、それは次の記事で取り上げます。