How much time does your software development team spend on manual and automated software testing? Ten percent? Twenty-five? More? A number of recent studies (by Tidelift, The New Stack, Practitest and Tech Republic) indicate nearly 62% of software developers spend less than half of their time coding. That can be attributed to a lot of factors, but software testing is definitely one of the big ones. Clients value solutions to their problems. But is there enough time left for software developers to code and create these solutions, if testing consumes such a large portion of their time? Testing is essential to ensure code quality, but finding the line when you have enough time for both is challenging. This is especially the case when you feel the urge to finish the code as speed is a key success factor in this competitive environment.
Automated versus manual software testing
With over 90% of software developers attuned to Agile, the time and frequency of software testing is easy to decide on. Start very early and continue somewhere between very frequently and continuously. This best practice could be the reason for the common meme of why software developers never sleep. Which sounds funny, but then it’s not that funny, when it’s about you. Automated software testing can free up developers’ capacity, but to decide if manual or automated testing is the preferred way for your team, first you need to answer some questions:
What are your regression coverage requirements?
How long does it take to manually write and execute a test?
How frequently will you run the test and over what period of time?
How many software developers are on the team?
How many systems does it need to be tested on?
What’s the capitalized hourly wage of those who conduct and write the tests?
Quantifying the cost is the best and easiest way to validate ROI. In all likelihood, you may not need to calculate the cost to determine whether to run with manual or automated software testing. If you feel your eyes starting to glaze over, odds are pretty high you will benefit from automated software testing. But, you may still want to calculate it for your client.
Automated software testing is best suited to tests able to yield objective results and measurements. The case for manual testing is dwindling to include very small, short-term projects, and those requiring subjective (aesthetic) evaluations. The greater the volume and complexity of data involved advocates for automation to reduce human error. The longer the project, greater frequency of tests, number of systems to test, and other factors warrant automation on the basis of cost avoidance.
Examples of the most common automated software testing automation cases:
Smoke tests can save a lot of time (and money) in testing the functionality of a software build to determine whether its stable or not, and if not - hold off on further development and testing until it does pass the smoke test.
GUI Function tests to validate that GUI objects meet specifications and work as intended, not to be confused with aesthetic evaluations.
Functional tests as a QA process to check that the software operation is working as intended.
Regression tests to verify software continues to work after software patches, updates, or changes in system configurations.
Load and performance tests allow you to simultaneously emulate as many different users and devices as needed to assure software stability per any load requirements.
Acceptance tests, often used in conjunction with Behavior Driven Development (BDD) help to identify gaps and omissions in your set requirements and help measure how close you are to finishing your project.
Software development can involve a lot of different tests - backend testing, core network testing, end-to-end and migration testing, protocol testing, and niche tests like International Financial Reporting Standards (IFRS) testing. Git analytics software can sift through your test repositories to help you identify how much time you’re spending on each kind of test so you can prioritize which tests to automate first.
Seven advantages of automated software testing
You may find yourself in need of convincing others of the advantages offered by automated software testing. That could be a client, maybe even a project manager - here’s a short list to help:
Cost-effectiveness. Achieved by cost avoidance, is proportionate to the project’s duration, frequency of testing, volume of devices, and cost of labor.
Improved accuracy. More thorough and less chance for human error with tests involve large amounts of data or complex data sets.
More Powerful. Able to simultaneously emulate a wide range of devices and test any load to verify system stability.
Faster Feedback. Automated software testing facilitates rapid validation and identification of bugs or defects throughout the different phases of a software project - helping to improve communication between all stakeholders.
Reusable. Your own internal and proprietary automated software tests can likely be used for future projects.
A Training Aid. With a little extra effort your tests can generate more detailed reports that can help new developers and team members familiarize themselves with the code, faster.
Increased Productivity. Less time testing can provide more time writing or improving code.
All of them provide strong incentives to automate, but there’s a value-added reason in being able to reuse your tests - and not just for your own projects. An automated software test is software, is a product, it is something you can sell or possibly license to other third-party Software Testing as a Service (TaaS) providers.
How do you get started with automated software testing?
You started calculating the costs of manual software testing and your eyes glazed over. Now, you want to give automated software testing a try, but how do you start? It’s time for another checklist to clear the way for you:
Define your project and testing requirements - what frameworks, technologies, platforms and devices does your project use? You probably already have these things defined as part of the initial project definitions that you provided your team. Check with your engineers and developers to see if they may already have automated software tests that they’ve written that can be improved upon to fit broader test requirements. Either way get their assessment of the effort that would be required to develop your own in-house automated software tests. Compare your requirements against the wide range of third-party automated software testing tools and testing platforms (TaaS’s). Don’t forget to ask your team for their recommendations as they may have direct experience with some of these solutions, or others. Check their price, any demo or free trial they offer, their product documentation, customer and technical support reviews, as well as how enthusiastic or supportive their user community is.
At this point, you have the basis to make a comparison between developing automated software tests in-house or to go with a third-party solution. Developing tests in-house is an upfront expense, but results in a product that you own, free and clear. There’s a good chance you may be able to use it for future projects. It is important to note that some clients may have rigid legal, regulatory, or security requirements that may prevent you from working with third-party solutions. In such cases, automated tests will need to be developed in-house.
Third-party solutions usually require a subscription fee or license in exchange for a near plug-n-play’ testing option (as much as it can be anyway). While some third-party options can be inexpensive, be mindful of the total package. Slow customer or technical support, disgruntled users, poor documentation, missing features and the like, can lead to nightmare scenarios. It would be wise to use the trial period to verify that it does meet your requirements.
This is all in line with a due diligence analysis, as any carpenter or architect will tell you, Measure twice, cut once.
Developer adoption of automated testing
Going back a few years, the European Software Testing Benchmark Report (ESTBR) 2016 indicated 66% of software developers maintained a manual to automated testing ratio of 3:1 to 1:1. By 2021, 73%, they hoped to see these figures flip, to be closer to a 1:3 ratio. PractiTest’s State of Testing 2019 (page 25) show that only a quarter of software developers have achieved their goals of moving to more automated software testing.
Perhaps most interesting, the ESTBR found that 48% of software developers realized an ROI on their test automation investment within 6 months; while another 43% in six months or more. Given the high level of interest and an obvious ROI-driven motivation to do so, there’s likely to be a disconnect somewhere preventing the transition to automated software testing.
Job security vs automation
You don’t have to look far for the first disconnect. Automation can sound scary for its tendency to displace workers, or to put it another way, manual testing could be construed as equating to job security. Though focused on software testers, the Practitest surveys show this is an issue - with those somewhat to very concerned over job stability peaking in 2017 at 58% and dropping by 10% in 2019 to 48%.
It’s natural to expect some reluctance or hesitation in adopting automated software testing by anyone who thinks they are about to be replaced. We’re of the opinion that companies should want to keep all of their productive IT people given a massive shortage of qualified IT specialists. Technology and automation is a catalyst for gaining new, often more interesting skill sets that can pave the way to promotions. Encouraging software testers and software developers to find or create automated software testing solutions is one measure to ease the burden in finding and onboarding new IT talent.
Software developers are usually happiest when they’re writing code. Gitential’s automated software development analytics can accurately predict if and when a developer is about to leave your team, perhaps because they’ve had to write one or ten manual software tests, too many.
If you have ten spare minutes, PractiTest is conducting a State of Testing 2020 Survey. The more who participate, the more value it provides the entire software development and testing industries.
Educating clients about software testing
The second disconnect could be with clients. With software development for clients, automated testing can be an issue of upfront cost vs. ROI. How you include the costs of automated software testing in your initial cost estimates can impact whether they contract with you or another developer. It impacts everyone’s profitability and success.
It’s the duty of the account manager or project manager to educate and inform clients. There’s a lot more to producing high-quality software than writing code. Software that doesn’t work, doesn’t get used. Poor early alpha to late beta software reviews can absolutely kill a project’s chances of success even before it becomes commercially available.
Odds are your client knows all of this, so this is your chance to capitalize on at least some of your testing by informing them of your QA and testing capabilities. Your transparency may lead them to scrutinize low-ball estimates from your competition.
Project managers and more automated software testing
If it weren’t for the Pointy Haired Boss, I’d probably never bring this up. Sometimes the disconnect could be with project managers or someone else higher up the chain. Ask them directly to find out why they’re reluctant to adopt more automated software testing. Some might be thinking that they’re protecting people’s jobs, maybe they’re die-hard old-school software developers, or maybe they just don’t know all of their software testing options. Knowing the reason provides you everything you need to formulate a proposition - to strike a bargain. After they let you implement one you can get the metrics from your favorite Git analytics tools like Gitential to help measure performance improvements.
Can automation displace jobs?
Technically, it’s better to say automation can displace job titles. The PractiTest surveys show that as companies implement more automated software development that the size of their dedicated test teams decrease. This could be a problem, except for a massive global shortage of qualified IT workers. While displacing lower-skilled jobs, automation increases the need for stronger IT skills. That’s good news as it opens the way for your testers to become developers, and your developers to become data scientists, ML or AI specialists.
So why is automated software testing worth it?
Spending less time testing has many advantages, like being able to have more frequent and longer meetings! Ok, seriously, if your software developers are spending 10% of their time testing software, cutting that in half equates to 104 hours or $5,400 over a year, each - based on average software developer yearly wages of $108,000. Add faster feedback, better communication, greater accuracy, and you’ll also see improved code quality and make your company more competitive.
The faster and more accurately you can perform software tests, the more time your software developers can spend writing code. That’s a critical element to managing your technical debt. Automation is not the solution for everything, but it will play a very important role in your team’s ability to remain competitive. The ESTBR’s findings that over 90% of developers realized a return on their investment within one year on their automated software testing initiatives shows its value.
If you have any questions about how Git analytics can help you evaluate your test repositories or convince your stakeholders to incorporate more automated software testing, please let us know at email@example.com. Gitential offers automated software development analytics that you may find helpful to use with software testing solutions. See our free demo - or sign up for a free trial, no credit card is needed.