Testing Techniques in Software Engineering : Second Pernambuco Summer School on Software Engineering PSSE 2007 Recife Brazil December 3 7 2007 Revised Lectures The Pernambuco School on Software Engineering (PSSE) 2007 was the second in a series of events devoted to the study of advanced computer science and to the promotion of international scientic collaboration. The main theme in 2007 was testing. Testing is nowadays a key activity for assuring software quality. The summer school and its proceedings were intended to give a detailed tutorial introduction to the scientic basis of this activity and its state of the art. Theseproceedingsrecordthecontributionsfromtheinvitedlecturers.Eachof thechaptersistheresultofathoroughrevisionoftheinitialnotesprovidedtothe participants of the school. The revision was inspired by the synergy generated by the opportunity for the lecturers to present and discuss their work among themselves and with the school’s attendees. The editors have tried to produce a coherent view of the topic by harmonizing these contributions smoothing out dierences in notation and approach and providing links between the lectures. We apologize to the authors for any errors introduced by our extensive editing. Although the chapters are linked in severalways each one is suciently se contained to be read in isolation. Nevertheless Chap. 1 should be read rst by those interested in an introduction to testing. Chapter 1 introduces the terminology adopted in this book. It also provides an overview of the testing process and of the types (functional structural and so on)anddimensions(unit integration andsoon)ofthetestingactivity.Themain strategies employed in the central activity of test selection are also discussed. Most of the material presented in this introductory chapter is addressedin more depth in the following chapters. Software Testing: An Overview Functional Control and Data Flow and Mutation Testing: Theory and Practice Automatic Test Case Generation Testing a Software Product Line Parameterized Unit Testing with Pex: Tutorial Software Tool Issues Software Testing Based on Formal Specification A Systematic Introduction to Mutation Testing in Unifying Theories of Programming.