In this chapter you will: Understand how automated program analysis complements testing and manual inspection; understand fundamental approaches of a few representative techniques (Lockset analysis, pointer analysis, symbolic testing, dynamic model extraction; recognize the same basic approaches and design trade-offs in other program analysis techniques).