Most of the times the QA is limited to the testing. It is bound to Test cases, Smoke test, Functional, Regression and Performance testing. The real QA process includes synchronization between these activities, along with proper validations and verifications, which ensures less rework for developers, achieving the deadline for managers, satisfaction to stake holders and an ace product for customers and users.
For eg. take an application which deals with very high network traffic like online surveys or stock streaming. Simple approach to this can lead to network congestion, slow response and request collision. Now the developer have to rework, will apply work-through and in worst case have to recode.
The ideal scenario should be, a QA engineer validates it at time of coding and instead of normal approach should use a simple dual core system. It will receive the requests and designate them to the processors, that will perform the executions and return the data. Which in turn again be received and sent back to the respective destination by that IO machine. Or if a cost permits, use a super multi-core systems in the combination.
Testing is like Human Mindset
When one starts learning how to drive, he do it one thing at a time, in steps. First, he learns to handle the steering, then he works on switching gears and along with that switch between brake and accelerator pedals. And after that he works on synchronization between all these tasks. While doing these things, his mind is always fully occupied by these activities.
And then after he has learnt it, his mind makes an automated script for it. Now while driving he can talk on mobile phone, eat, drink or do any other activity. The driving is now automated.
Same is in the case of testing; first a tester should do functional testing then move towards automation.
Ultimate decision – Manual OR Automation
We often find ourselves facing the question – automate the entire process or do it by hand.
One shouldn’t automate things without doing it manually. It gives tester an insight how it actually works. It can cause blunders in terms of time and effort cost if someone start making automation scripts without performing manual testing, no matter how much a tester is well versed with tools or scripting language.
Tools can be learned within a week but the process is something that requires serious effort, time and experience. Things nowadays are moving in Agile terms. Everything moves and changes quickly. Which makes the need of a good process more and more important.
The QA process helps up in opening the closed box as it enables the managers to look beyond the simple cost and schedule considerations helping them to make better decisions. When this testing black box opens up it gives the managers a foresight to understand the tradeoffs and to make wise decisions about the resources and schedules. It is this process that defines what all tools should be used and what are the constraints, on which the choice or decision is to be made.
Test automation tools are best suited to places where computers can perform better than humans and where tools are available or easily implemented. For example, tasks like checking that an installation copied all files to right places and verifying that two files have same data take time and are error prone to humans but easily automated.
Another benefit of automation can be viewed in case of image comparisons. The images are compared pixel by pixel which is not possible manually. Generally, the problem with test automation is forgetting that any larger test automation project is a software project on its own right. Most of the software projects fail if they do not follow processes.
Things to consider while deciding on automation –
- Cost or budget of the application.
- Availability of skilled resource. Do he needs any training and if yes, how much.
- Does tool provides the functionality that will fulfill the requirements.
- Any free trial that can work.
- What is the basic difference or in simple words, why not to work with an open source tool. Can we trade off few things.
Both manual and automation testing are a part of entire QA process. It reduces the cost both in terms of time and money. QA can avoid last-minute quality issues by looking into and testing problems at an early stage in the process, when they are still small.
Myths related to Automation –
- Automation eradicates the need for manual testing : Effective testing is best achieved through a combination of manual and automated tests. Automation makes sense for validation of existing system functionality where few defects are expected and speed is a top priority.
- Bigger is better : more scripts mean better testing: I can say here that precise is better. If one carefully allocates the testing effort in accordance with business and technology risks, he can maximize quality without wasting the effort.
- The automation covers 100% of application flow : One of the most popular myths is that automation completely covers the entire flow of application. No matter how perfect a script or tool can be, it can never comes close to the human mind. There can be many scenarios that can’t be automated for eg. Dynamically changing pictures for an e-commerce site, data generated according to user filters or search. Though these things can be checked but can’t be controlled.
- Security Implementation should be done in the end and is a all different activity : Security needs to be an integrated process throughout the development and testing life-cycle.