Thursday, October 29, 2015

Next level - Test Automation DSL

There is a high chance of you creating, using and supporting an (internal) DSL without even realizing it. Especially if you’ve ever been involved in UI web testing with Selenium, any of the Cucumber family BDD frameworks and an OOP language as support. Combining those require some glue code (not mandatory Adapter pattern). Maybe you saw it lurking in your declarative BDD scenarios. Some other patterns like Facade and Strategy also make their way in your Step definitions, but for the focus of the post I’ll skip them. So how to find our own DSL (we just found out about)? Some of the main clues (as described in Martin Fowler’s book) are:   
·         the DSL is a communication channel, small, you couldn’t build a whole system in it
·         applies to a small, but key part of the system and enables communication between the different teams 
     ·         we use DSL to build up a (semantic) model that captures the actual behavior that you try to expose
     ·         meta-programming (will stop on this key point later)

           Read more about it here...

No comments:

Post a Comment