Is manual testing more important than automation? Depending on who you ask the answer might be different. Manual testing is the process where a human (someone who has the ability to think and be creative) visually confirms that the aesthetics and functional elements of an application are working. But hey, hold on, we have tools that can do that sort of stuff. So is Manual Testing really that important in this day and age of Software Development and Testing?
The value of Manual Testing
The value of manual testing, this looks like a good place to start. The word ‘value’ can be seen as an overloaded term. To some it may mean the return on an investment or the effort needed to achieve a goal. Centrally it means the same thing i.e. what you get out based on what you put in. Now how does ‘value’ relate to manual testing? Well let’s take a step back and talk about automation really briefly.
We know that an automated test will run and perform checks based on what you have outlined. In other words it will not go ‘exploring’ or trying out new things. It will only perform the actions which have been outlined in the test. A manual run of the same test however would encourage the ‘human’ to consider other scenarios and features. When running the same test in an automated vs manual fashion, the value you get from automated test is that it will run automatically. The value you get from running the same test manually would encourage exploring other similar areas which may not be covered by the automated test. This brings us back full circle, what is the value of manually testing a scenario which has an automated test?
I think when running an automated test manually the biggest value you get is the creativity of the ‘human’ who is running the test. For instance they may consider other scenarios not currently automated. I think this is the biggest value you get from manual testing.
Manually testing an automated test, really???
OK, let’s take a short pause here and take a deep breath. I am not for a moment suggesting that we run our automated tests manually. I think this approach would be very defeatist. I am however suggesting that writing an automated test should not be considered the exit criteria of that scenario.
When I was a University I remember one of my lecturer’s saying ‘computers always perform the action you ask them to perform’. At the time I did not understand but over the years I started to agree with this statement. If your test fails, if your code does not compile, if your computer does not start etc it is doing what you have told it to do. In other words it does not have the ability to act on its own intelligence but rather just follow orders. Assuming you agree with this statement you can see that an automated test will always do what you expect it to do and nothing more. I don’t feel that automation is a replacement for manual testing but instead it aids in the endeavor of creating ‘bug free’ software.
When should we manually test?
The answer to this question may wildly change depending on who you ask. To the client, every single second of your breathing life. To the manual tester, the sooner the better.
Coming from a automation background I would say manual testing is an important element which aids towards development. It should be carried out differently depending on what stage of the development phase you’re in. For instance when starting a fresh project then it would most likely be very difficult to write any Acceptance tests since the UI may not have matured. In the absence of a strong dominant and constant UI then manual tests come to the rescue. In the instance where the UI is constant then manual testing should be conducted to supplement automated tests. Testing processes such as Sanity greatly benefit from manual testing as a quick visual and aesthetic test of an application may give greater value then automated tests that have passed.
Oh, OK that last statement was a bit blunt. I guess what I’m trying to say is that once the automated tests pass they give us a great deal of confidence that our functionality has not changed. However it does not give us any level of confidence that the look and feel of our application is still the same. A manual testing phase is able to bring the experience of that ‘human’ to the forefront and this is what gives us confidence in our development and test.
So, is manual testing more important than automation?
Manual testing plays a very important role in the world of testing.
Automated tests help us to ensure that our existing functionality has not changed, we are able to run the same tests as many times as we want. It is a great way of utilizing an extra process of running the same tests multiple times. This said there are still people such as developers, SDET’s, PO etc who would want someone to manually have a quick look. I guess the reason for this would relate to the manual testing. For instance, the ability for the testing to think creatively, outside the box and explore. This is almost the opposite of simply following orders like a computer.
For the moment it would be difficult for me to answer but Ill leave it to you to decide if manual testing is more important than automated testing. I think manual testing has an important role and a strong place in the Software Development cycle. I think manual testing should not be used as an alternative to automated testing. Manual testing should be used to supplement and aid automation testing.