Software Testing I

Latest update: December 5, 2005

An introductory one semester course. 3 credit hours. Aimed at undergraduate seniors. Prerequisites: Required: Firm grounding in programming, data structures, discrete mathematics; Recommended: Software Engineering, Compilers.

Objectives:
  • Familiarization with basic terminology in software testing.
  • Familiarization with test process, black box, and white box techniques used in software testing at unit, integration, and system levels.
  • Familiarization with current test tools such as those for test documentation, test execution, and adequacy measurement.
  • Provide students an opportunity to work in small teams and work on carefully designed projects sponsored by companies.
  • Provide an introduction to model-based testing.
Syllabus:

Preliminaries: Goals of software testing; test process, testing and development, test case, test execution, test harness, testing and debugging; test adequacy, control flow graph, errors, faults and failures, types of testing. Test generation from requirements: Equivalence partitioning, boundary value analysis, category partitioning; fault model for predicates, BOR, BRO, and BRE methods; limitations of test generation from requirements. Test adequacy assessment: Adequacy criteria, control flow based criteria, data flow based criteria, mutation based criteria; adequacy as a stopping criterion, adequacy as a tool for test enhancement. Miscellanous topics: (Select as time permits) GUI testing, security testing, random testing, combinatorial testing.

Suggested schedule based on Foundations of Software Testing (Draft V2.0)

Assumption: 1 Lecture=45 minutes. 1 Semester=16 weeks. 3 lectures/week.

Alternative: This course could also be run as 2 lecture plus one 2-hour laboratory. Laboraory exercises are designed to familiarize students with existing testing tools and enable them to practice the use of techniques covered during lectures.

Topic Chapter Lecture Hours
Course introduction 1
Preliminaries Chapter 1 4
Test generation from requirements: Equivalence partitioning, BVA, category partitioning Chapter 4 3
Test generation from requirements: BOR, BRO, BRE Chapter 4 6
Test adequacy: control flow Chapter 15 6
Test adequacy: data flow Chapter 15 3
Test adequacy: program mutation Chapter 16 3
Project presentations* <=15
Miscellaneous topics* Selected chapters >=3
Midterm examination 2
Final examination 2
TOTAL 48
*Hours devoted to these topics will depend on class size.
Project :

It is recommended that the course allow students to work in small teams. Here are some suggestions on how the project could be organized. [Assumed class size<=40.]

  • Industrially sponsored projects of 1-semester duration that allow students to learn, through practice, the use of tools and techniques of softweare testing.
  • Each project is assigned to one or two teams. Each team consists of 3 or 4 students. Teams are formed by students.
  • Students make regular presentations on project progress. The presentations are evaluated by the instructor and one or more representatives of the sponsor via Video conferencing.
  • Final project grade is given by the course instructor.

Each team makes one presentation every other week starting in week 3. The earlier presentations are short (e.g. 10 minutes) and the final presentation is about 20 minutes.