Darko Marinov February 5, 2009 cs498dm Software Testing Darko Marinov February 5, 2009
Administrative Info Mailing list confirmed Wiki permissions set up Textbook: Introduction to Software Testing by Paul Ammann and Jeff Offutt Next lectures will be based on the textbook Project: testing refactorings Consider forming groups of 2-3 students Consider which refactorings you’d like to test
Previous Lectures Introduction on “Bugs” Refactoring Why look for bugs? What are bugs? Where they come from? How to detect them? Refactoring What it is? Why you need it? How to perform it? Example Interactive Testing Session TriTyp: Given three integers for the lengths of the sides of a triangle, find the type of triangle Testing fun/hard? Terminology? Testing goal?
Coverage Criteria Did we have any test plan or purpose? Did we specify any test requirements? How good are our tests? Did we generate enough tests? Criterion: rule that imposes test requirements Coverage: satisfaction of test requirements
Why JUnit (or a Similar Tool)? We want to test (early and often) Automated testing Regression testing Alternatives have some cons Different language for scripting A lot of printing if no checking of result Using “main” does not compose well
Today’s Lecture: Coverage Statement coverage
Problem Set 1 Will go out this week Four problems on Chapter 1 and JUnit Two problems on refactorings Total of 120 points, but you need only 100 for maximum score Grading will be strict! Prioritize your work
Next Lecture Tuesday, February 10 Graph Coverage for Code Continuing past statement coverage Project assignment: try some refactorings Think which you’d like to test for your project Discuss ideas with me