“Everything is a copy of a copy of a copy”. Even though Chuck Palahniuk was referring to insomnia while writing this famous quote, we can easily see how it reflects the reality we live in. Saying this we do not mean teenagers craving to look like their Instagram idols or manufacturers trying to sell fake Ray Bans, we mean making the exact same cup of coffee at the exact same hour, taking the exact same bus to the exact same work. What we may not notice is that the process of automation has become a part of our lives. It works the same way when it comes to technology. How?
As a bespoke software company, before providing the product we need to test it several times in order to detect potential bugs. This is a crucial element of every successful project. There are two ways we can do it: manually, what we all know and are used to, and automatically. Both of the ways are supposed to help us create a flawless software, however, there are two sides to every coin, therefore both methods have their advantages and disadvantages. Before explaining which one is better, let us discuss them briefly.
You may want an example to understand the need for testing more clearly. Imagine a new social networking website you want to log into. You specify all personal details required and there you go, new friends from all over the world are waiting for you. But before the site is released, a tester goes through the process mentioned above foreseeing every possible problem you may come across. What could it be? When the name you want to use is taken or your e-mail has already been used, when you are underage, when you made a typo providing an e-mail, there are a lot of possibilities. A tester is expected to predict all of them and remove every potential mistake.
Now, the first method is ages old. Manual testing has been known from the very beginning of technology, being nothing else than running tests by software developers. A human tester uses the program the way an end user would, making sure it works properly and checking each and every one possibility. He or she is not supported by any tool or script, all he or she is left with are program expectations that need to be compared with the actual outcome.
Like everything, it does have its disadvantages. One of them is how time-consuming manual testing can be. Imagine going through one thing over and over again. It often takes hours to check only one small part of a software, not mentioning the entire product. However, it must be performed when we test the application for the first time as the automated test may not understand elements it is not familiar with. It also works well when the code base is small enough to detect bugs in an application quickly and easily. What if our product is meant to be huge?
There is automated testing waiting to help us. This process means tools and machines being programmed to compare the software with what we expect to achieve. What we mentioned above takes an hour or two for a human being while it might take a minute or two for this tool. However, when it meets a bug, we still have to remove it manually and then run an automated test once again.
There is no doubt that providing the product so quickly sounds good so what might be wrong with automated testing then? When compared with manual testing, it works better when the program is large or we run the same tests over and over again as a tool does not get tired the way human beings do. In order to run automated tests, we must buy proper tools first which may be expensive, however, it can help you save money in the long-term. What you must remember is the fact that it still is a tool, not a human being thinking on his own, being able to notice things. With automated testing, there is still a possibility of missing what makes it impossible for software to work properly.
With that being said, we are still huge fans of automated tests. Even when the product is not bug-free when released, we are there ready to fix it as soon as our customer detects it. Living in the world which runs so quickly with people desperately trying to catch up, every solution is useful. Stay aware though as no solution is flawless.
Michał Trela is our Quality Assurance Software Engineer. Starting his career working with manual testing, he is now a big fan of automated testing. In his free time, he reads sci-fi, watches dirt-track racing and practices CrossFit.