Forum Discussion
I am a UI test automator and, believe me, I want my "team" to win this little head to head thing. But I want to say that I think good test automation requires both aspects of testing. UI Testing is all about interacting with the application as a real human being would. After all, it IS real humans who are going to use the software or the outputs of the software at some point in time so it is vitally important that test automation exercises those parts of the software. UI incorporates end-to-end scenarios, UI validation, data-output through some grey-box testing, negative test scenarios, and report validations.
Not everything that UI testing does SHOULD be automated. I'm convinced that some things like component alignment, color, etc., are things that can be more easily validated with a quick test. Also, UI automation I don't think should be the first line of defense. I think there is something to be said about the art and effort of good, competent manual testers incorporating techniques of exploratory testing, well documented boundary tests, etc., before the automation comes in. UI Automation should be, I believe, used in two main scenarios.
1) Continuous Integration processes requiring extensive regression testing each cycle. As a piece of software grows, the list of required regression tests also grows. Eventually, you get to a point where there is not enough time to test new features AND regress old ones. Automation is NECESSARY to be able to continue to build and adapt software through automated regression.
2) Some scenarios for testing are just way too involved for human testing. There are so many moving parts, so many details, sometimes whole reams of data or sets of scenarios. To manually test some of them is difficult to do with accuracy and completeness. Automating such scenarios with loops and data-driven tests frees up manual testers to focus on the few cases that need that human touch.
But, as I mention at the top, I do think API testing is vitally important as well where there are APIs to test. These are the little moving engines of the application that don't have anything visible. The UI is a harness on top of the API that sends the data in and reads the data out. But the API itself can be tested fast and efficiently by itself in the necessary micro scenarios. This allows those components to be specifically targeted without having to concern oneself with the specifics of whether or not the UI functions. These are ALSO required pieces for good, long term test strategies.
Related Content
Recent Discussions
- 10 hours ago