Laboratory

The course project will be performed in teams of 4 students; a single common report should be provided per team for each deliverable. The project is divided into 4 sections consisting of documenting, inspecting, and testing an open source software application, for which the source and executable codes are provided. The project description, requirements, and deliverable can be found in the Lab section (on Moodle). Lab sessions will give the opportunity to the students to get familiar with the tools and techniques needed to execute the project. There are, in principle, 10 lab sessions organized as follows:

Session 1: Tools Presentations
This session is an introductory session during which the tools used in the course project will be presented: Rationale Rose (for reverse engineering); the Netbeans environment and debugging facilities; JUnit for test execution; Bugzilla for bug tracking; Emma for test coverage analysis.

Session 2: Reverse Engineering

Architecture discovery, analysis, and reverse engineering techniques and tools.

Sessions 3: Code Inspection

Exposure to the practice of code inspection techniques and metrics through a tutorial based on sample source code.

Session 4: Test Implementation

Test code implementation and execution using JUnit.

Session 5: Automated GUI Testing

Practice of GUI testing techniques and tools.

Session 6: Test Case Design

Illustration of test case design using domain and basis path test models through some examples.

Session 7: Project Part 3 Finalization

Focus on project part 3.

Session 8: Test Coverage Analysis and Reporting
Test coverage analysis using Emma.

Session 9: Project Part 4 Finalization

Focus on finalizing the project.

Session 10: Project Demo