Testing OutSystems Applications
Table of contents
- Test Automation Best Practices
- What About Test Data?
- External Testing Tools
- Improving CI/CD by including Automated Testing
OutSystems generates apps using 100% standard coding frameworks, which differentiates it from its interpreter-driven competitors .Front-ends are generated with Reactive Web or React JS, while standard web stacks are generated for the server side.
Because the OutSystems visual development approach makes it easier to understand application logic and flow, and because continuous integrity validation is built into the OutSystems platform, users will see that the number of bugs introduced is much lower compared to other technologies. While using standard industry tools for testing, there will be fewer testing and fix cycles, greatly reducing development effort, and accelerating app delivery.
However, testing is still a necessary step for any app development and there are best practices teams should be aware of when developing applications for testability.
Test Automation Best Practices
While all industry testing practices can be applied to OutSystems applications, some approaches produce better results than others. A complete set of our guidelines is available, based on many years of field experience.
Within our guidelines, customers can learn about the best practices for specific types of testing. This enables customers to start with the testing they are most comfortable with, and expand progressively to other testing practices when they are ready.
Component or Unit Testing
Component or Unit Testing allows customers to independently validate small parts of an application. This approach is particularly effective for business service components. Having a good set of unit tests for a system helps greatly when it is time to change or refactor a system, as regression testing is automated and simple.
Integration and API Testing
Integration and API Testing focus on validating that parts of an application work together. Teams can design tests ranging from the very small and simple, to large, complex test cases. This approach is particularly effective for complex systems - calculation engines for example - that are made up of many parts evolving at different speeds.
Functional (UI) Testing
Functional Testing is the practice of validating all components included in an application against its functional requirements, most frequently captured inside user stories. Testing guidelines specifically related to mobile apps are also available.
What about Test Data?
Producing realistic test data can involve significant effort so OutSystems provides a set of guidelines for managing test data. OutSystems has also partnered with external vendors to enable the copying of data from a production environment to a test environment. Please refer to the topic Does OutSystems support data migration?
External Testing Tools
Most of the testing tools available in the market can be used for unit testing, regression testing, functional (user story) testing, integration testing, and load testing.
Improving CI/CD by including Automated Tests
Test automation, when properly executed, has a material impact on the quality of the applications being developed. It requires setting up a multi-disciplinary team - commonly referred to in DevOps culture as a “Vertical Team”. Please refer to the OutSystems test automation documentation to understand how easy it is to incorporate test automation in your CI/CD pipeline.