Robotic vehicles are hardware-software systems. These systems combine hardware capabilities with software driven operations. The significant need for verification and validation of the software used to operate robotic vehicles is well recognized. Due to the labor-intensive procedures, typically half of the entire software development lifecycle cost originates from testing efforts, while retesting software after upgrades accounts for eighty percent of the entire maintenance cost. In this paper an overview of methods for automated software testing based on fuzzing techniques and evolutionary optimization methods are discussed first. Then the main elements of a new unsupervised software testing approach are presented. The term “unsupervised” indicates expecting minimal human effort in defining test cases and expected outcomes. This is achieved by using a Genetic Algorithm (GA) for determining the most effective artificial changes introduced in the data flow of the software that is being tested in order to generate errors. An error metric that accounts for unexpected error termination, inactivity and instabilities in the outcome (large deviations from small variations in the data flow) is established. The GA makes selections in order to increase the error metric while at the same time investigate a wide range of variations in the data flow. An interceptor code and a code for monitoring the error metric evaluation are placed within the software system which is tested. The former intercepts the data flow, alters the data flow based on the instructions provided by the GA and publishes the altered data flow. The monitoring code identifies successful termination, inactivity, excessive run time, unexpected termination and instabilities in the outcome. It uses this information for evaluating the error metric that the GA utilizes for determining the next round of artificial alterations. The public domain autoware universe software system for operating autonomous vehicles is used for demonstrating how the new software testing process works.
Keywords
AGILE SOFTWARE DEVELOPMENT;AUTOMATION;AUTONOMY;TESTING
Additional Keywords