Even the most progressive professional software companies warn their clients about possible defects in software products that would need some testing and fixing. The main requirements for the testing processes are they should save time and money, and should be clear and transparent for the customer. That’s the reason why automated software testing presents itself as the most reliable and effective way of holding all software systems under 24-hour control.
Why should customers prefer automated testing over manual software testing, which has been proven effective over the years? Why should customers rely on machines without souls and brains? Well, for the same reason machines secure houses, build minivans, and record your favorite TV-program, when you are not able to watch it. They perform everything you tell them and never sleep.
The “Human Factor” – Testing’s Worst Enemy
QA Automation is spreading worldwide nowadays; about 70-80 % of projects across many industries constantly require it. So why is automated testing a priority?
First of all, there are some actions that increase and ensure the quality of a product that can’t be performed manually – early tests with components, performance/load tests or configuration tests/cross browser tests. You can’t perform a test with thousands and tens of thousands of testers – it’s impossible to organize such a large amount of people. With Automated testing, however, you can simulate this number of virtual users and it becomes a reality.
The other reason is hidden below the so called “human factor”. Automated software testing is a cyclical repeating process and isn’t harmed by someone’s forgetfulness or negligence. Even if a human acts carefully, this monotonous work would annoy anyone.
All testing processes faster, it allows frequent repetition and significantly saves the amount of time spent on it. Furthermore, only Automation guarantees the pursuance of exactly what you wanted. Also, if any bug appears during the testing, you simply fix the problem once and restart the action.
Automation can significantly cut the expenses of QA and improve quality in the areas where manual QA is insufficient. Additionally, it can be a part of general Quality standardization and product quality through a process quality approach. QA Automation tools can be used as part of Continuous Integration tools and as reporting tools.
The Selection Process. What Kind of Automated Testing Does My Project Need?
First of all, we should understand what type of project we are going to test. They can be easily divided:
- Desktop, standalone
- Desktop, distributed
By effort level:
- Small (less than 2.5 man-years)
- Medium (2.5-7.5 man-years)
- Large (more than 7.5)
By end-users audience:
- All audience coverage
- Targeted audience coverage
By expected load and response time:
- Highly-loaded systems with load peaks
- Real-time systems
- Highly-loaded systems with fixed load cap and critical performance
Performance is important, and load may vary.
Different industries, such as Healthcare and Finance, have their specific features, like 3rd party application integration or standard compliance consideration.
Once the project type is determined, a tester selects the QA Test Automation types that can be mapped to these parameters. What kinds of Automation exist?
We distinguish several Automated Testing types:
- Cross browser testing
- Cross platform testing
- GUI test Automation
- Low level API, protocol and integration testing
- Performance, load and fault-tolerance testing
- Mobile Automation
- Regression test Automation
The vast majority of projects can be determined by a mix of these parameters. There are generally standard mixes for each industry.
An example of how it all combines and works together:
The creation of a web-based trading platform is likely to be a big project with a targeted audience, near real-time response, predictable load, standard compliance, and integrated with other parts of the client’s system. Here, we can:
- Automate the performance test
- Make a low-level API Automation for integration and standard compliance test
- Security test
- Make web GUI Automation
- Consider regression test Automation
Most likely the project won’t need cross browser test Automation or high-load Automation.
As you can see, there is a wealth of methods for keeping software in form with QA. In general, the longer and bigger the project is, the bigger the profit from implementing QA Automation, regardless of industry. However, Automation can also help smaller low-budget projects. There are always some parts of manual QA processes that can be automated – test data generation, mobile and cross browser Automation, basic load tests, etc. This approach is called Semi-automation testing and a vast majority of DataArt QA Engineers can do it and understand where and how this technique can bring the best results.
I hope that I’ve helped clarify some aspects of Automation Testing for those who are on the verge of launching a new project and were looking for a small tutorial. Soon, I’ll clear up “hopes and fears” of Automation testing, in my new post at DataArt blog.