MeTiQ: Methods and Techniques to improve Qualityup

Identification

Progress-Code: MeTQ
Semester 6
Credits 3 ECTS/ 84 SBU
Lecture time 7 weeks, 14 Weeks for practical part
Duration 20 Weeks

Goal

Improve the knowledge and understanding of the technical and methodological implications of improving and maintaining software quality and creation process quality. Apply the knowledge and understanding in small to medium sized projects.

Motivation and Content

Product quality is influenced by to major aspects: The organisation of and around the production process as well as the techniques, methods and skill applied by the software engineer. In this module we will focus on the hands on experience with some of the methods and techniques.

The 'theoretical' lectures will take place in the first 7 weeks. The pratical part will have some exercises, which will be assessed with a so called with a performance assessment. The remainder of the module will be used to improve and apply these competences in the context of the Software Factories.

The following subjects will be addressed.

  • Configuration management, focus und base-lining, tagging and branching.
    Build and release management
    Bug tracking with a CR system and a CCB board.
  • Test methods.
    • Module or unit testing.
    • Mock objects, stubs and drivers.
    • Integration testing.
    • Regression testing.
    • Test methods for automated user interface testing.
  • Use of logging for testing. (Log4J)

Cases.

The following practical cases will be used to improve the experience of students with respect of testing.

  • Unit testing. Some exercises from the current first semester will be revisited, now with a Unit testing perspective.
  • Refactoring case. Focus will be on structural improvement, module testing and configuration management. The product is a small route planner application in java, which should be improvement structurally. The student should apply version control, unit testing and Refactoring.
  • (automated) User-interface testing
  • For all of the concepts the module starts out at java, but will address other languages as well, since the most important frameworks that fit this module have been or are being carried to other areas of software development. (xUnit has descendants in C++, html, xml, C#, C, php, db (databases) to name just a few). So the excuses: for the languages in our sofa there is no unit testing framework is a pure excuse at best. The frameworks might be less comfortable as JUnit, but they are available.

Study goals

Focus on the importance of testing. Test automation.

Competences

  • Configuration management.
  • Designing and implementing up test scenarios.
  • Maintaining process quality

Previous modules

Previous modules are PRJ4x,Programming modules semesters 1-4

Parallel modules

Parallel to this Module are OOAD and SoFa

Following modules

-

Didactical forms

  • Introductory lectures: 45 minutes per week.
  • Practical exercises (tutorials) and a small final project (1 weeks effort) per main subject in groups of 5-6 students.

Student deliverables

  1. Practical tasks, to be handed in in zip-format through peerweb, module MTIQ.
  2. Quality plan for the sofa. Group work.
  3. Personal programming modules complete with their unit tests, also handed in as zip files through peerweb

Grading

The tutor will determine a grade per group dependent on the quality of the products by that group. The group will use a peer assessment per milestone to determine the sharing of the group grade.

From thisprocess the student will receive a grade which counts for 50% towards the final grade.

The module is concluded with an individual assessment. This assessment will yield the other 50% of the grade.

Conditions

The cases that are delt with during the module depend on the audience. But for instance the following environment could be set up.

  • Eclipse will be used as the development environment for the java cases
  • For jsp based cases: Tomcat java container.
  • For PHP: PHP 5
  • For configuration exercises: accessible CVS or SVN (subversion) server.

Development effort

Responsible teacher(s): HOM (development)
  Planned Actual
  80 ...
Planned delivery: 2005-07-09 ...

Literature

Title Author(2) Publisher ISBN
Unit Test Frameworks Paul HamillO’Reilly 0-596-00689-6
Pragmatic Version Control using SubversionMike MasonThe Pragmatic Programmers0-9745140-6-3
Pragmatic Version Control using CVSAndrew Hunt The Pragmatic Programmers0-9745140-0-4
Pragmatic Unit Testing in Java with jUnitAndrew Hunt, David Thomas The Pragmatic Programmers0-9754140-1-2
Pragmatic Unit Testing in C#with nUnitAndrew Hunt, David Thomas The Pragmatic Programmers 0-9745140-2-0
Pragmatic Project AutomationMike Clark The Pragmatic Programmers 0-9745140-3-9
Pflicht: Objektorientiertes Testen und Testautomatisierung in der Praxis Uwe Vigenschow dpunkt.verlag 3-89864-305-0
Verplicht: Objectgeoriënteerd testen en testautomatisering in de praktijk Uwe Vigenschow dpunkt.verlag ISBN 978-90-811523-1-0 verkrijgbaar als product nummer 447502 bij de mediatheek in Venlo.
The Pragmatic books can be purchased in pdf version as well at the website http://www.pragmaticprogrammer.com
Websites http://www.junit.org as portal to lots of material on testing.