M-F 8:00AM TO 5:30PM CST
Better coverage. Better price.

Software Testing for Validation and Verification

People sometimes use the words verification and validation interchangeably (and often abbreviate them to V&V). While both techniques can help you avoid Errors and Omissions lawsuits, there are key differences between them.

Here's a basic explanation:

  • Validation is the process of making sure software satisfies a client's requirements. This can include testing for and reviewing the specifications in your contract. Validation makes sure you deliver the exact product your client asks for.
  • Verification, on the other hand, is how you test that your program works well and doesn't have any major defects. Verification can include walkthroughs, quality control, and other usability testing.

Case in Point: HealthCare.gov's V&V Problems

The New York Times recently published a history of the troubled HealthCare.gov launch. The article notes that the website's problems were primarily caused by two things: insufficient testing and coordination problems between contractors and vendors.

In part because of rushed deadlines and poor communication, IT contractors made validation errors and failed to deliver the product specified in their contract. For example, the website was supposed to be able to handle 50,000 users, but crashed with as few as 500.

By failing to build a website that met the client specifications, the programmers failed to fulfill their validation requirements.

The rush to finish the website led to insufficient software testing, which meant there were also a number of usability and verification issues. For instance, sloppy code and other problems made the website much slower than it should have been. During the initial rollout, some pages took more than eight seconds to load; now, after fixing the code, they take less than a second.

HealthCare.gov's problems illustrate how intricately validation and verification testing are connected. If software doesn't deliver a client's requirements (i.e., fails validation and doesn't function properly), you can't perform sufficient verification tests to improve usability.

Rush Jobs: Dealing with Client Expectations

Most IT professionals face demands for speedy work at least once in their career. Your client wants the task completed within an unreasonable timeframe; if you agree to their deadline, you'll have to cut corners somewhere. You're in a difficult situation: you don't want to tell your client you can't meet their demands (which looks bad for your business), but at the same time you can't risk delivering subpar work.

Remember that IT is a service industry in addition to being a technical one. You need to maintain strong client relationships, and the best way to do this is by being honest, managing expectations, and delivering a fully functioning product – not one you'll have to debug later.

Next: Risk Management through Client Education

70% of businesses raise prices or cut hiring when sued