MeTiQ: Methods and Techniques to improve Quality
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
- Practical tasks, to be handed in in zip-format through peerweb, module MTIQ.
- Quality plan for the sofa. Group work.
- 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 Hamill | O’Reilly | 0-596-00689-6 |
| Pragmatic Version Control using Subversion | Mike Mason | The Pragmatic Programmers | 0-9745140-6-3 |
| Pragmatic Version Control using CVS | Andrew Hunt | The Pragmatic Programmers | 0-9745140-0-4 |
| Pragmatic Unit Testing in Java with jUnit | Andrew Hunt, David Thomas | The Pragmatic Programmers | 0-9754140-1-2 |
| Pragmatic Unit Testing in C#with nUnit | Andrew Hunt, David Thomas | The Pragmatic Programmers | 0-9745140-2-0 |
| Pragmatic Project Automation | Mike 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. | |||