テスティングのベストプラクティス
概要
Pegaを最大限に活用し、out-of-the-boxツールやベストプラクティスを使って、すばやく徹底的にテストを実施しましょう。
詳細(ビデオ)
テストはどのプロジェクトでも重要です。Pegaの目標は、機能する高品質なシステムを、可能な限り最もシンプルで最も迅速な方法で実現することです。
これは、通常のテストアプローチを改善して簡素化するツールやプロセスを用意することで実現できます。このモジュールでは、次の6つのベストプラクティスについて掘り下げます。
- テストを早期に頻繁に繰り返し、常に実行する – ウォーターフォール型プロジェクトのようにテストを最後に取っておくのではなく、テストは各スプリントの中で、開発と同時に行う必要があります。スプリント開発は、コードのテストが実施されて合格するまでは完了しません。それによってその問題が将来繰り返されないことを保証します。また、回帰スクリプトを作成してメンテナンスするのにも役立ちます。
- 業務部門のエキスパートが参加する – 業務部門の人が開発チームの一員として参加し、機能するソフトウェアの迅速な開発を支援します。開発されたものを早い段階で確認することでビジネスに役立ちます。単に要件を満たすだけではありません。
- 変更された機能に対する手動テストに集中する - Pegaでのテストは、モデル駆動型アプローチによって裏付けられています。このアプローチでは、十分にテストしたソフトウェアを再利用するため、新機能のテストにのみ集中できます。
- Pegaのテスト計画を作成する – 開発とテストの順序についてのガイダンスを参考にして、ビジネス上のメリットを実現する完全にテスト済みのカスタマージャーニーで本番稼動を速やかに開始できます。
- Pegaの組み込みツールを使用する - Application Quality Dashboardなどのツールが、ガードレールスコアやテストの対象範囲を含め、アプリケーションの健全性について総合的なビューを提供するため、潜在的な問題を未然に特定できます。
- 自動化されたテストスクリプトを作成する - Pega Platform™では、稼動を保ちながら動作テストを自動化できる組み込みの機能を提供します。画面が変更された場合でも、最小限の労力で回帰テストを実行できます。Pega Platformでは、アプリケーションのテストでの焦点を、膨大なスクリプトドキュメントを作成することではなく、テストの実行へと合わせることができます。
これらの各原則について詳しく説明します。まずは、最初のアクセラレーターであるテストを早期に頻繁に繰り返し、常に実行することから始めます。
テストを早期に頻繁に繰り返し、常に実行することで、小さな問題が雪だるま式にふくれ上がって重大な不具合になる前に発見できます。不具合を発見して修正するタイミングがプロジェクトフェーズ1つ分遅れると、コストは10倍に増えます。不具合をできるだけ早く発見することで、時間面でもコスト面でもメリットがあります。テストをプロジェクトライフサイクルのできるだけ早い時期、つまり左側に移動させるため、これをシフトレフトといいます。
Pegaアプリケーションのテストは、すぐに使えるout-of-the-boxの強力なプロセスとツールを使用して、簡単かつシンプルに実行できます。Pegaのアプローチによって、テストをすばやく徹底的に行えるようになります。テストサイクルの早い段階で問題を発見することで、プロジェクトライフサイクル全体で繰り返すことができるテストの基盤を作れます。
プロジェクトライフサイクル全体で早期に継続的に適切なテストを実施する習慣を用いるためのもう1つの方法は、システムアーキテクトが完了の定義を作成してそれに従うことです。
これは、デベロッパーの良い習慣のリストとなる、完了の定義の例です。必要に応じてプロジェクトに合わせて調整できる、標準のPegaバージョンがあります。最も重要なことは、正式な完了の定義を設けることです。
テストと検証は開発にとって、とても重要です。完了の定義にリストアップされている開発者の12の習慣のうち3分の1はそれに関係します。
作成したコードを単体テストしておらず、それに従うためのPegaUnitスクリプトを作成していない場合、コードは完成せず、デベロッパーの仕事は完了しません。このスクリプトは、後で回帰テストに使用されます。
2つ目のPegaのテストアクセラレーターは、業務部門のエキスパートにテストに参加してもらうことです。
開発だけでなく、プロジェクトの最初から業務部門の人をスクラムテスターとしてスクラムチームに組み込むことが重要です。業務部門のエキスパートは、問題をすばやく特定でき、アプリケーションがビジネス上の成果を満たしているかどうかを的確に把握できます。ビジネスプロセスについて詳しい知識があるため理想的なテスターです。
ビジネスユーザーに参加してもらうことで、早期の導入も推進できます。アプリケーションの本番稼動が始まる前にユーザーがアクセスできるようにすると、習熟度が高まります。 また、それらのユーザーが自然に支持者となり、他の同僚に勧めてくれます。
プロジェクトの最初からビジネスユーザーに参加してもらい、チームにおいて欠くことのできない一員にしましょう。
3つ目のPegaのテストアクセラレーターは、変更された機能に集中することです。
手動のテストは時間がとてもかかります。効率化するために、手動テストではアプリケーションの中で変更した部分と新機能の部分に集中するようにします。現在のスプリントで変更していないことや影響がなかったことは手動で再テストする必要はありません。
すべての問題が解決され、テストに合格したら、PegaUnitなどPegaのツールのいずれかを使って自動テストのセットを作成し、それらのテストを自動回帰テストスイートに組み込みます。このテストスイートは自動的に実行されるようにスケジュール設定できます。こうすることで、そのスプリントに新しい問題が入り込んでいないことが保証されます。
次に、ビジネス上のメリットを実現する、十分にテストされた一連のマイクロジャーニーの本番稼動を速やかに開始するには、開発してテストする順序について明確なガイダンスが必要です。
いつも浮かぶ質問は、テストを効果的で効率的なものにするためにはどのように整理したらよいか、ということです。 Pegaは、マイクロジャーニー中心のアプローチを提供すると同時にそれらの目標を達成できるシンプルなテスト計画をデザインしました。 このプランでは、テストの対象範囲が包括的であることを確認するとともに、まったく異なる機能要素や汎用的なテスト対象範囲の統計ではなく、ビジネス上の成果という観点でテストのステータスをレポートできます。
Pegaのテスト計画を作成するのはとてもシンプルです。 すべてのマイクロジャーニーを簡単に特定して完全にテストできるように、始めに6列の表を作成します。
1列目には、住宅ローンの借り入れなどのマイクロジャーニーをリストアップします。その次の列で、基本的なPegaの構成要素である各マイクロジャーニーのサブケースをリストアップします。次に、その後続の列で、それをさらに各マイクロジャーニーのステージ、ペルソナ、チャネル、インターフェイス別に分解します。
これが完了したら、次の例に示すような各マイクロジャーニーの表ができあがるはずです。 表の各行は、そのマイクロジャーニーのすべての成果がテストされていることを保証する、マイクロジャーニーのテストパスを表しています。
このアプローチでは、業務部門の利害関係者が理解できる用語で、アプリケーションの健全性を報告できます。 ランダムな機能について報告するのではなく、顧客の特定のマイクロジャーニーとビジネス上の成果について、そのジャーニーをどのくらいテストしたのか、どのパスが合格したのか、どのパスに問題があったのかを報告します。 業務部門の利害関係者は、報告が自分の理解できる用語と形式で書かれているため、何がうまくいって、何がうまくいかなかったのかを明確に把握できます。
このテスト計画が良好に機能するかどうかは、受け入れ条件によって左右されます。 クライアントが、知識が豊富でソリューションに関する意思決定を自己判断で行える権限を持った、プロジェクトに積極的に関与できるプロダクトオーナーを用意することが重要です。包括的で正確な受け入れ条件を書面にまとめることができる人です。
よくまとめられた受け入れ条件には次の特徴があります。 条件は次のようになっている必要があります。
- 期待される結果が明確に定義されており、テスト可能、および
- あいまいではなく、明確で簡潔
Pegaは、アプリケーションの検証を支援する、Pega Platformにネイティブなツールも提供しています。
Application Quality Dashboardは、アプリケーションの健全性について、ガードレール、テストの対象範囲、単体テスト、シナリオテストに関する4つのデフォルトのタイルを持つ総合的なビューを提供します。 各タイルにはサマリー情報が表示され、ドリルダウンして詳細を確認できます。
ダッシュボードは追加のカスタムタイルをサポートするように簡単に拡張できます。
また、Pegaは継続的インテグレーションと継続的デリバリーのパイプラインをサポートする広範なツールを備えたDevOps機能も提供しています。
- Deployment Managerは組み込みのDevOps機能をユーザーに提供する、シンプルで直感的な、すぐに使えるアプリケーションです。
- Deployment ManagerはPegaの業界最先端のケースマネジメントテクノロジーを活用して、自動化されたオーケストレーションエンジンを管理します。これを利用することで、 モデル駆動型 の手法で継続的インテグレーションと継続的デリバリー(CI/CD)のパイプラインを構築して実行できます。
- ボタンをクリックすると、アプリケーションのアップデートを含むデプロイメントを実行できます。JenkinsやBambooなどサードパーティのオートメーションサービスを使用する必要はありません。完全に自動化されたパイプラインによって、エンドユーザーに価値を提供するまでの期間が大幅に短縮されます。
- Deployment Managerは継続的インテグレーション、継続的デリバリー、テストの実行、レポート、診断、手動承認、デプロイのキャンセル、変更のロールバック、ロールと権限、通知をサポートしています。
- Deployment Managerから、ガードレールコンプライアンスを測定して、PegaUnitテストとシナリオテストを実行し、テストの対象範囲を検証できます。
Pegaは、Pegaとサードパーティのツールの両方にネイティブな自動テストスクリプトの作成および管理を行うさまざまなツールをサポートしています。
Pegaやその他の業種別ソリューションの機能を使用して、テストピラミッドを構築します。
- 多数の単体テストを作成します。
- 強固な基盤を構成します。 PegaUnitテストフレームワークでは、Pega開発環境内で特定のタイプのルールの単体テストが可能になるため、アプリケーションデベロッパーがルールを定めるときに単体テストを作成できます。
- APIベースの機能テストを作成します。PegaAPIでは、UIを経由せずに、基盤となるロジックを検証するテストを記述できるため、常にUIのデザインの見直しを行っている場合に便利です。
- 特定のエンドツーエンドのユースケースが想定どおりに機能することを検証するシナリオテストを作成します。 PegaScenarioでは、自動テストをサポートするUIルールの一意のテストIDプロパティを活用するため、任意のPegaアプリケーションに対する信頼性の高い自動化されたUIベースのテストを記述できます。
- Pegaは、テストピラミッドの構成要素をサポートするプラットフォームにネイティブなツールを備えています。 業界標準の多くのツールも使用できますが、Pegaアプリケーションをテストする場合、通常はPegaのツールが最適なオプションです。
なぜオートメーションがそれほど重要なのでしょうか。 オートメーションの目的は、品質と再現性を高めることです。
PegaUnitランディングページで作成されたすべてのPegaUnitテストを表示・管理できます。 テストのリストをフィルタリングして、実行するテストを選択し、結果を表示して詳細に分析できます。<話しながらゆっくりクリック>
- 単体テストは、あらゆるソフトウェア開発手法において最初のレベルのテストです。
- PegaUnitsは「ルール」に対して作成されます。ルールとは、Pegaアプリケーションのテスト可能な最小単位の部品です。
- システムアーキテクトが最初にルールを手動でテストし、そのルールを自動テストに変換して、後で実行できるようにします。
- 包括的な単体テストによって、コードの変更やメンテナンスを行う際の信頼感が高まり、不具合を早い段階で捕らえて開発をスピードアップできます。
- シナリオテストと機能UIテストは、従来はSeleniumやRspecsなどのサードパーティのツールで記述されており、設定とメンテナンスが複雑でした。
- PegaScenarioは、アプリケーションのUIテストを自動化するPegaのモデル駆動型テクノロジーです。
- このテクノロジーはシンプルかつ直感的で、すぐに使えます。ユーザーは複雑なコードを記述することではなく、機能の効果的なテストを作成することに集中できます。
- PegaScenarioは次に対するサポートも含め、幅広いUIをサポートしています。
- out-of-the-boxコントロール、レイアウト、リスト
- カスタムコントロール
- ページ間ナビゲーションとローカルアクション
- ダイナミックデータ
- テストケースの実行をリモートで呼び出すためのRESTサービス
このアプリケーションのUIを使用して、次のシンプルな手順でシナリオテストを簡単に作成できます。
- テストする特定のケースタイプまたはポータル全体を選択
- テストするシナリオを一通り実施
- テストの名前、説明、コンテキストを入力
- テストをテストオートメーションルールセットに保存
- 保存したシナリオテストを「Scenario Test」パネルから実行し、不具合があればデバッグする
自動化されたスクリプトがDeployment Managerおよびデプロイメントプロセスに組み込まれます。 テスト、ブランチの移行、本番環境への昇格の一貫性のレベルを提供するDevOpsメソドロジーに合わせて、昇格先がステージング環境、本番環境、あるいは任意の環境のいずれであっても、品質と一貫性を確保するように自動プロセスを保護します。
自動化されたスクリプトには、スプリント内で実施する回帰テストよりも多くのメリットがあります。 自動化されたスクリプトはDeployment Managerおよびデプロイメントプロセスに組み込まれます。
テストは重要です。Pegaは通常のテストアプローチをサポートして簡素化するさまざまなツールとプロセスを提供しており、より早い、より良い、より簡単なエクスペリエンスを実現します。
次の問題に答えて、理解度をチェックしましょう。