Learning regular sets from queries and counterexamples
Information and Computation
Discovering models of software processes from event-based data
ACM Transactions on Software Engineering and Methodology (TOSEM)
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
ICGI '98 Proceedings of the 4th International Colloquium on Grammatical Inference
Behaviour model elaboration using partial labelled transition systems
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Testing Software Design Modeled by Finite-State Machines
IEEE Transactions on Software Engineering
Reverse Engineering State Machines by Interactive Grammar Inference
WCRE '07 Proceedings of the 14th Working Conference on Reverse Engineering
Automated discovery of state transitions and their functions in source code
Software Testing, Verification & Reliability - TAIC PART 2006 Special issue - Testing: Academic & Industrial Conference - Practice And Research Techniques
Improving dynamic software analysis by applying grammar inference principles
Journal of Software Maintenance and Evolution: Research and Practice - Special Issue on Program Comprehension through Dynamic Analysis (PCODA)
Programming Erlang: Software for a Concurrent World
Programming Erlang: Software for a Concurrent World
Evaluation and Comparison of Inferred Regular Grammars
ICGI '08 Proceedings of the 9th international colloquium on Grammatical Inference: Algorithms and Applications
THE QSM ALGORITHM AND ITS APPLICATION TO SOFTWARE BEHAVIOR MODEL INDUCTION
Applied Artificial Intelligence
Introduction to Automata Theory, Languages, and Computation
Introduction to Automata Theory, Languages, and Computation
On the Synthesis of Finite-State Machines from Samples of Their Behavior
IEEE Transactions on Computers
Inferring Finite-State Models with Temporal Constraints
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Computing the Structural Difference between State-Based Models
WCRE '09 Proceedings of the 2009 16th Working Conference on Reverse Engineering
From test cases to FSMs: augmented test-driven development and property inference
Proceedings of the 9th ACM SIGPLAN workshop on Erlang
The practical assessment of test sets with inductive inference techniques
TAIC PART'10 Proceedings of the 5th international academic and industrial conference on Testing - practice and research techniques
Increasing functional coverage by inductive testing: a case study
ICTSS'10 Proceedings of the 22nd IFIP WG 6.1 international conference on Testing software and systems
Property-based testing: the ProTest project
FMCO'09 Proceedings of the 8th international conference on Formal methods for components and objects
Incrementally discovering testable specifications from program executions
FMCO'09 Proceedings of the 8th international conference on Formal methods for components and objects
Assessing test adequacy for black-box systems without specifications
ICTSS'11 Proceedings of the 23rd IFIP WG 6.1 international conference on Testing software and systems
Automated Comparison of State-Based Software Models in Terms of Their Language and Structure
ACM Transactions on Software Engineering and Methodology (TOSEM)
Guided GUI testing of android apps with minimal restart and approximate learning
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Hi-index | 0.00 |
This paper presents an iterative technique to accurately reverse engineer models of the behaviour of software systems. A key novelty of the approach is the fact that it uses model-based testing to refine the hypothesised model. The process can in principle be entirely automated, and only requires a very small amount of manually generated information to begin with. We have implemented the technique for use in the development of Erlang systems and describe both the methodology as well as our implementation.