Software Testing for Deadlines
Sticking to deadlines and meeting software-testing milestones are important for software developers and other IT professionals who want to limit their liability and prevent lawsuits. Why? Because missing deadlines established in a contract can lead to
breach-of-contract lawsuits. IT professionals can avoid these suits by knowing…
- When to test software.
- How to avoid common pitfalls in the software testing process.
- Why they can be sued for missing deadlines.
1. When to Test Software
You know the saying: The early bird catches the worm. In this case, the early bird catches the bug – the software bug. The earlier you test, the better able you are to incorporate feedback from tests and catch errors before they become more problematic.
This advice applies to both functionality and usability testing.
Microsoft, in its article "Testing in the Software Lifecycle," advocates for testing early and often, noting that "the
software development lifecycle is one in which you hear of a need, you write some code to fulfill it, and then you check to see whether you have pleased … users, owners, and other people who have an interest in what the software does."
Though it seems like more work, Microsoft argues that an incremental, step-by-step testing process is a vital way to reduce costs and waste and, ultimately, ensure happy clients.
Google agrees, advocating for integrating testing with development. Former Google engineering director James Whitaker says programmers should "build a little and then test it. Build some more and test some more." (Read more in his guide to
how Google tests software.)
2. How to Avoid Common Software Testing Pitfalls
In a TechTarget interview, Doug Hoffman, a software-testing expert, outlines some of the common problems with software testing.
He reminds developers that software testing is often inconclusive. He points out four common pitfalls, which testers can avoid by being aware of:
- Overlooking errors. Many software errors won't show up in a test. If a test is designed to test the functionality of a specific feature, remember it only tests whether or not a function works. There may be other errors you can't
see. Doug Hoffman reminds developers of a number of commonly overlooked errors that don't show up in tests, including "memory leaks, data corruption unrelated to the expected results, [and] changing of environmental variables."
- Testing with the wrong tools. A test itself can have errors, which can lead to inaccurate results. You may be led to think everything is working correctly (or that nothing is), when in reality the problem is just in your testing software.
- Assuming functionality. Hoffman points out that a successful test only means the program functioned correctly once. Under different conditions, it may fail.
- Assuming malfunctions. Similarly, software testers may be too quick to assume there is a problem in their code. Testing conditions (or the test itself) may be causing parts of the software to malfunction.
3. Why You Can Be Sued for Missing Deadlines
Missing deadlines can be considered a "breach of contract" or a "misrepresentation" of the services you agreed to provide clients. Of course, many projects don't go as planned. There are always bumps in the road. Because of the
potential for lawsuits, it's vital for you to build room in your schedule and cost estimates to accommodate mishaps and unexpected roadblocks.
Here's an example from real life: In January 2013, Avanade (a Microsoft and Accenture joint venture) was sued for underestimating the cost of a project and failing to deliver it on time. At stake in the suit is millions of dollars in damages.
In summary: continually integrating software testing helps IT freelancers, independent contractors, and small businesses catch bugs and errors earlier so they can deliver projects on time and avoid lawsuits.
Next: Software Testing for Validation and Verification