This document discusses software testing and potential problems that can occur with software systems. It notes that testing is done differently depending on the context, such as safety-critical software versus ecommerce sites. It also discusses how defects can arise at various stages of software development like requirements, design, and implementation. Finding and fixing defects is more expensive the later they are found. The document stresses the importance of testing to identify problems before the software is released.