CENG 552

Software Testing

Techniques, methods, and tools which help in the systematic and effective testing of software systems.

Course Objectives

1. To obtain an insight of systematic testing within the software development cycle.

2. To learn different kinds, phases, and aspects of systematic testing.

3. To get experience in applying some test development techniques and some test tools.

Recommended or Required Reading

A.P. Mathur, Foundations of Software Testing , Addison-Wesley, 2008. ,P. Ammann, J. Offutt, Introduction to Software Testing , Cambridge University Press, 2008.

Learning Outcomes

1. Understand, generalize and analyse different testing methods.

2. Design, implement, and apply different test strategy and tools.

3. Compare and evaluate different testing methods.

4. Apply testing methods to real world problems.

Topics
Introduction to software verification and validation
Software testing overview and classifications
Functional(black box) testing I
Functional(black box) testing II
Structural (white box) testing I
Structural (white box) testing II
Mutation testing
Model-based testing
Integration testing
Regression testing
Overview of test case generation
Overview of test processes
Testing tools and test automation
Software reliability modeling

Midterm: 30%

Homework: 30%

Final: 40%