As we enter a new decade of technological advancements, Jama Software asked select thought leaders from various industries for the trends and events they foresee unfolding over the next 10 years.
Jama Software: What are the biggest trends you’re seeing in software testing and how are they impacting product development?
Ricardo Camacho: I’m seeing a continued trend in the embracing of test automation. Not just to keep pace with the adoption and refinement in DevOps and Agile practices, but also due to increasing demands in software safety and security which is of great concern in today’s world. Each industry has different challenges, so different needs or focuses in test automation solutions are being sought.
One example of this is in the automotive industry, and particularly in the Advanced Driver-Assistance Systems (ADAS) – a prime example of a complex and evolutionary type of system. Here you have development of advanced magnetics position sensor in the electronic power steering application, and there are other sensors like speed, inertial, and image which factor into that ecosystem.
These systems are also distributed systems and the components are being provided by different suppliers with different software stacks, using different software development methodologies made up of millions of lines of code. Test automation by way of adhering to a common coding standard for product development for all suppliers establishes a standard platform. In other words, a universal software development platform for vehicle software across all suppliers that address safety, security, and defect-free product goals. Not only have some automotive companies developed their own coding standards to enforce this, but we also see it by the movement and merger of MISRA and the AUTOSAR industry standards.
JS: Are there any technological advancements that you are seeing in software testing
RC: I’m seeing the emerging use of Artificial intelligence (AI) and machine learning for software testing, which continues to evolve and will make an enormous impact. Today, in most organizations, thousands of test cases are created, many are redundant, and some have defects. Also, test scripts are not intelligent enough to determine state conditions of the system under test, so sleep or wait instructions need to be added to properly fulfill testing needs. The interdependencies between test scripts further adds more complexity which tends to cause test failures and script changes. Furthermore, some testing continues to require human interaction, or visual inspection, which makes it error prone. So, AI is the next evolutionary step in software testing.
Artificial intelligence provides many efficiencies and fills many of the missing gaps in software testing. One of the biggest impacts will be through spidering. Where the AI will crawl the application, collecting data and even taking screen shots to learn about the expected behavior of the application. The AI can then compare future runs to known patterns, exposing deviations quickly. AI similarly addresses Application Program Interface (API) testing by recording and mocking responses which significantly reduces the time it takes to perform API testing. Additionally, AI is not limited to just text comparisons in validation. AI can validate all types of data (e.g. video, audio, images).
Therefore, with AI’s help, more robust and reliable test cases are produced and in less time. AI improves test coverage, accuracy, and provides superior insight into the health of the application. AI is bringing a transformation in software testing and it’s here in the horizon. Thus, 2020 will bring forward these types of needed solutions.