Software testing often gets overlooked, but automating it can be a good way to avoid launch date disasters.
It's the eternal nightmare of software project managers: the system you've been working on for months goes live and blows up. A common culprit: a program or a callable module in the software that someone forgot to test or only tested lightly for systems integration because of looming deadlines.
A system that blows up on its debut is not a place where any project manager wants to be—yet most project managers know that when deadlines approach, thorough testing of software is the step most likely to be sacrificed in the final push to bring a project in on time.
For this reason, project managers can help themselves and their staffs if they look for software automation tools that can assist with testing.
"More organizations are recognizing this need to automate software testing into projects because the traditional ways of manually testing the software don't always go far enough to really test if the new application is going to be able to work with the other applications and systems it must interface with," said Ajay Kaul, managing partner at AgreeYa, which offers software automation testing as a service tools for application testing.
An area of app testing that is particularly vulnerable to being overlooked in a manual testing environment is system integration testing—the test of an application in a "full production" environment to ensure that it works well with other systems and applications it exchanges information with.
Unfortunately, to simulate this full production environment that tests systems integration, DBAs, system programmers and other high demand personnel often have to be bought in to configure a full test environment that can demonstrate that the new app is fully compatible with all other systems. This takes time that is often impossible to find when projects are up against hard deadlines, so the job of doing a complete integration test gets skipped.
It is at this point that the risk of an application failing in production increases—because you don't really know as an app developer or a project manager if the app will be able to perform under full production conditions until it goes live.
This is precisely the point where many systems crash.
"We understand this dilemma, which is why our goal has been to simply software testing with automation tools that companies can subscribe to as a service in the cloud," said Ramna Sharma, chief product engineer for testing solutions at AgreeYa. "In business today, user interface changes to applications can get modified many times, and applications that must now process many different types of data can benefit from automated testing of individual programs and also from full regression testing that ensures that the new program will work and integrate well with your other existing systems."
Automated software testing can dramatically reduce testing times at the same time that it ensures application stability.
To illustrate, Siemens Healthcare Computed Tomography, which produces medial equipment like real-time CT scanners that are expensive to maintain and that must deliver 24/7 uptime and consistently reliable performance, constantly tests its machines to ensure that they are operating properly, and that any new software update is fully compatible and interoperable with the software code base that already is resident on each machine.
To tackle this retesting, Siemens implemented automated testing software that runs at night, and complements the manual testing done during the day. By supplementing QA testing with automated testing, the company was able to save nearly 40% of its QA execution time.
If you're interested in automating software testing, here are some first steps to take:
- -Learn about available tools in the market and then arrange for a pilot trial with the solution you select should be a first step.
- -If the pilot trial works out well, the next step before purchase should be assessing your current software development and QA processes to determine what process revisions will need to be made to incorporate automated testing. These revisions could involve changes in duties in both the development and the QA areas of IT.
- -The next step is implementing these process changes, which could also include updating job descriptions and responsibilities.
- For example, the ramifications of automated testing on an IT quality assurance function is that QA testers will need to spend less time manually developing test scripts for software—and they will spend more time in areas of QA that automation can't address, like ensuring that the software is addressing all of the end business needs it is supposed to address.
- -After this, you are ready to start using the new automation, advisably on a small and non-mission critical first project. The first time through, your staff will experience learning curves as they design new test scripts for the automation software and learn to utilize all of the capabilities that these tools offer.
For project managers, the net result of using automated testing is likely to be a reduction in risk of an application failing when it first is deployed in production because it wasn't properly integrated and tested with other systems it has to coexist with.
But for anyone who's ever been caught in a go-live application blowup disaster, the value of this peace of mind doesn't need to be explained.
It is absolutely priceless.
Why automation doesn't necessarily remove the need for QA
How to use MDT scripts to test your configuration before deployment
10 DevOps experts to follow on Twitter
Scrum agile project management: The smart person's guide