Course Title: Software Testing.
Prerequisites: Systems Analysis and Design.
Contents:
Software testing course can be considered as a two-dimensional course; a theoretical dimension and
an applied dimension. Within the theoretical dimension, which lasts more than half of the term,
students are familiarized with theoretical foundations needed for designing appropriate test cases for
a piece of software. Here, “appropriate” means adequately covering the software artifact from
different perspectives with as few test cases as possible. Different coverage criteria are explored, all
of which fall within one of the following four categories: 1) input space partitioning, 2) graph-based,
3) logic-based, and 4) syntax-based. Within the applied dimension, the course covers some famous
testing utilities such as JUnit, HttpUnit, Hamcrest, Mockito, Selenium, etc. Furthermore, some useful
patterns and anti-patterns for writing test cases are explored in this section. A brief introduction on
property-based testing is also included.
Duration: 1 Semester (16 weeks)
Course Hours: 3hours/week
Course Type: Elective