A thorough application testing strategy is crucial to validating the functionality of your application and ensuring that it performs properly on Pega Cloud. Follow your DevOps process, including testing on each environment. These tests vary in scope as you promote changes through the Route to Live phases.
Develop a full suite of different types of tests that ensure your entire application is running properly. This document covers the types of testing that Pega recommends. Include test cases to validate application functionality, security, and performance. Also do any other testing that you think is warranted to validate your solution.
For more information, see:
- Testing Pega applications - covers testing application rules using PegaUnit, scenario testing against the UI, analyzing quality metrics, and test automation
- Testing your application - a Pega Academy module that covers unit testing rules, scenario testing, and measuring test coverage.
- Using third-party testing tools with your Pega application - an overview of testing tools
NOTE: Identify any test datasets in your source environments that are required to support testing. Include them in the Migration Project Plan.
Unit tests target the narrowest scope of all the testing in your test suites. Testing at this level is done in the development environment and allows the developer to easily assess the stability of an Object, method, or function.
Unit tests target small chunks of code to verify the logic within that code. Unit tests should not depend on anything in the environment.
PegaUnit is available for creating and managing unit tests for application rules. For more information, see Understanding unit test cases.
The overall purpose of Integration Testing is to confirm that connectivity with downstream systems is in place and that individual interfaces are working as expected. This means:
- Downstream systems are reachable
- Requests and responses are sent and received correctly
- Error handling is working as expected (when the downstream system is not accessible, and for all errors defined)
- End-to-end tests are unblocked.
Integration testing can be done in the development environment, but often integration with downstream systems is only available on QA and Staging environments. Pega strongly recommends performing integration testing with stubs if the environment does not have connectivity to downstream systems or endpoints.
Functional testing validates core features and functions of the application required to support the needs of the business. This includes areas such as user interactions, data input fields and validations, integration, workflows, screen design and layout, business process flows, and dynamic display for mobile devices.
There are several required changes when moving from running the application in your source infrastructure to running on Pega Cloud. Thoroughly test your application after you migrate to Pega Cloud to validate that all the functionality works as expected.
Include testing and validation for:
- References to other external systems – email listeners, services, connectors, and so on
- Appropriate user access to applications in the Pega Cloud environment
- Any other tests that you think are warranted.
End-to-end testing validates the end-to-end operation of the application. Functional testing validates specific features and functions, but end-to-end testing validates that the application functions as a whole.
User Acceptance Testing (UAT) is one form of end-to-end testing. End-to-end testing is also referred to as scenario testing.
Data Migration Test
Do the Data Migration Test in the staging environment. For more information, see Stage 2: Staging Migration and Validation.
Performance and Load Testing
Performance and load testing is critical to ensure that your application performs properly in production. Execute your performance tests on the production or production mirror environment. Simulate real-world usage and load as closely as possible. Review the results before the migration go/no-go decision and evaluate them against benchmarks and SLAs from your current production environment.
As a standard practice for performance testing, involve scenarios to assess the following three areas at a minimum.
- Responsiveness: Does the application perform as expected from a single user perspective as far as UI and component rendering?
- Scalability: Can the application handle increases in workload and concurrent usage on-demand? Are there any bottlenecks that occur due to transaction response times, connections to 3rd party systems, and so on?
- Reliability: Can the application handle maximum load over a sustained period of time?
For more information, see:
- Analyzing system performance
- Additional links in the Performance and Load Testing section dealing with the production environment.
Security and Vulnerability Testing
You can conduct security assessments for applications on Pega Cloud. These assessments must be preauthorized and performed within the guidelines (see referenced article below). Application-tier vulnerability scanning is allowed when you need to assess and report on the security of your cloud-delivered applications, client-directed development, and services for internal audit or compliance programs. Vulnerability testing is not required for migrating to Pega Cloud and is performed at your discretion.
For more information about guidelines and permission forms for conducting vulnerability testing, see the Vulnerability testing policy for applications on Pega Cloud.
Smoke tests are simple tests to quickly cover functionality to ensure that a newly-deployed release works. Use them in every environment.
Pega Predictive Diagnostic Cloud (PDC) is built by Pega, specifically to monitor Pega applications. It is deployed automatically on every Pega Cloud environment.
In addition to any other testing or monitoring, also monitor your application with PDC throughout the validation phases to identify any alerts and issues that arise when making changes and executing tests.
Perform a thorough review of the PDC alerts and data before signing off on the application validation for each phase. Use PDC to gauge the overall health of your applications, check performance metrics, and identify any high value improvement areas.
To mitigate the reoccurrence of any issues, investigate PDC alerts and issues as soon as possible and before moving to the next environment validation phase.
Continue to proactively monitor your application with PDC throughout the development lifecycle to identify issues before they become visible to end users, or to impact your business.
For more information, see: