Testing Software and Systems

Debugging comprises the activities of fault detection, localization, and correction, which we usually consider to be carried out separately during program development. In testing and here in particular automated test case generation, the question is more on how to generate effective tests that most likely reveal bugs instead of how such tests might help to locate and fix a bug once revealed. In this talk I discuss the relationship between testing and fault localization. Besides giving an introduction into the current state of the art in debugging, I introduce a method for computing tests in order to facilitate debugging. The key idea behind the method is to construct test cases that allow distinguishing bug candidates. In the talk I introduce the basic ideas, empirical results obtained, and focus also on current research questions that has to be tackled in order to further increase automation in fault localization

[1]  S. Seshu,et al.  Introduction to the theory of finite-state machines , 1963 .

[2]  Hasan Ural,et al.  Optimal length test sequence generation using distinguishing sequences , 1993, TNET.

[3]  F. C. Hennie Fault detecting experiments for sequential circuits , 1964, SWCT.

[4]  Krishan K. Sabnani,et al.  A Protocol Test Generation Procedure , 1988, Comput. Networks.

[5]  Robert M. Hierons,et al.  Reduced Length Checking Sequences , 2002, IEEE Trans. Computers.

[6]  Tevfik Bultan,et al.  Verifiable concurrent programming using concurrency controllers , 2004 .

[7]  Hasan Ural,et al.  Lower bounds on lengths of checking sequences , 2009, Formal Aspects of Computing.

[8]  Pavol Cerný,et al.  Synthesis of interface specifications for Java classes , 2005, POPL '05.

[9]  Nina Yevtushenko,et al.  Testing from partial deterministic FSM specifications , 2005, IEEE Transactions on Computers.

[10]  M. N. Sokolovskii Diagnostic experiments with automata , 1971, Cybernetics.

[11]  R. T. Boute Distinguishing Sets for Optimal State Identification in Checking Experiments , 1974, IEEE Transactions on Computers.

[12]  Niraj K. Jha,et al.  Switching and Finite Automata Theory: Finite-state recognizers , 2009 .

[13]  Irith Pomeranz,et al.  Test generation for multiple state-table faults in finite-state machines , 1995, Proceedings of ICCD '95 International Conference on Computer Design. VLSI in Computers and Processors.

[14]  Uraz Cengiz Türker,et al.  Hardness and inapproximability of minimizing adaptive distinguishing sequences , 2014, Formal Methods Syst. Des..

[15]  Monica S. Lam,et al.  Automatic extraction of object-oriented component interfaces , 2002, ISSTA '02.

[16]  Frederick C. Hennie,et al.  Finite-state Models for Logical Machines , 1968 .

[17]  Robert M. Hierons,et al.  Checking Sequence Construction Using Adaptive and Preset Distinguishing Sequences , 2009, 2009 Seventh IEEE International Conference on Software Engineering and Formal Methods.

[18]  Nina Yevtushenko,et al.  Adaptive Homing and Distinguishing Experiments for Nondeterministic Finite State Machines , 2013, ICTSS.

[19]  David Lee,et al.  Testing Finite-State Machines: State Identification and Verification , 1994, IEEE Trans. Computers.

[20]  Xiaolin Wu,et al.  On Minimizing the Lengths of Checking Sequences , 1997, IEEE Trans. Computers.

[21]  M. P. Vasilevskii Failure diagnosis of automata , 1973 .

[22]  Ferhat Khendek,et al.  Test Selection Based on Finite State Models , 1991, IEEE Trans. Software Eng..

[23]  Robert M. Hierons Using a minimal number of resets when testing from a finite state machine , 2004, Inf. Process. Lett..

[24]  Alfred V. Aho,et al.  An optimization technique for protocol conformance test generation based on UIO sequences and rural Chinese postman tours , 1991, IEEE Trans. Commun..

[25]  Robert M. Hierons,et al.  Optimizing the length of checking sequences , 2006, IEEE Transactions on Computers.

[26]  Guney Gonenc,et al.  A Method for the Design of Fault Detection Experiments , 1970, IEEE Transactions on Computers.

[27]  Tsun S. Chow,et al.  Testing Software Design Modeled by Finite-State Machines , 1978, IEEE Transactions on Software Engineering.