Is there any reason for automating tests that focus on GUI (and not to things under it)? In my opinion GUI (and changes in it) should always be tested by a real person.
What can you gain with the automated GUI focusing tests? My own experience has been that GUI focusing tests almost always break because someone changed something for a really good reason. They seldom seem to find anything interesting.
GUI automation is a way to mimic user actions, like mouse and keyboard input, to automate processes involving clicks, field inputs, image recognition, and scrolling.
Automated testing is essential to ensure shorter release cycles and a minimum baseline of quality. Even though manual testing has its role to play, if you're spending time delegating processes that can be automated, you're wasting time. When you waste time, you lose cash and competition.
Benefits of Automated UI TestingIncreased test coverage fosters faster debugging. Test scripts once created can be reused; this makes testing easily scalable. Test execution is much faster as compared to manual testing. Efficient test scripts deliver accurate test results.
This is a tough one. Automated testing tools and frameworks do a great job and are well worth the time and effort as long as the GUI does not change too much. The problem with automated testing is that it breaks down precisely when you need it the most: when the GUI is changing rapidly during a development cycle.
As a result, I have settled on a hybrid approach for the projects I lead and manage. I like to use manual testing on areas of the GUI that are changing rapidly during a development cycle. Once things are pretty stable, we do some sort of automated GUI testing (e.g. Selenium for web apps) that we put into the build process to guard against future regression. If at all possible, QA people write the automated tests. Sometimes developers have to pair with QA testers to do this when the automated tool is too code intensive.
This hybrid approach seems to work well as long as we are using good design practices that separate concerns properly so that unit tests can exercise all underlying logic properly. The one thing you must avoid is weaving application logic into the GUI layer.
It depends.
If your GUI is a relatively thin layer over your business logic and minor bugs in the GUI are not critical to your business then you might choose not to spend time testing your GUI thorougly with unit tests. That time could perhaps be better invested in testing more critical code.
If your GUI is very sophisticated and is a big selling point for your application then you may may wish to invest time in testing it both automatically and manually. Automatic testing doesn't completely replace manual testing, as you still need human testers to make sure that the GUI looks correct and that the interface is clear and intuitive.
See Wikipedia for more information about testing GUIs - for example by recording mouse and key input and replaying it. There is also a list of software that can aid you in creating GUI unit tests.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With