Introduction to Software Quality. Software Errors and faults. Test categories, organization and coverage criteria. Unit and Integration testing techniques. Automated testing tools. System testing: goals, steps, procedures and techniques. Reliability, availability and maintainability: definitions, prediction and reliability models. Acceptance and installation testing. Test Documentation. Safety-critical systems testing. System maintenance: basic concepts, definitions, problems, metrics. Basic issues relating to evaluation and improvement of products, processes and resources. Besides the theoretical presentation the course provides hands-on labs in which the students learn how to apply unit testing in Java programs using tools such as Eclipse IDE and JUnit, measure test coverage with automated tools and perform functional and performance testing using automated tools such as Apache JMeter. |