Chapter 17. Conclusion

In this book, we have showed you different approaches and techniques for assuring software quality. Testing plays an important part in this, although the tests themselves can neither increase the quality of the software nor prove that it is free of bugs. Tests can only prove the existence of bugs, never their absence. The vast space of possible inputs makes it impossible, even for a trivial web application, to prove that the software works correctly for all inputs.

The development and operations of web applications should be processes, not projects. In a project, you are prone to think only about the costs for the duration of the project and not about the costs for the entire lifespan of the software developed during the project. This can lead to abandoning internal quality, especially when the development of the software is outsourced to a third party. On the one hand, this is because a typical project has no financial scope to invest in internal quality up front and must amortize these costs later. On the other hand, there is no real motivation for a development agency to minimize the maintenance costs of the software because this is what they make their money from in the long run.

The value of software quality, especially the value of internal quality, is hard to express in a way that the management or the customer can understand. Only in the long run, when the maintenance costs explode and the software has become economically unreasonable to maintain, ...

Get Real-World Solutions for Developing High-Quality PHP Frameworks and Applications now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.