A peek at the future of software testing
It is an interesting time to be a software tester, as the speed at which technology is evolving means that the future is changing rapidly. Ruud Teunissen, who has been a passionate software tester since 1989 and works for Netherlands-based Polteq, told delegates at a recent IndigoCube breakfast event that this evolution is being driven by the increasing focus on technology and efficiency.
This evolution is taking place not just in the testing field, he says, but across all areas of IT. However, because testing is necessary across all aspects of IT, as technology evolves, it will continue to impact on how testing is done.
"Not only has the advent of new architectures such as services-oriented architecture (SOA) shaken up the industry, but the increase in virtualisation and the drive towards cloud computing has introduced new aspects for testers to consider. Furthermore, an increasing focus by businesses on DevOps changes the face of IT dramatically," he says.
"From a software testing point of view, the growth in SoLoMo - which encompasses social media, localisation (when your devices inform the world where you are) and mobility - raises questions around the technical skills required to test what is, in effect, a multi-dimensional concept. Moreover, the nature of SoLoMo is such that constant integration is also required."
Teunissen adds that another area of growing concern for testers is the increasing use of large enterprise resource planning (ERP) and customer relationship management (CRM) solutions. He says that while the benefits of such solutions are obvious to the businesses, they can be a nightmare for testers, because customisation of these solutions requires extensive testing.
"Increasing integration is also creating headaches for testers. Software is being integrated into virtually every aspect of our lives today; it is found in everything from household appliances to cars and aircraft. This means a whole new range of issues and aspects that require testing."
"Agile Scrum is another development that is changing the manner in which testers operate. This is a flexible, holistic product development strategy that encourages teams to self-organise and communicate regularly. In other words, testers work closely with developers and obtain early involvement and feedback on a project. This is very different to the traditional method, where one worked on a very long project where there was little feedback and seldom any concept of when it was supposed to end," suggests Teunissen.
This leads to better collaboration, he explains, which means that testing, IT and the business work more closely together, rather than being at 'war' with one another. By working together, it is much easier to see the impact of what is being done immediately, which ultimately means one can service the client faster.
Continuous delivery, he explains, has also arrived. Companies no longer want to wait for 18 months before going live; rather, they want a constant flow of updates (sometimes daily) around new features. This is challenging for testers, as such an approach keeps them on their toes at all times.
"This, in turn, leads to an approach that used to be considered taboo - namely, testing in production. It may have been considered anathema in the past, but it needs to be remembered that testing in a controlled environment is like testing in a zoo, where you know the antelopes are safe from the lions. Testing in production, on the other hand, is like testing in the wild, because now anything can happen, and it is a situation where it is much easier for the lions to get the antelope."
Looking ahead, Teunissen points out that there are several trends in the testing world that will alter the landscape that testers find themselves in today. These include increased focus on the Agile/Scrum perspective, the context-driven world, service-driven test management, TestOps, automation 2.0, cloud computing, SoLoMo and crowd testing.
All of this will effectively alter the way testers are used to working. In order to survive this, testers need to evolve too; they need to think about testing as a craft and act like craftsmen, be able to work in distributed contexts, develop more technical and coding skills, and be able to develop their social (or soft skills) aspects dramatically.