Software testing is an approach to ensure software is made with the highest reliability possible. Non-functional testing is testing of the software not related to the system itself. It is done after Functional testing have taken place.
Its common to use automation tools to perform these test in areas to improve the performance of the software, ensure high-security levels, make the software more user-friendly, usability and help the software compliance with customer needs. Sometimes, its compatibility with other systems and previous versions are also measured.
Examples of test
Load testing, Stress testing, Accessibility testing
Metrics are created for non-functional in order to be successful, example response time, speed of the software itself, and load time. It depends on the investment on the software, where the amount and categories of testing will be determined. It would be good to have testing in all categories, but resources, cost and time always limits its implementation.
Broad category of testing
- Stress Test
- Volume Test
- Maintainability Test
- Security Test
- Scalability Test
- Failover Test
- Usability Test
- Configuration Test
- Load Test
Continuous integration (CI) is an approach where developers regularly merge their code changes into a central repository, after which automated builds and tests are run. It is common to use containers to perform such test.
Common tools for non-functional testing (Affordable ones)
- Apache JMeter,
- Selenium
- Nessus Essentials
- New Relic
- SonarQube