Is testing where failed coders go to die?
Testing is all too often a bottleneck when it comes to releasing new and improved versions of software. But there are measures that enterprises can implement to make testing smarter.
A testing bottleneck might not seem like a big deal. After all, it just means the business is a bit slower to release new developments. However, the knock-on effect for the business is often underestimated as it can impact the overall efficiency of an operation.
The biggest challenge faced by corporate customers around testing is manual testing that’s done in islands, says Stephen James Smith, software business consultant at Micro Focus South Africa. Not only is manual testing slow, but it’s inefficient, expensive and error-prone. Smith estimates that between 60% and 70% of corporate South Africa still does manual testing. “We’re seeing some companies performing test automation in pockets, but it’s not enough. The testing process is only as good as the tester, and if the tester doesn’t have the right tools at his (or her) disposal, then the quality of the test results could be compromised.”
Challenges around testing include testing the wrong things, not taking into account the changing environment in a connected world, using the wrong test management tools, using Word or Excel to document results, and weak test design.
Also, when companies move from a traditional test management solution to an agile team environment, without incorporating quality and testing into the methodology, they are likely to experience setbacks. The reason for this is simple, says Gary de Menezes, Managing Director of Micro Focus South Africa. “When businesses move to DevOps and agile without infusing testing into their software development and delivery processes, they’re not streamlining their software development life cycle (SDLC) value chain effectively.”
Companies that are failing to improve their testing efficiency to get software out quicker can be tempted to eliminate testing altogether to increase the speed of new releases. The end result is a reduction in overall quality. “There have been more incidents of downtime at large companies over the past 12 months than there have been in the past three years,” says De Menezes.
The widespread adoption of agile and DevOps methodologies by enterprises without addressing the testing space has certainly created difficulties, agrees Jacques Vermeulen, Senior Presales Solutions Consultant at Micro Focus South Africa. The 2019/2020 World Quality Report highlights the importance of test automation, analytics and AI when implementing agile and DevOps.
The report says there are definitely more challenges emerging globally around software quality. “These findings support pretty much the same trends we’re seeing in South Africa,” he adds. ”People are trying to get things done faster using DevOps, and although testing is important to them, it’s not as central as it used to be – and in some instances, it’s completely separate from the development process. This becomes a challenge, especially when the testers lack key test automation skills.”
He goes on to explain this statement: “We’re seeing a major skills focus on developers, but there isn’t the same investment in uplifting the skills of testers to the same level. This could mean that many companies are testing ineffectively. This is why, according to the 2019/2020 World Quality Report, modernising their testing capability and facilities is a major requirement for enterprises.”
The majority of testing is repetitive, therefore it should be one of the easiest areas in the whole SDLC value chain to automate. So you’d think that uptake of test automation would have been greater over the past few years. Yet testing is still left as a separate island in enterprises. De Menezes says: “Enterprises have access to many out-of-the box standard test processes. There’s no need to create your own testing framework from scratch, you can add it to existing solutions. However, this still requires some degree of coding skill among the testers.”
He believes that testers should responsible for creating valuable test results instead of creating sub-standard tests. Smith adds: “While test creation is always going to require some degree of manual input, the ideal is to move towards automated testing as quickly as possible. You need skilled testers who know about coding and who can do the automation. A mere 20% to 30% of testers in South Africa have the necessary coding skills. That’s a major challenge and is the cause of conflict – as well as division between testing and development within the organisation.”
Vermeulenexplains: “With the advent of agile and DevOps, the shift left notion has become more prominent, with testing moving closer to the developers. This means that developers and testers have to work together, which can prove challenging as they don’t always see eye-to-eye as ‘coders’ versus ‘non-coders’.”
This fundamental disconnect between testers and developers causes a lot of issues. Developers don’t see testers as having any credibility if they don’t know anything about coding – in fact they might even regard testers as failed developers. “Automated testing could change this perception of developers as not having sufficient knowledge because of the intelligence it brings,” says De Menezes.
He believes the human factor is probably the biggest contributor to failed testing. “If you consider that 70% of testers aren’t coders – the main reason for developers not seeing them as credible – test automation should overcome that because it will be perceived as being created by other developers. It will increase the overall effectiveness and efficiency of the testing environment as a whole in other ways.
Smith says a major reason for fluctuations in the quality of releases is that testing is regarded as expensive. “Manual testing requires two expensive resources: manpower and time. In order to cover a lot of code, you need a lot of testers. An alternative is to do no testing and to let the bugs emerge during production and fix them on the fly, but this ends up being even more expensive than manual testing in the long run, as the later bugs are found, the more they cost to fix.”
The cost of downtime is just one factor. Consider the reputational impact of a financial institution being down for three hours at month-end. “In the old days, outages at banks were caused by network failures,” says Vermeulen. “We’ve evolved to a stage where networks are no longer an issue – and where outages are 99% code related. The only guardian angel for an organisation’s uptime is testing. But enterprises aren’t investing enough time or money in this guardian angel, which means we’re going to continue seeing more outages from large organisations until they start taking this seriously and see testing as being core to agile and DevOps, and being budgeted accordingly.”
In fact, the converse is often the case, adds Smith, and companies in South Africa have actually reduced their investment in testing over the past couple of years. “The move to agile and DevOps might have created the wrong perception that you don’t need testing as much, while the opposite is true. This places more pressure on development teams, which in turn puts more pressure on the testing function, because you aren’t seeing just one or two strands coming through to testing, you can have hundreds of strands coming through.”
Some organisations have tried spreading the testing teams between the different agile development teams, but this hasn’t been successful. This is largely because splitting up a centralised common goal-oriented testing team means each team might have a different level of quality, especially when it comes to manual testing processes. There’s no central control over the testing standard.
Vermeulen says: “In the old days, there were test management systems. Today, people create their own isolated pockets of excellence, but they don’t communicate with one another, with limited success.”
Smith adds: “There’s increasing drive for test automation because of this. Organisations need to invest in enterprise testing tools to create a virtual centre of excellence so they can drive a standardised level of excellence and quality. You can have virtual agile testing teams, but you also need governance over automation and quality that brings the same level of testing quality to all teams, regardless of where they sit in the organisation."
“The bottom line is that if organisations don't get high quality code out faster, they will not survive. And this requires intelligent test automation at enterprise level,” concludes De Menezes.
Click here to download a Forrester study on delivering better quality code to market faster.