âThe situation is good, but not hopelessâ (Polish folk wisdom) The text is devoted to the Software Analysis and Testing (SAT) methods and s- porting tools for assessing and, if possible, improving software quality, specifically its correctness. The term quality assurance is avoided for it is this authorâs firm belief that in the current state of the art that goal is unattainable, a plethora of âgu- anteedâ solutions to the problem notwithstanding. Therefore, the rather awkward phrase âimproving correctnessâ is to be understood as an effort to minimize the number of residual programming faults (âbugsâ) and their impact on the softwareâs behavior, that is, to make the faults tolerable. It is clear that such a minimalist approach is a result of frustration. Indeed, having spent years developing software and teaching (preaching?) âHow to do it right,â I still do not know how to go about it with any degree of certainty! It appears then I probably should stop right now, for who with a modicum of common sense would reach for a text that does not offer salvation but (as will be seen) hard work and misery? If I intend to continue, it is only that I suspect there are many professionals out there who have similar doubts. And they are the intended audience of this project. The philosophical underpinning of the text is the importance of sound engine- ing practices in software development.