What is the first thing the cook does when
he finishes preparing a dish? He tastes it and (maybe) adds some salt or pepper.
He can be confident the dish is tasteful as he strictly followed the same
recipe as many times in his long cooking career.
What
about software: is it really enough if the programmer simply runs the program
to prove it works fine? Usually no as each software development follows a
different recipe which may be a very long one as well. Additionally what does
"work fine" mean? There are many aspects of this, not to mention that
customers, users and programmers don't share the same view on that. Thus, there
are several reasons why software testing must be systematically planned (size,
time), correctly executed in different phases and carefully documented. Many things
are anchored in deeper research and implemented in different testing tools.
First part of this course will teach you about all this following the
experience of most successful testing practitioners.
The aim of software testing is to discover
and remove as much errors as possible. It sure must be executed in the best
possible way, but it is still very dependent on how many errors the (especially
large) software artifact contains before testing: a lot or only a few.
The secret is in the software development process, which should assure a good
quality product with minor number of errors only. Here different software
quality models and standards come into play which drive programmers to efficiently
develop a good quality product. To prove its quality software measurement is
used. The quality aspect of software development is covered in second part of
the course.
Finally,
we might consider our programmer a cook, but he works in a big restaurant with
a lot of hungry customers with very different wishes. Still, he strictly
follows recipes and systematically tastes each dish. Any improvisation is out
of question!
- nosilec: Igor Rožanc