The Curious Case of Testing Automation

by Kavita Tapkir - Chandane on October 27, 2020
Precision Blog

Does automated testing speed up application development? The market seems to be clear on this because automated testing is now a common part of the development process. This article addresses speed, quality, humans vs machine and more to give you a full picture of where automated testing fits in your development cycle.

Why is testing necessary?
This may seem like a basic place to begin, but it does require examination. In this day and age, companies are talking about speed to market. With the products they provide, all companies are focusing and driving towards customer satisfaction. Customer satisfaction is derived from two main factors Quality & Speed. Quality assurance is the key factor in delivering quality products.

Gone are the days when developers would write code and simply push it into production. If you look at companies like Amazon to banking services to retail, all companies are creating online tools to provide for users’ needs while driving customer satisfaction.

As our needs and demands of technology have increased, so has the importance of testing. Just think for a moment – in our past, technology was expected to have challenges. We were all somewhat patient with the new technology we were using. We had limited needs of technology and when it didn’t work as well as we hoped, we shrugged it off. When you consider that, today, we make deposits into our bank accounts from our phones, we handle all of our investments online, purchase nearly anything we need online, but our tolerance for mistakes in that technology is gone. If the app you use to make a deposit records the wrong amount, very few people will just accept that it will be fixed later. Testing is the backbone of development ensuring quality products to market.

Does Automated Testing Displace Humans?
No! Automated testing displacing humans is a complete myth. What does automated testing do? It is helping us expedite our development process and helps us with continuous testing. From a redundancy perspective, automated testing allows us to be continuously testing the regression suites along with the new development. This was not possible prior to automated testing. You can have your SMOKE test, Health Checks on your systems and platforms automated and more, but human jobs are unaffected by this. With automated testing, the development process is expedited, continuous testing is performed ensuring no code breaks, testing time is reduced for manual testing, and human jobs are able to be focused on the meaningful areas of testing as opposed to the repeatable, unenviable tasks performed by automated testing.

What is the value of a human testing a set of scripts that are simply confirming that the code is working, testing the same functionality or integration point in every release? There is none. The value a human brings is working with new business requirements and testing against them as opposed to redundant, regression testing.

For example, if you were working in banking and you need to test the function of a user opening a new account on the system. Now assume you were doing it with manual testing. One person would be testing specific scripts to confirm the functionality works and it takes about 15 minutes. Then consider that the script calls for cross browser functionality turning 15 minutes into 2 and half hours. In this example, the human is certainly not working on a rewarding and fulfilling project and the time taken is high when you realize that automated testing can do all of this in a single minute. The only value in this testing is knowing that the script is working – we don’t want to be wasting a human’s time. Manual testing by people is now utilized on areas that require subject matter expertise and knowledge of the product. In our past, manual testing would never have had enough people or enough time to regression test, but now thanks to automated testing, companies releasing products know that their customers will have a positive experience from day one. Just remember, the patience people have for non-working technology today is almost zero and the released products must meet the high standards of consumers.

How can automated testing speed up app development
Automated testing reduces your development lifecycle. While a manual tester is testing newly deployed functionality, automated testing runs in parallel continuously regression testing to ensure that defects are discovered much earlier in the cycle. In a traditional SDLC, the testing would take place at the very end and defects would be detected and then sent back to development halting the process until development was complete. Through automation, we are trying to do regression testing from day one of the deployment.

Keep in mind that automated is purely functional and allows you to shift left. Additionally, developers are able to automate unit testing expediting the development process allowing testing to penetrate into your development process.

Story you can relate to
I know we have all experienced this before. A year ago, we were working on a project that involved consolidating five (5) different legacy platforms into a single modern platform that catered to five (5) different lines of business. You can imagine how much work went into a project of this magnitude. The testing needs were extreme and there is nowhere in the budget to bring in dozens of people for testing. Automation played a key role in this project. We simultaneously tested the existing product in production, while testing the new platform to ensure the behavior remained the same. We utilized the continuous testing, continuous development process. Testing began building the automated tests while, in parallel, the development team was working.

Here is the shocker.

Mid way through the project, the business requirement changed to the extent that an entirely new UI was implemented. We were immediately derailed. I am sure no one else has ever had to deal with this, but within a month we were back in the game and regression testing. In the past, this same example would have derailed us for upwards of six (6) months. We would have been faced with expanding time delays, budget increases, as well as additional hiring to keep us on path. The testing team would have had to wait for development to complete their work before testing could begin again, but now we are able to work in parallel.

How does automated testing improve quality and reduce cost?
Continuous testing is at the heart of improved quality. All of our systems of the past had to wait for defect detection, generally by users, in order to provide what we called quality at the time. Through automated testing this is no longer the case as the product is being continuously tested to deliver the positive customer experience required. With integrated systems, risk management comes into play due to your downstream or upstream applications. If any defects effected these systems, then it would be discovered too late (when it is actually broken). With continuous testing, we know about the defect immediately, notifying the tester and development team to resolve the issue. Since customer satisfaction is at the top of the focus, problems in production are unacceptable risk.

What about automated testing deliver products to market faster?
Traditionally, the development lifecycle allocates 6 – 8 weeks for testing, but when we talk about shift left, you are starting to test much earlier in the cycle. By testing early and often, we are detecting defects sooner, allowing the development team to resolve the defect quickly. These efforts typically result in a reduction of allocated testing time to 2 – 4 weeks and release the product to market faster while driving a very high customer satisfaction. In the past, testing was the last step in the development process and when defects were detected the project would be sent back to top of the waterfall.

In parting, I would say that in real estate they say, “Location. Location. Location” and in testing we would say, “Automate. Automate. Automate.” If we can be of assistance in your testing process, please contact us.

About Precision
Precision Technologies Corp. (PTC) is a leading full stack IT Company with a diversified portfolio of agile transformation, application & mobile development, the PMO suite, automation, analytics, salesforce solutions and technology staffing services. Since 2010, our clients have leveraged our staffing and consulting experience to obtain escalated technical services across the industries. We often are told that our solutions are very precise, cost-effective and process driven, thereby delivering intended results.