Philosophy
As you might already know - Wetator wants to test the GUI of your web application.
Since this is a somewhat generic statement we want to point out what appears to us when talking about "testing a GUI" and "testing a web application":
Wetator focuses on assuring the web GUI's functionality.
This means it is not (or not first and foremost) focusing on content (e.g. particular search results), layout, or functionality of lower layers of your application.
Assume your application, providing search&retrieval for certain data in your database, has the following architecture:
What actually happens when the user wants to search for something is:
- the user opens the GUI's search page
- the user sets some search criteria in the provided input field
- the user clicks on the search button
- the GUI asks the service to perform a search
- the service uses a DAO to access the correct data in the DB
- the DAO provides the service with the search result items
- the service adapts the search result and gives it back to the GUI
- the GUI displays the result
In this scenario Wetator would not test
- if the search itself performs correctly (e.g. if the correct result is found according to different search inputs)
- if the service contract is correct (e.g. if an exception is thrown for an invalid search input)
- if the SQLs are correctly generated in the DAO (e.g. if the correct tables are joined)
- if the constraints and triggers in the DB are correct
- ...
But what a Wetator test case could cover is
- if the search input is used for searching
- if the button executes a search
- if you cannot excecute an empty search
- if the redirection to the result page works
- if all information items of the result are displayed properly
- if the validation on the search page works correctly
- if error messages are displayed correctly when the search goes wrong
- ...
To sum it up, Wetator wants to test GUI functionality. Besides Wetator serves as an integration/system test tool, while the web applications under test are approached via the most outlying layer – the GUI.
That the service and lower layers are working as required, should be assured in detail and autonomously, using other testing approaches and technologies.