Salesforceテスト初心者向けチュートリアル

⚡ スマートサマリー

Salesforce Testingでは、QAチームが世界をリードするクラウドCRM内で、カスタマイズされたApexコード、Lightning UIフロー、統合、およびEinstein AI機能をどのように検証するかを解説するとともに、サンドボックス全体でプラットフォームの組み込み動作をテストするという落とし穴を回避する方法についても説明しています。

  • 🇧🇷 それは何ですか: 標準のSalesforce上に構築された構成、Apexクラス、およびLightningコンポーネントの検証。
  • 🎯 なぜ重要なのか: Apexのデプロイには75%のコードカバレッジが必要であり、Lightningの書き換えは従来のClassicテストスイートを壊してしまう。
  • 🧪 レベル: 単体テスト、システムテスト、ユーザー受け入れテスト(UAT)、本番環境テスト、回帰テスト、さらにサンドボックス全体にわたる統合テスト。
  • 🛠️ トップツール: Tricentis Salesforce、Testsigma、Provar、Copado、および Selenium カスタムロケーター付き。
  • 🤖 AIの視点: 自己修復型ロケーター、Einstein 1プラットフォームの検証機能、そしてAgentforceワークフローが、テスト自動化の次の波を牽引しています。

Salesforce テストのチュートリアル

Salesforceとは何ですか?

Salesforceは、世界初のクラウドベースのCRMシステムです。1999年3月にマーク・ベニオフとパーカー・ハリスによって設立されました。このCRMプラットフォームの目的は、ユーザーがあらゆるチャネルを通じて、手頃な価格で販売、サービス提供、マーケティング、分析、顧客とのつながりを構築できるよう支援することです。

SFDC(Salesforce.com)には、見込み客や顧客との関係を管理できる標準機能が搭載されています。また、従業員やパートナーとの連携やコラボレーションを可能にし、データをマルチテナントクラウドに安全に保存できます。現在、SFDCはSales Cloud、Service Cloud、Marketing Cloud、Data Cloud、そして生成型AI機能を支えるEinstein 1プラットフォームで構成されています。

トップピック
Salesforce

Salesforce CRM は、APEX と呼ばれるプラットフォーム開発言語に基づいて構築されています。Salesforce テストを使用すると、構成とコードが機能していることを確認できます。この CRM により、顧客の忠誠心、維持率、満足度を向上させ、永続的な関係を構築することを目指しています。

Salesforceにアクセス

Salesforce テストとは何ですか?

Salesforceの優れた点の1つは、ほとんどの標準機能を企業のニーズに合わせてカスタマイズできることです。Salesforceテストとは、Apexクラス、Lightning Webコンポーネント、フロー、プロセスビルダー、統合など、標準のSFDCで行われた設定とカスタマイズを検証することです。

SalesForceのテスト

課題は、テスターがカスタマイズされたコードをチェックしていることを確実にし、Salesforceが既に信頼とリリースのパイプラインでカバーしている組み込みのSalesforce機能をチェックしていないことを確認することです。

Salesforce CRMは、プラットフォーム言語に基づいて構築されています。 ApexフロントエンドにはLightning Web Components(LWC)が採用されています。プラットフォームには組み込みの単体テストフレームワークが付属しているため、開発者はデプロイ前にコードを検証できます。

Salesforce テストを行う理由

Salesforceのテストが必要だと考える主な理由は以下のとおりです。

  • サンドボックスを更新するたびに、構成とApexコードが正しく機能していることを確認します。
  • これは、完成したシステムが顧客のビジネスプロセスをエンドツーエンドでサポートしていることを検証するものです。
  • これは、初期構築が稼働開始前に合意された要件を満たしていることを確認するものです。
  • 問題が早期に発見され、簡単かつ安価に解決できる。
  • テストケースのステータスに基づいた機能フローレポートは、チームがアプリケーションの機能をマッピングするのに役立ちます。
  • フロービルダーとプロセスビルダーの機能は、動作条件と動作について検証できます。
  • ワークフローを使用すると、エスカレーションルールなどの時間ベースのイベントの機能性を検証できます。

Salesforce の用語

  • ライトニング体験: 現在のSalesforceのデフォルトUIはLightning Web Componentsに基づいて構築されています。Salesforce Classicは段階的に廃止されつつあり、ほとんどの組織がLightningに移行しています。
  • Visualforce: HTMLに似たタグベースのマークアップ言語を使用してカスタムUIを構築するための従来型のフレームワークで、古いカスタマイズについては引き続きサポートされています。
  • AppExchange: Salesforceのオンラインマーケットプレイス。ユーザーはここでカスタムアプリケーションや拡張機能を見つけてインストールできます。
  • 頂点: Salesforceプラットフォーム上でフロー制御およびトランザクション制御ステートメントを実行するために使用される、厳密な型付けを持つオブジェクト指向言語。
  • アインシュタイン1プラットフォーム/エージェントフォース: SalesforceのAIレイヤーは、予測機能、生成機能、および自律型エージェントのためのものであり、QAによる検証も必要となる。

Salesforce テストの種類

手動テスト

手動ソフトウェアテストは、従来の手法を用いてSalesforce.comアプリを対象とします。QAチームは、手動テストを使用して、Lightning ExperienceとSalesforce Mobileの両方で、機能テスト、正常系テスト、統合テスト、回帰テスト、システムテストを実行できます。

自動テスト

自動テストでは、プログラムを使用してSalesforce.comまたはForce.comアプリをテストします。一般的な自動化ツールには以下のようなものがあります。 Selenium、Provar、Copado ロボット テスト、 Tricentis Salesforce向けテスト自動化ツール、Testsigma。最新のテストスタックでは、Lightning DOMの変更に対応するため、AIを活用した自己修復型ロケーターがますます追加されています。

Salesforce でのテストのレベル

このSalesforceテストチュートリアルでは、通常、以下のレベルが適用されます。

Salesforce でのテストのレベル

単体テスト

  • Apex開発者が、自身のクラスやトリガーをテストするテストメソッドを作成し、実施します。
  • 対象となる環境でコードが確実に動作するように、影響を受けるデータレコードの数を評価します。
  • Apexコードを本番環境にデプロイするには、コード全体のカバレッジが75%以上である必要があり、各トリガーのカバレッジも1%以上である必要があります。

システムテスト:

  • Salesforceコンサルタントのチームによって実施されました。
  • システムの技術的なプロセスを最初から最後までテストします。
  • 特定の期待される出力に基づいたテストスクリプトを使用します。
  • ワークフロー、検証、割り当て、承認プロセスなどの自動化されたルールに関するトラブルシューティングを行います。

UAT テスト:

  • アプリケーションを日常的に使用するビジネスユーザーによって実施されました。
  • システムがビジネスプロセスをサポートする能力をテストします。
  • 実際のビジネスシナリオに基づいたテストスクリプトに従います。
  • 望ましい成果は、システムが目的に適していることを顧客から承認してもらうことである。

生産テスト:

  • 本番環境でのシステムテストの再実施。
  • 設定ファイルとコードがサンドボックス環境から本番環境に正しくデプロイされているかどうかを確認します。
  • ローンチ前に時間があれば、クライアントはデプロイ後にUATスクリプトを再度実行する必要があります。

回帰試験:

  • の主な目標 回帰試験 新しいリリースが既存のユーザープロセスに影響を与えるかどうかを判断することです。
  • この機能は、機能強化、バグ修正、またはSalesforceの季節リリース(春、夏、冬)のたびに実行されます。
  • ユーザーは、現在のプロセスに影響を与える可能性のある変更点のリストを提供し、影響を受けるフローを再検証できるようにします。

Salesforceのテストプロセス

Salesforceのテストプロセスは、他のWebベースアプリケーションのテストと似ています。テスターは、プロジェクト中に構築されたカスタマイズ可能な機能について明確な理解を持つ必要があり、Salesforceの組み込み機能ではなく、カスタマイズされたコードに焦点を当てる必要があります。

開発者とテスターは、それぞれの目的に合わせてサンドボックス環境(開発者、開発者プロ、部分コピー、完全コピー)を使用する必要があります。サンドボックスでテストされたコードは、変更セット、Salesforce DX、またはCopadoやGearsetなどのDevOpsツールを通じて本番環境に展開されます。QAテスターは、プロジェクトに参加する前にSalesforceのコア用語を理解していることが前提となります。

Salesforce テストの課題

Salesforceのテストは容易なプロセスではありません。テスターは以下のような多くの課題に直面します。

  • Lightning Web Components、Visualforce、Service Cloud Console、Experience Cloudサイトなどの高度な機能をテストするのは複雑です。
  • チームは、Lightning ExperienceやSalesforceモバイルアプリ向けに、従来のClassicテストを再作成またはリファクタリングする必要が生じることがよくあります。
  • 一部の標準機能は、使用されていない場合でも削除できません。
  • サンドボックスが更新されたり、シーズンリリースが配信されたりすると、UIテストが失敗する可能性があります。
  • 自動テストは、すべてのサンドボックス環境で一貫して実行される必要がある。
  • Salesforceの要素IDは組織ごとに異なり、リリースごとに変更されるため、安定したフィールドロケーターを構築するのは困難です。
  • アインシュタインの予測やエージェントフォースのエージェントといったAI機能を検証するには、データ駆動型およびプロンプト駆動型の新たなアプローチが必要となる。

Salesforce テストのベストプラクティス

  • 実際のユーザープロファイルと権限セットを使用してテストを実行します。
  • レポートとダッシュボードの機能を検証するためのテストデータを準備してください。
  • リリースサイクルごとに、機能テスト、UIテスト、回帰テスト、システム統合テストを組み合わせる。
  • Lightning および Visualforce ページは動的な性質を持つため、要素が同時に読み込まれない場合があることに特に注意し、明示的な待機処理を使用してください。
  • 自動化は次のようなツールで実行する必要があります。 Seleniumプロバー、 TricentisまたはTestsigmaと、自己修復機能付きロケーターを組み合わせたもの。
  • すべてのテストシナリオにおいて、正のフローと負のフローの両方を網羅する。
  • テストデータ内でユーザーの役割、プロファイル、および権限セットを作成し、各ペルソナに対してワークフローを検証できるようにします。

Salesforce テスターの役割と責任

Salesforceテスターの重要な役割と責任には、以下のものが含まれます。

  • 主要な機能がすべて要件どおりに動作することを確認するために、動作確認テストを実施する。
  • 肯定的なテストシナリオと否定的なテストシナリオの両方を作成する。
  • 同値分割と境界値分析を実行する。
  • アプリケーションを操作してその機能を理解し、機能的なマップを作成する。
  • 開発チームとの円滑なコミュニケーションを維持する。
  • Salesforce組織向けに構築されたカスタマイズ可能な機能を理解する。
  • 役割に基づいたテストケースを実行し、データの一貫性を確保する。
  • Salesforceとサードパーティ製アプリケーションを統合する際に、互換性テストを実施する。
  • 負荷テストツールに精通している JMeter 矛盾した結果を返す可能性のある複雑なフローを検証するため。
  • Apex、SOQL、およびLightningコンポーネントに関する実務知識。

Salesforceのテスト自動化ツール

Salesforceにおける自動機能テストの実施は、テストページのほとんどが動的であるため困難です。テスターは、現在有効であり、将来のリリースにも対応できる堅牢な自動化フレームワークを構築する必要があります。

以下に、私が推奨する広く使用されている Salesforce テスト ツールをリストします。

1) Tricentis Salesforce のテスト自動化

特に感謝しているのは、 Tricentis Salesforce のテスト自動化 Salesforce環境向けの堅牢なUIテストの開発を加速します。そのスマートロケーターはAIを搭載し、自動的に自己修復および改善を行うことで、メンテナンスを最小限に抑え、Lightningリリース全体にわたってテストの安定性を確保します。

Tricentis

機能と特徴:

  • エンドツーエンドのシナリオ検証: 顧客は、自社のWebアプリケーションからSalesforce、そしてSalesforceからWebアプリケーションへと続く、エンドツーエンドの完全なシナリオを検証できます。
  • アジャイルチームのスケーラビリティ: 多様なスキルセットを持つアジャイルチームは、テストとチームの成長を制御・管理するのに役立つ機能を活用することで、テスト業務を効率的に拡張できます。
  • Apex Code 検証のための実行: テストステップで Apex コードを実行して、クエリ結果を検証します。
  • API テストの統合: APIテストをUIフローとシームレスに統合します。

ロケーション選択 Tricentis >>


2) テストシグマ

テストシグマ SalesforceのテストをApexやコードレスで簡単に行えるコードレステスト自動化プラットフォームです。 Selenium 専門知識。特に、変更やデプロイ後に標準およびカスタムのSalesforce構成を検証するチームにとって、その直感的なテスト設計アプローチは非常に効果的であり、従来のスクリプトフレームワークの複雑さを排除できることがわかりました。

テストシグマ

機能と特徴:

  • CodeSalesforce UI Flows の自動化を減らす: Apex を書かずに、平易な英語のような手順を使用して Salesforce テストを構築します。 Selenium コード。私はこのコードを使って、様々な技術的バックグラウンドを持つチームメンバーのオンボーディングを行ってきました。
  • カスタム オブジェクトとワークフローのテスト: カスタムオブジェクト、ワークフロー、および統合のテストに関する包括的なサポート。これにより、プラットフォームのアップデート後も組織固有の設定が正しく機能することを確認できました。
  • データ駆動型テスト機能: さまざまなユーザーロール、プロファイル、データセットを体系的にテストしてください。これは、さまざまな権限レベルにおける動作を検証する上で非常に役立つことがわかりました。
  • エンドツーエンドのシナリオカバレッジ: Salesforceに加えて外部アプリケーションやAPIを含む、包括的なエンドツーエンドのシナリオをサポートします。
  • 詳細なレポートとデバッグログ: Salesforceの変更によって発生した問題を迅速に特定するための包括的なレポートとログを生成します。

Testsigma を訪問 >>

14日間の無料トライアル

Salesforce テストツールを使用する理由

  • これらは、テスト時間を最大75%削減し、自動化コストのかなりの部分を削減するのに役立ちます。
  • これらは、より優れたApexテスト実行、詳細なテストカバレッジ、およびクラスカバレッジレポートを提供します。
  • 次のような業界をリードする自動化ツールを活用できます。 Selenium (NAIST) および JMeter.
  • さまざまな環境や複数のブラウザに対応したテストシナリオを自動生成します。
  • テストケースをシームレスに記録・再生できます。
  • あらゆる種類の導入前および導入後のタスクを自動化します。
  • テストスクリプトからデータを分離し、複数のデータセットでデータを補強する。

Salesforce テスト シナリオのサンプル

  • テストケース01: 見込み客または顧客の連絡先情報を取得する。
  • テストケース02: 連絡先は、アクティブまたは非アクティブとしてマークできます。
  • テストケース03: 企業は顧客または見込み客として分類される。
  • テストケース04: 見込み客情報は、ウェブフォームを通じて収集できます。
  • テストケース05: 見積書の価格はゼロであってはなりません。
  • テストケース06: 取引が成立するとメールが送信され、送信エラーとなったメールも処理されます。
  • テストケース07: サードパーティ製ソフトウェアとの連携は正常に機能します。
  • テストケース08: Billサービスは期待通りに機能しています。
  • テストケース09: 連絡先、商談、リード管理においてレコードの重複はありません。
  • テストケース10: Salesforceモバイルアプリでは、モバイルワークフローは期待どおりに動作します。
  • テストケース11: 権限のないユーザーは、ファイルや制限付き記録にアクセスすることはできません。

AIとアインシュタインはどのようにしてReshaと関係しているのかping Salesforceのテスト

AIは今やSalesforceにおける最重要テスト課題となっています。Einstein 1プラットフォームは、予測スコア、自動応答、Agentforce自律エージェントをSales CloudとService Cloudにもたらし、これらの機能それぞれに独自の検証戦略が必要です。テスターは、従来のUIフローに加え、予測精度、プロンプトの妥当性、ガードレールなどを検証するデータ駆動型のテストケースを設計する必要があります。

ツール面では、最新のSalesforce自動化フレームワークは、リリース間のLightning DOMの変更を検出し、セレクターを自動的に修復するAI搭載の自己修復ロケーターに依存しています。 TricentisProvar、Copado Robotic Testing、Testsigmaはいずれも、この機能のバリエーションを提供しています。これらを合成テストデータや視覚的な回帰チェックと組み合わせることで、メンテナンスの負担を増やすことなく、高いテストカバレッジを維持できます。

Salesforce のテスト: クライアントの課題

顧客はSalesforceのテストについて不安を感じることが多い。それは、テストを適切に実施する方法がわからないためであり、その結果、現実とはかけ離れた誤解が生じる。

ここでは、それらのいくつかは以下のとおりです。

クライアントの問題 解決策
私はSalesforceシステムの使い方がわかりません。 クライアントは、システムの機能ではなく、プロセスをテストする必要があります。
システムにすべてのデータが揃っていないと、テストはできません。 テストに必要なサンプルレコードはごくわずかです。
日々の業務で手一杯で、テストや管理に時間を割く余裕がありません。 設計・建設段階では、プロジェクトマネージャーと連絡を取り合い、定期的な進捗確認の電話会議に参加してください。

よくあるご質問

Salesforceでは、本番環境にデプロイするには、Apexコード全体のカバレッジが75%以上必要であり、各トリガーのカバレッジは最低1%でなければなりません。テストは正常に実行される必要があり、新しいコードではseeAllData=trueに依存することはできません。

新規開発のほとんどは、デフォルトのUIであるLightning Experienceを対象としています。Salesforceは多くの機能においてClassicのサポートを段階的に終了させて​​いるため、顧客組織がClassicを使い続けている場合を除き、テスト計画ではLightning Web Components、Flow、およびSalesforce Mobileを優先する必要があります。

Yes. Selenium Salesforceでは機能しますが、Lightning DOMの変動性により、純粋なXPathロケーターは脆弱になります。チームは通常、 Selenium Lightning Testing Service、カスタム待機、AI 自己修復ロケーターを使用するか、Provar などの Salesforce 固有のツールを使用します。 Tricentis.

ラベル付きデータセットを使用してEinsteinの予測を検証し、予測範囲と説明を検証します。Agentforceについては、プロンプトのグラウンディング、ガードレール、アクション呼び出し、会話フローをテストします。機能チェックとバイアス、幻覚、セキュリティレビューを組み合わせます。

Tricentis Salesforce向けテスト自動化ツールであるProvar、Copado Robotic Testing、Testsigmaはすべて、AIを活用した自己修復型ロケーターとスマートなテスト生成機能を提供しています。これらの機能は、シーズンリリース時のLightning DOMの変更を吸収し、スクリプトのメンテナンスを大幅に削減します。

開発者用サンドボックスと開発者プロ用サンドボックスにはメタデータのみが格納されます。部分コピー用サンドボックスにはサンプルデータが含まれ、完全コピー用サンドボックスには本番データとメタデータがミラーリングされます。UATおよび回帰テストには完全コピー用または部分コピー用サンドボックスを、単体テストおよび統合テストには開発者用サンドボックスを使用してください。

各スプリントのデプロイ後、Salesforceの各シーズンリリース(春、夏、冬)の前、および主要なサンドボックスの更新後に回帰テストを実行してください。コアとなる販売、サービス、および統合フローを優先し、その後、AI機能とカスタムLightningコンポーネントへとテスト範囲を拡大してください。