5 survival tips for when software testing accidents happen

“5 survival tips for when software testing accidents happen” on Functionalize, October 27, 2020.

Tip #2: Negotiate test deadlines

We don’t live in an ideal world, though. All too often, projects aren’t given as much time for testing as developers and testers think they need.

Alan Zucker, founding principal at Project Management Essentials, once grappled with his own time crunch. He was managing the development of a specialized accounting program that integrated the processing of a dozen applications.

The accounting program Zucker worked on required the building of a processing hub that received and shared information with the other applications. The accounting process was executed daily, weekly, and monthly with specific timing requirements.

“Our project timeline was very short because the company needed to quickly enable this capability,” Zucker says. “We did not have time to run an end-to-end monthly test that would allow us to replicate the process. So we created a testing strategy where we simulated the processing cycle.  Rather than having the process triggers execute based on the cycle clock, we manually executed the workflow.”

So far, so good. In test, everything worked fine. But executing the cycle the first time in production turned out to be a different matter. “Everything fell apart. In order to have the information loaded the application and available to the accountants by 8:00 a.m. the process first process executed at midnight and the second process kicked off at 2:00 a.m. Well, the first process did not take 30 minutes as expected. It took over two hours to complete,” Zucker recalls.

“The cascading impacts were disastrous,” Zucker says. “We had to take the application out of production and start over. We made the decision to execute a full end-to-end test simulating the actual daily, weekly, and monthly processing cycles.  We spent nearly two months fixing the bugs and retesting the application suite.”

Zucker learned three lessons from this debacle:

  1. Creating a robust and well-considered testing strategy early in the project is essential when building a complicated system;
  2. Simulating a process cycle using test data is a not a substitute for real end-to-end testing;
  3. Compressing project schedules to meet externally mandated timelines can be disastrous. Project managers need to negotiate deadlines and expectations with their project sponsors.