Quality Assurance testing means that developers and product testers spend less time testing, as much of the testing can be simulated and automated, if the right tools are in the stack. This lowers risk and the total cost of ownership for software owners, developers and users.
TDD is a software development process that relies on creating 'test cases' before any development or deployment is undertaken. Software releases are then undertaken with tests running within the release process, against these test cases.
Blaze infrastructure also allows developers working within the Blaze framework to add and manage tests and testing within the release process, to easily follow a test-driven approach too.
Within the Blaze framework, testing can be broken down into 4 main areas; Code Linting, Unit Testing, Functional Testing and QA testing.
1 - Code Linting
2 - Unit Testing
Each area of functionality has a Test Suite created using Jest where we aim for 100% coverage across all code. When creating unit tests, we mock the data in order to have lots of efficient tests that resemble real-world usage of the code. We have Unit test covererage of the code monitored overtime so can track trends, using CodeCov. Blaze overall unit test coverage currently sits at 82% and comprises of over 5,000 unique tests. Once unit tests pass, we move onto Functional testing.
3 - Functional Testing
Where we use Integration testing in the form of Puppeteer & Jest Snapshots in order to check services are responding in the expected way and format. After this is complete the CI / CD platform moves onto the User Interface (UI) Regression Resting.
4 - Visual/UI Regression Testing
At this stage we programmatically compare and store snapshots of pages before and after to look for breaking User Interface changes in modern web browsers using Playwright, which simulates interfaces loading and records any discrepancies.
What are the benefits of this test-strategy for Blaze users?
Byte9's ingrained test-driven approach will provide best practice testing methodologies to any development overseen by, or undertaken with Blaze, by any developers. This will help improve the quality of software and maintain the operational efficiencies between systems, as functional changes are made by any developers.
Blaze provides an increasingly, performant, scalable, secure and robust platform for data and media handling and presentation within and between systems in the digital ecosystem.