DIT085
Contents
Testing and Verification @ Chalmers / GU - Edition 2015
Contact
Lecturer
- Office: Halmstad University, E 305 (on Fridays at Chalmers: Jupiter, ?)
- Telephone 035 16 71 22 (on Fridays at Chalmers: )
- Email: m.r.mousavi@hh.se
Instructors
Eugene Groshev
- Email: groshev@student.chalmers.se
Björn Olsson
- Email: olssonbv@gmail.com
Objectives
- Knowledge and understanding:
- understand the basic terminology of testing;
- name and describe basic concepts on testing, as well as different testing techniques and approaches
- describe the connection between software development phases and kinds of testing
- Skills and abilities:
- write models in at least one formal specification language;
- construct appropriate and meaningful test cases, and interpret and explain (to stakeholders) the results of the application of such test cases ( using appropriate tools) to practical examples
- plan and produce appropriate documentation for testing
- apply different testing techniques on realistic examples.
- Judgement and approach:
- compare different tools and techniques for testing software, and plan their use in appropriate contexts,
- compare and judge alternatives to testing, such as model checking and runtime verification
- identify and hypothesize about sources of program failures, and reflect on how to better verify the correctness of such programs.
Assessment
Assessment is performed in terms of the deliverable of the practical project (software + report) and a written examination.
- To obtain a Pass (Godkänd: G) mark for the course, the student must obtain a Pass mark for both the project report and the written examination.
- To obtain a Pass with Distinction (Väl godkänd : VG) mark for the course, the student must obtain a Pass with Distinction mark for both the project report and the written examination.
- Otherwise, the student will fail the course and obtain a Fail mark (Underkänd: U).
Slides and Study Material
| Lecture | Handouts / Slides | Other Material |
|---|---|---|
| Lecture 1: Terminology and Functional Testing
January 23, 2015 |
Chapter 4 of Ammann and Offutt | |
| Lecture 2: Test-Driven Development and jUnit
January 30, 2015 |
||
| Lecture 3: Coverage Criteria (Part I)
February 6, 2015 |
Chapter 2 and 3 of Ammann and Offutt | |
| Lecture 4: Coverage Criteria (Part II)
February 13, 2015 |
Chapter 2 and 3 of Ammann and Offutt | |
| Lecture 5: Model Checking
February 20, 2015 |
||
| Lecture 6: UI Testing
February 27, 2015 |
||
| Lecture 7: Slicing and Debugging
March 6, 2015 |
||
| Lecture 8: Reviewing Model Examination
March 13, 2015 |
Main Textbook
- P. Ammann and J. Offutt. Introduction to Software Testing. Cambridge, 2008.
Recommended Reading Material
- P.C. Jorgensen. Software Testing: A Craftsman’s Approach. Auerbach Publications, 3rd edition, 2008.
- L. Aceto, A. Ingolfsdottir, K.G. Larsen, and J. Srba. Reactive Systems: Modelling, Specification and Verification, Cambridge University Press, 2010.
- A. Zeller. Why Programs Fail? Morgan Kaufmann, 2 edition, 2009.
Project Description
The project is about Test-Driven Development of a WhatsApp-like server- and client-side application, which we call WhatsUpGU. This is a group project that is to be carried out in groups of 3. The deliverables are to be delivered on the GUL system and discussed orally in the presence of all team members with one of the two instructors. The deadlines are to be respected and each phase is to be delivered both on GUL and discussed before the deadline. You may get an extension of one week for at most two phases; for that you need to send an email before the deadline to the instructors. Sending an email is sufficient for receiving the extension and you need not wait for a response to your email.
As a general principle, when you find an ambiguity in the requirements, make a reasonable assumption and document it clearly in your report.
| Practical | Description | Deadline | Notes |
|---|---|---|---|
| Phase 1: TDD of a Unit | February 13, 2015 20:00 | ||
| Phase 2: Integration (Testing) of the Server]] | February 20, 2015 20:00 | ||
| Phase 3: Specification and Model Checking | February 27, 2015 20:00 | ||
| Phase 4: UI Testing | March 13, 2015 20:00 |