What is the difference between the Behave tables you can write in BDD (see python-behave) and model-based testing?

Such tables seem to generate a model for your test which you can use to test your system with.


You are comparing Behave Tables you can write using python-behave and model-based testing.

They are not really comparable, in an analogy, comparing Behave Tables with model-based testing is like comparing Fish & Chips with Asian cuisine.

  • Fish & Chips belongs to English cuisine, you can not compare a certain food with a category of cooking style (Asian cuisine)


  • Behave tables is a certain technique that belongs to BDD, you can not compare a certain technique with an abstract testing approach (model-based testing).

Below is an example I managed to find:

 Scenario: Setup Table
     Given a set of specific users:
        | name      | department  |
        | Barry     | Beer Cans   |
        | Pudey     | Silly Walks |
        | Two-Lumps | Silly Walks |
  • Above is a Behave table you can generate using python-behave, they are a table of keywords that you can use to describe a test in a more human readable way, instead of writing "user.CallFunctionX()", you can write Barry picks up Beer Cans. BDD's objective is to save technical details from non-technical staff such as business analysts by providing high level human-readable keywords.

Model-based testing:

  • It is a different testing approach from BDD.

  • Common practice is to use some kind of automated tool to generate an abstract model of the system under test. Then based on this abstract model, decide what to test and how to test(including using BDD as a technique).

Your Answer

