ISoftware testing is performed to ensure the final product will meet the needs of the customer or stakeholders. Software is checked to see whether all of the expected output is generated and that no overly detrimental errors occur. No program is bug-free, and enhancements are often made, so testing needs to be a firm part of the product life cycle.
To be honest, I didn't learn about writing tests until fairly recently. After listening to a Python podcast, this appears to be a common problem with developers; some computer science degrees never teach testing within the curriculum, so a large number of programmers are forced to learn on their own.
After writing small programs to gain familiarity with testing, the fuel farm scenario in this book was the first large-scale implementation of software testing I performed, as the scenario was to be used...