Software Testing (597), FS 11

Content

Software testing is a major part of software quality assurance. Who is willing to use software that wasn't tested exhaustively? Although most of the developers are aware of the importance of testing, software systems are tested moderately -- often because of time constraints or ignorance.

In this course we present students the fundamentals of effective software testing from the smallest unit to the level of systems. We use well-known open-source tools (such as, JUnit, mockito, Selenium, JMeter, Hudson) for test automation and continuous integration. Presumably the following techniques are presented:

  • Test Driven Development
  • Unit Testing
  • Continuous Integration
  • Integration Testing
  • System Testing
  • Web Testing
  • Load and Performance Testing

Students may deepen their software testing knowledge by solving exercises with example applications. We use JUnit in Eclipse to build up test cases and test suites, use mocking frameworks to test in isolation, and use Maven to setup automated Selenium test suites.

Learning target

The participants know the fundamentals of testing object-oriented software and used them in exercises. Moreover, they are able to test a software system systematically.

Organization

Lecturer Beat Fluri
Time and place Thu, 12:15 - 13:45h / BIN 2.A.01
Language English, German
ECTS-Points 3
Target Students in MSc Informatik or Diplomstudium nach PPO'01 (after 5th term)
Requirement Content of module "Software Engineering"
Precognition Content of modules "Software Engineering" and "Objektorientierte Softwareentwicklung". Development with Eclipse IDE.
Exam Thu, May 26, 2011, 2.A.01, 12:30-13:30h, presumably written
Registration Until Friday, March 18, 17h; Buchungsplattform

Dates, Topics, Handouts (tentative)

Date Topics Documents Handouts
24.02.2011 Introduction
TDD, JUnit 4 and Eclipse
TOOS - Chp 03
03.03.2011 Unit Testing 1
Mocking
Mocks aren't Stubs (by Martin Fowler)
Mocking mocking and test outcomes (by Robert Martin)
TOOS - Chp 10
10.03.2011 Unit Testing 2
Example solution for Exercise 0
 
17.03.2011 no course
use time for solving Exercise 1
   
24.03.2011 no course
use time for solving Exercise 1
   
31.03.2011 Continuous Integration
Maven, Jenkins
Example solution for Exercice 1
Continuous Integration (by Martin Fowler)
Podcast on Continuous Integration (by se-radio.net)
07.04.2011 Integration Testing TOOS - Chp 13
14.04.2011 Continuous Integration Tools for Software Quality Assurance  
21.04.2011 Web Testing with Selenium  
28.04.2011 no course (Easter)    
05.05.2011 System Testing by Thomas Briner  
12.05.2011 Regression Testing  
19.05.2011 Load Testing  
26.05.2011 Exam    
02.06.2011 no course (Ascension Day)    

Exam

A written exam takes place on Thursday, May 26, 2011 (last course date). In case of a small number of participants, a oral exam takes place instead.

Hinweis: Diese Informationen dienen zur Ergänzung des Vorlesungsverzeichnisses (VVZ). In Zweifelsfällen gelten immer die offiziellen Angaben im VVZ.