Overcoming Hard Problems in Software Testing with Testing as a Service
Software testing is a crucial phase of the software development lifecycle, responsible for assuring that the system under test meets quality standards, requirements, and consumer needs. Unfortunately, software testing is not without flaws. Some problems are timeless while others are brought on by new technologies and methodologies. As software systems grow in size and complexity, quality becomes significantly more difficult to ensure. With recent advancements in cloud computing, the internet’s vast and elastic resources are available for testing. Testing as a Service (TaaS) offers accessible services that handle testing activities to consumers on a pay-as-you-test basis in hopes of providing a more efficient and effective way of guaranteeing software quality. This thesis presents the top industry issues and concerns as identified through the Hard Problems in Software Testing survey, followed by a thorough overview of the current state of TaaS based on an exploration of existing commercial offerings and a survey of academic research. These problems are then examined to determine where TaaS can be applied to overcome the issue or offer improvements. The remaining shortcomings are analyzed to generate a roadmap for enhancing TaaS by addressing the hard problems plaguing the industry. The evaluation of three existing tools against academic research and the hard problems indicated by the survey revealed a gap that must be overcome before TaaS can be fully embraced by the industry. While many of the industry concerns were reduced or eliminated by TaaS tools, a few still remain. These challenges appeared the most prominent in the areas of tester education and training, and a need for better tools, including issues such as incorporating fully-automated test case generation, offering greater compatibility and extensibility for external tools, promoting more types of testing, and enhanced security.