May 2021
Intermediate to advanced
630 pages
15h 31m
English
Software is complex. No matter what language you use, what frameworks you build on, and how elegant your coding style is, it is hard to verify software correctness just by reading the code. That's not only because non-trivial applications usually consist of large amounts of code. It is also because complete software is often composed of many layers and relies on many external or interchangeable components, such as operating systems, libraries, databases, caches, web APIs, or clients used to interact with your code (browsers, for instance).
The complexity of modern software means that the verification of its correctness often requires you to go beyond your code. You need to consider the environment in which your ...