Software Quality Assurance : A Self-Teaching Introduction