TEACHING OF SOFTWARE TESTING AND QUALITY ISSUES
Stuttgart Media Univercity (GERMANY)
About this paper:
Conference name: 6th International Conference on Education and New Learning Technologies
Dates: 7-9 July, 2014
Location: Barcelona, Spain
Abstract:
While the topic “software testing” becomes more and more important in industrial projects, at universities courses it is still rare and often very theoretical. The consequence is: university graduates only bring little knowledge about software tests in the companies. And because in many companies, software tests still do not belong to the main topics, also even experienced software developers often have only limited knowledge of test methods.
In the proposed paper, new teaching methods for software testing are presented. These methods have been used successfully at the Stuttgart Media University (HdM) and can be extended to the industrial practice too. By developing these methods, the following challenges had to be solved:
1. The preconceptions of most of the students on the topic of software testing: Student projects often have a prototype character, i.e. they never reach a product maturity. Thus, although students gather a lot of experience in the software development, the quality of their results is rarely satisfactory and they do not get a real feedback on their results. With a growing number of projects undertaken by the students, they see less and less the need for tests for their software.
2. In theory, test subjects often seem to be simple and understandable. Therefore, examples used during the courses are experienced by students as artificially designed and without any practical relevance. This is especially enforced, if they have rarely had the experience in practice that even simple software can contain many errors.
3. Therefore, they often only see the effort that the extra - seemingly unproductive - testing brings with it, but not necessarily the benefits for their own work.
As a way to overcome these challenges, the exploratory teaching method is presented in this paper which is used in the Master's program in Computer Science and Media at the HdM. The core of the method is a three step process:
1. The students get an easy exercise, mostly of one the following types:
a) It is either finished software that the students have to test. The software is constructed in a way that the students will come across several difficulties.
b) Or it is a development example which the students have to implement. For this example, it is very likely that certain errors will be built into the software during development.
Thus, dealing with the exercise, the students noted in their own work, that it is not easy to develop tests so that they actually find the relevant error, or that even small, seemingly simple development tasks can contain many errors.
2.Usually, in step 1, the preconceived idea, tests would be easy or even unnecessary, is contradicted on a simple example. As a consequence, a constructive discussion of the results and a presentation of the theoretic approaches to deal with the problems discovered in step 1, can take place with the students.
3. Finally, the students repeat the first step using some more complex examples. Under the requirement that the theoretical approaches from step 2 must be used, they deepen their knowledge.
In the paper, the procedure is described in detail using two examples:
a) test driven development and
b) test cases for object-oriented approaches.
In addition, one way is to show how the experience of the teaching at universities can be transferred to industry practice and continuing education of its employees.