CS3002 · BSc / BS · 4 credits

Software Testing

Unit, integration and system testing — plus the theory of what testing can and cannot guarantee.

Instructor Prof. Meenakshi D'Souza Term Every term Prereq CS3001

§ 1Calendar

  • Quiz 1—
  • Quiz 2—
  • End-term examination—

§ 2Previous Year Questions

No papers uploaded yet.

§ 3Resources

Course material2

Notes2

CS3002 · BSc / BS · 4 credits

Syllabus

The official course syllabus, transcribed from the IITM BS Data Science & Applications course booklet.

§ 1Course Description

This course prepares students to understand requirement-based testing phases, formulate precise test requirements, design and execute test cases within a standard development environment, and apply specialized test design techniques for specific application domains.

Lectures-Tutorials-Practicals-Credits: 4-0-0-4

§ 2Faculty

§ 3Week-by-week

Week 1: Software testing - Software development life-cycle, terminologies; Test automation.

Week 2: Graphs and algorithms; Structural graph coverage criteria; Algorithms for coverage-based testing.

Week 3: Graph and data flow testing; Coverage criteria; Unit testing.

Week 4: Integration and specification testing; Graph coverage; Finite state machines; Code coverage.

Week 5: Logic basics; Coverage criteria; Clause and predicate coverage; Logic-based testing.

Week 6: Logic coverage examples; Coverage specification; FSM coverage; SMT solvers..

Week 7: Symbolic testing; Concolic execution; Symbolic execution examples.

Week 8: Requirements; Functional testing; Input space partitioning; ISP examples.

Week 9: Regular expressions and CFGs; Mutation testing; Mutation operators; Testing criteria comparison; Integration and tools.

Week 10: OO integration concepts; Mutation operators; OO testing and faults; Coupling criteria.

Week 11: Web applications; Client-side testing; Server-side testing.

Week 12: Regression testing; Quality metrics; Non-functional testing; TDD; Summary.