In 2014, I talked about GUI testing architecture.
Recently, someone asks me about the architecture.So, I post the blog about it.
The following flow means the architecture. I think this architecture is common if anyone uses libraries such as Cucmber.
Scenario Abstract Wrapper Binding Appium
(*.feature) (*_steps.rb) (*.rb)
| | | | |
|---------->| | | |
| |----------->| | |
| | |---------->| |
| | | |--------->|
| | | | |
| | | |<---------|
| | |<----------| |
| |<-----------| | |
|<----------| | | |
| | | | |
- Scenario layer
- Describe scenarios.
- This layer depends on “User scenarios”.
- Abstract layer
- Implement steps to run scenarios as Ruby code.
- This layer absorbs the changes in scenarios.
- Wrapper layer
- Wrap binding.
- This layer absorbs the changes in bindings.
- Binding layer
- Ruby binding
PageObject pattern is very famous. In this case, scenairo layer and abstract layer depends on pages. BTW, wrapper layer is common methods to help other layers.