Robustness Inside Out Testing

Robustness testing is an important technique to reveal defects and vulnerabilities in software, especially software for Unmanned Autonomous Systems (UAS). We present Robustness Inside Out Testing (RIOT) as a technique directed at finding failures in autonomy systems that are able to be activated from external interfaces. The technique consists of four main steps: unit-level robustness testing, generalization, permeability analysis, and activation. Each of these steps yields a valuable deliverable in the testing process, and, when applied in succession, expands a unit-level bug to an external interface. RIOT has the following advantages over traditional robustness testing: it finds faults faster, it can find faults missed by traditional approaches, it identifies faults that can be triggered from inputs at an external interface, and it produces useful artifacts to aid in fault diagnosis and repair. In this paper, we outline each step of the RIOT process and provide an example of RIOT finding a bug on a real system that would not have been discovered using existing techniques.

[1]  Chupoo Alafonté,et al.  Yesterday , 2023, Calabash. A journal of Caribbean arts and letters.

[2]  Philip Koopman,et al.  Interface Robustness Testing: Experience and Lessons Learned from the Ballista Project , 2008 .

[3]  Charles Pecheur Verification and Validation of Autonomy Software at NASA , 2000 .

[4]  Hoang-Nam Chu Test and evaluation of the robustness of the functional layer of an autonomous robot , 2011 .

[5]  Robin R. Murphy,et al.  How UGVs physically fail in the field , 2005, IEEE Transactions on Robotics.

[6]  Johannes F. Broenink,et al.  Simulation, Modeling, and Programming for Autonomous Robots , 2014, Lecture Notes in Computer Science.

[7]  Philip Koopman,et al.  Learning product set models of fault triggers in high-dimensional software interfaces , 2015, 2015 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).

[8]  Andreas Zeller,et al.  Yesterday, my program worked. Today, it does not. Why? , 1999, ESEC/FSE-7.

[9]  Daniel P. Siewiorek,et al.  Automated robustness testing of off-the-shelf software components , 1998, Digest of Papers. Twenty-Eighth Annual International Symposium on Fault-Tolerant Computing (Cat. No.98CB36224).

[10]  Philip Koopman,et al.  Robustness Testing of Autonomy Software , 2017, 2018 IEEE/ACM 40th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP).

[11]  Standard Glossary of Software Engineering Terminology , 1990 .

[12]  Heinz Wörn,et al.  Robot Unit Testing , 2014, SIMPAR.

[13]  W. Marsden I and J , 2012 .