Testing Techniques in Software Engineering: Second Pernambuco Summer School on Software Engineering, PSSE 2007, Recife, Brazil, December 3-7, 2007, Revised LecturesPaulo Borba, Ana Cavalcanti, Augusto Sampaio, Jim Woodcook 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 scienti?c 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 scienti?c 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 di?erences 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 su?ciently 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. |
Contents
1 | |
Theory and Practice | 18 |
Automatic TestCase Generation | 59 |
Testing a Software Product Line | 104 |
Tutorial | 141 |
Software Tool Issues | 203 |
Software Testing Based on Formal Specification | 215 |
A Systematic Introduction to Mutation Testing in Unifying Theories of Programming | 243 |
Practice Areas | 288 |
References | 295 |
Author Index | 313 |
Other editions - View all
Testing Techniques in Software Engineering Paulo Borba,Ana Cavalcanti,Augusto Sampaio No preview available - 2011 |
Common terms and phrases
abstract actions algebraic specifications algorithm analysis application approach automatic automation behavior Chapter code coverage compute consider constraint controlled natural language core asset criterion defined definition detect domain equivalence class equivalence partition equivalent mutants evaluate example execution paths exhaustive test suite fault-based testing faults feature finite Finite State Machine formal functional testing identifier implementation infeasible JUnit labelled transition systems language method mock objects model-based testing mutation operators mutation testing node normal form observe output parameterized unit test parameters path condition possible public void refinement relation result scenarios Section selection semantics sequence Software Engineering software product line software testing Strace structural testing symbolic execution templates test equivalence class test inputs test models test purpose test suite test-case test-driven development tester testing activity testing criteria testing requirements testing tools theory tion valid valid_id values variable variation