Model checking on inferred TCP-models

Ramon Janssen

Radboud University

Model checking is a powerful technique for finding errors in specifications and implementations. Models of separate systems can be easily composed into networks, and required properties can be checked automatically. But models are often handwritten, which makes it difficult to ensure that such models correspond with the behavior of the system they describe. We can solve this problem with automata learning, which yields models by directly interacting with the system, thereby learning its behavior.

We have used this approach to learn models of TCP clients and servers in an automated way. Normally, the number of possible values for parameters in TCP packets is too large for learning or model checking. By means of parameter abstraction we reduce this number for the sequence and acknowledgement numbers. This reduces the size of the model, so that the learning of these systems can be performed efficiently.

The resulting models are then imported into a model checker. By reversing the abstraction in the model checker, we check a model with concrete parameters, which behaves like the real-world system. By combining models of servers and clients of different operating systems, we verify that all outputs generated by the client are accepted by the server, and vice versa.

Ramon_Janssen_testdag_2015.pdf

Taal

  • Nederlands
  • English (UK)

Current Edition

Interested in organizing The Dutch Testing Day? Please contact one of the Steering Committee members.

What is The Dutch Testing Day (De Nederlandse Testdag)?

The Dutch Testing Day ('De Nederlandse Testdag') is an event where software test experts from industry and academics meet and learn from each others knowledge in the field of Software Testing.

Contact Us

Organizer Testdag 2016: testdag2016@testdag.nl
Website administrator: webmaster@testdag.nl