GUI testing is the process of ensuring proper functionality of the graphical user interface for a given application and making sure it conforms to its written specifications.
In addition to functionality, GUI testing evaluates design elements such as layout, colors, font sizes, labels, text boxes, text formatting, captions, buttons, lists, icons, links and content.
Need for GUI Testing
Any user first observes the design and looks of the application/software GUI and how easy it is to understand its user interface. If a user is not comfortable with the interface or finds the application complex to understand, he will never use the application again. That’s why, GUI is a matter for concern, and proper testing should be carried out, in order to make sure that the GUI is free of bugs.
Storage management Software/GUI
The web-based storage management software is an application designed specifically for monitoring and managing storage products. By using this we can do all functionalities of the storage product like RAID configuration, Firmware update, Getting system report of the product, perform BGA’s like Rebuild, migration, and other various features.
We have a customer with different storage products. To test all the basic functionalities across multiple browser as part of feature testing for each weekly build, is really challenging, especially by testing it manually. Hence, we decided to find alternatives to this challenging task.
Use case: Functional testing of the product
Consider we have storage management GUI screen which contains multiple tabs and various options to users. As part of functional test, we need to test all major functionality for every build w.r.t multiple browsers. For each browser, it takes 2-3 days of engineer’s efforts to complete the test. Suppose if we need to test in 4 browsers then it will take around 8-10 days to complete the regression for each build.
Imagine the situation, if we get the build every week then we will be unable to complete the test in a week’s time and we will get the new build before completing the test.
As it takes 8-10 days and completely occupies the tester’s time to accomplish repetitive tasks, we came up with the automation plan.
Why is Automation Required?
- Optimization of manual testing time and efforts
- Regression and accurate testing results
- Product stability and identifying bugs
Approach: Manual to automation
This implementation requires the following:
- Manual QA provides list of test cases developed and planned based on PRD to execute for release.
- Automation QA identifies the automatable test cases
- Understanding test case steps
- Categorize test cases based on complexity\priority
- Capture web element paths while performing test case operations manually for first time
- Write automation script for test case including verification check points
- Execute automated test case
Benefits of automation
- Easily validate a single test scenario with different sets of inputs
- Framework supports to run automated tests in various application builds/releases under regression cycle
- Tester gets more time to test
- Tester can focus on quality work by avoiding the time to do the repetitive tasks
Web Automation Tools - Selenium
Since Selenium has lots of advantages in GUI automation, we had a discussion and consented to the idea of automating the test cases in GUI by using “Selenium”.
- Open source and supports multiple languages
- Allows user to run automated tests in different browsers such as Firefox, Chrome, IE., etc.
- Support various OS platforms
- Well defined libraries to interact with Web Application
- Supports multiple testing frameworks
A test automation framework is an integrated set of technologies, tools, processes and patterns that provide logical reasoning and clarity of thought thereby simplifying and enabling a team to perform automation not only effectively but also efficiently
Each page can have scenarios that need to be tested with large data sets, you would want to write automation scripts with a focus on test data i.e. data-driven
1. Presence of Third Party Modules
2. Extensive Support Libraries
3. User-friendly Data Structures
4. Productivity and Speed
5 Better package management
Frame work design
Outcome of automation test suite
The regression suite takes only 8 hours to complete the test for each browser. It saves the tester’s time drastically wherein she spends only 30 minutes instead of 2-3 days by doing it manually for each browser.
In this way, we can save the tester’s time and the tester can focus on other important tasks which in turn increases productivity drastically. Apart from this, we also found out that our bug finding rate increased exponentially after we did the automation regression suite (almost doubled when compare to previous release cycle testing!).
We presented the same to our customer with all data and facts. Needless to say, the customer is very happy with us adopting this method!