Hello, and welcome back. In the previous
mini course we covered software design, discussed the
UML and the unified software process, and worked
on a complex project in which we developed
a distributed software system. In this mini course,
which is the last one for this class,
we will cover my very favorite topic, software
testing or more generally, software verification and validation.
So why do I love software testing? Well,
I love it because it is extremely important. It
is very challenging and it is fun but only if you do it in the right way.
In the upcoming lessons we will discuss why
software verification is important, why software testing, which is
a specific type of verification, is important, and
what are the main techniques for performing software testing.
We will also discuss test-driven development and agile methods,
in which we'll lose some of the rigidity of
the earlier processes and turn things around by writing
tests before we write the code and then writing
code that makes the test pass. Finally, we will
perform a project, in which you get to apply
most of the principles and practices of agile development
in a realistic scenario. So let's jump right in.