We expect software to work. Slow mobile apps and buggy website functionality are unacceptable, given that two-thirds of us do our banking from a mobile app and a quarter of the workforce logs in from their home office. Low-quality, poorly designed software can undermine operational efficiency, create security vulnerabilities, and contribute to customer attrition.
One morning, you realize you have a great idea for an API. You discuss it with your team, then start building out the business case and technical requirements. Where do you go from there? You could write out the business requirements for the API and then code it. Or you could describe your API in a specification language, like OpenAPI, and use that definition to improve your team's understanding of the API and do some early testing. But are either of these the best solution?
Comprehensive software testing has never been more important than it is today. Software will continue to play an essential role in our daily lives. What is changing – and will continue to change – is what we test and how we test it. Modern software codebases are immensely complex. It’s simply not feasible to execute all of the necessary test cases manually. The bulk of testing today is automated.