The cost of application failure has never been so high. In a business environment in which more and more organisations are fully reliant on their applications (whether web-based or private), the CIO must provide reassurance that these systems are durable enough to handle thousands of individuals using them simultaneously and from multiple points of access. A failure of business-critical applications is now the worst nightmare of any IT leader.
As markets change, companies must react by adapting, and often these changes will be reflected in the demands placed upon the IT function. In an ever-changing marketplace, IT managers often require adjustments and enhancements to be made to technology quickly, and without causing major disruptions to the organisation.
The developer’s role in this process is to ensure that any effort to increase software functionality doesn’t result in bugs, preventing software from working correctly and ultimately jeopardising the reputation of the business. In order for developers to produce high quality software, testing needs to be high on their list of priorities.
Although developers understand the necessity and value of testing, they cannot always dedicate enough time to the process.
One of the ways they can improve the effectiveness of software testing is by automating certain instructions - saving time in the long run. However, our own research has shown that automated testing is still far from being top of developers’ priority lists.
By automating the more routine, ‘repetitive manual’ tests, automated testing can free up time by completing these tests more quickly. This free time can then be reinvested by developers in a number of ways.
In testing, it can be used to either run more tests, improve overall test coverage (one of QA professionals’ biggest challenges), or conduct more laborious, but necessary, exploratory manual testing. Alternatively, this free time can be used in the software development cycle, to either add more features or even release the product to market earlier.
But testing is just one part of the process of creating a new piece of software. To ensure an application is business-ready, developers are pulled in many directions during the development lifecycle and are under constant pressure to meet different demands. They must not only create new code but are also involved in ironing out bugs and creating new functionality. They should therefore wish to make the testing process as straightforward as possible.
Automated testing quickly detects, locates and diagnoses software defects and allows developers to discover and fix inefficiencies early within the development process. It also enhances application performance by preventing scalability problems, which can emerge as a result of combining the different technologies that make up an application.
But if automated testing can deliver so many benefits, why is it not higher up the priority list? Our same research indicated that some developers consider automated testing to be challenging. This simply is not the case today. Most testing solutions today make automation far more straightforward, and should ensure that it no longer remains a major challenge to developers.
Time well spent
If developers don’t invest significant time in software testing, not only do they risk creating more work later in the development process, but they jeopardise the quality of their software. This sets a ticking time bomb for potential IT crashes and malfunctions, which will only cause the IT department further headache at a later stage.
Thankfully, 2011 is expected to herald a real acceleration in the need for and use of software testing, particularly software testing in the cloud. This merger of two of the major trends in IT right now is long overdue, with IDC predicting the testing-as-a-service market will grow by over 33% each year between now and 2013, reaching a value of over $700 million by 2013.
Many software vendors struggling to transition their offerings to the cloud delivery model, but software testing has a very natural place in the cloud. In addition to the obvious benefit of flexible pricing, the cloud also allows flexibility in the demand for load testing, due to its ability to conduct short bursts of tests without requiring significant outlay on hardware or maintenance on behalf of the tester.
With cloud-based testing allows developers to simulate as many concurrent users as they need, on-demand, without having to invest in the hardware to run these tests.
One cannot underestimate the vital role a developer plays, both within the IT function and to the business as a whole. By constantly improving business software, they allow companies to adapt to their ever-changing marketplace. Software quality is dependent on scrupulous testing of all kinds to ensure that problems are resolved, and that the application performs effectively under all circumstances.
Although automated testing itself requires an investment in time upfront, it has the potential to save countless hours in the future, whilst running these tests in the cloud could further improve efficiency. 2011 is the time for developers to realise that these new forms of testing are valuable options in tackling the demands and pressures of software development.
David Stephenson is UK General Manager at Micro Focus