Skip to topic | Skip to bottom


Home

Main
Main.IN3205r1.8 - 06 Dec 2010 - 09:17 - ArieVanDeursen

Start of topic | Skip to actions

IN3205: Software Testing and Quality Engineering

Arie van Deursen

Testing and Quality

What can we do to create high quality software systems? How can we ensure that a system retains its quality while it is being changed to meet new business and technological requirements? How do we know that a system does what it is supposed to do? How can we be sure that a large software system still works as it should after we've modified it?

The key to answering these questions lies in the use of a systematic approach to software testing. In this course, you will learn methods, tools, and techniques that allow you to create a test suite well suited for the application you are developing. The course will make you not only a better tester, but also a better developer (you will know what bugs to avoid), better designer (you will be able to create models that are useful for testing as well as development), and better project manager (you will ensure that software testing is well integrated in the full software process).

Testing Techniques

The course will cover a range of testing techniques that are useful throughout the software lifecycle. From a functionality perspective, we'll look at (pairwise) combinational testing, category-partition, and decision tables. Furthermore, we'll emphasize the test implications of working with object-oriented systems. This includes testing state machines, working with design-by-contract, the implication of the Liskov substitution principle for testing in the presence of inheritance, using test frameworks, etc.

For every test strategy, an underlying fault model (what types of faults are targeted) as well as test adequacy criteria (when are you done testing according to this technique) are discussed.

Course Material

The course is supported by the book from Pezze and Young, Software Testing and Analysis, Wiley, 2007.

Material to cover design by contract and the use of JUnit is available separately.

Guest Lectures

In addition to regular classes, each course usually includes one or two guest lectures from industry. Past lectures have been given by practitioners from Philips Medical Systems, ASML, the Software Improvement Group, Sogeti, Microsoft, and by UML test expert Gerd Gross from TU Delft. Example topics addressed include testing in agile organizations, testing embedded software, and testing component-based systems.

Practical Work

Practical work includes the application of several of the testing techniques from the book, while extending a simple Pacman variant written in Java. Thus, participants learn how to incorporate the test practices right from the start.

Tools used in the lab work include

  • JUnit for unit testing,
  • Ant for build management,
  • Emma for code coverage, most notably the eclemma Eclipse plugin
  • PMD for static analysis of Java code,
  • and Java assertion checking.

Twitter

A Twitter stream is available via http://twitter.com/delftswtesting.

Delft University of Technology

This course has been taught starting in 2003 to 3d year computer science bachelor students at Delft University of Technology, code in3205-I (theory) and in3205-II (lab work). The course is taught by Arie van Deursen.


Edit | Attach | Printable | Raw | More topic actions
Revisions: | r1.10 | > | r1.9 | > | r1.8 | Page history | Backlinks
Main.IN3205 moved from Main.IN3420 on 15 May 2007 - 14:10 by ArieVanDeursen - put it back
You are here: Main > WebLeftBar > Courses > IN3205

to top

Copyright © 2003-2017, Software Engineering Research Group, Delft University of Technology, The Netherlands