Software analysis tools are changing the quality assurance practices
of today's industry leaders. Prominent software vendors use static
analysis to find bugs, eliminate security holes, and deliver
high-quality patches to deployed software in a timely fashion. These
analysis tools excel at finding exactly the classes of errors that
are most difficult to find through testing, inspections and other
mainstream quality assurance practices.
I'll begin this talk by discussing the reasons why traditional
quality assurance practices such as testing and inspections are no
longer adequate to deliver the dependability that is required for
modern software. I'll describe the fundamental advantages of static
analysis technology and how the weaknesses of previous QA practices
are addressed. I'll briefly discuss the core concepts used in
static analysis, including abstraction, soundness, false positives,
and issues of scalability and adoptability. I will illustrate these
ideas through demonstrations of static analysis tools, and describe
how companies have integrated these tools into their overall quality
assurance strategy.