COMS 4170: Software Testing

Course
Computer Science
Software Testing
A rigorous exploration of modern software testing and quality assurance techniques.
Published

May 24, 2025

Software Testing

COMS 4170 is a rigorous course that delves into advanced methods of testing and quality assurance for software at both the undergraduate and graduate levels the Iowa State University. It is taught by Professor Myra Cohen.

Overview

This course provides a rigorous study of software testing principles, methodologies, management strategies, and tools.
Topics include coverage criteria, specification- and structure-based test design, integration, system and regression testing, automated test generation, GUI testing, mutation and metamorphic testing, and test management.

Flow of Software Testing

Figure: Iterative flow of software testing key phases from requirements to closure.

Learning Objectives:

  • Design tests to meet realistic coverage criteria
  • Apply standard software testing techniques and tools
  • Gain hands-on experience with automation and at least one advanced testing method

My Role

My Role (Computer Science Graduate Teaching Assistant, Spring 2025)

  • Assisted in delivering course content and reinforced core topics such as black-box and white-box testing, adequacy and coverage criteria, integration, and regression testing.
  • Supported the design, grading, and feedback process for assignments and examinations.
  • Provided one-on-one mentoring and technical guidance to help students strengthen their understanding of software reliability, testing tools, and debugging practices.

Key Topics Covered:

  • Principles and methodologies of software testing
  • Test design techniques, including black-box and white-box testing
  • Test models, adequacy criteria, and coverage metrics
  • Integration, system, and regression testing strategies
  • Automated test generation and tool-based testing frameworks
  • Test management, documentation, and process optimization
  • Advanced topics such as mutation testing, metamorphic testing, and AI-based testing approaches

Textbook

Introduction to Software Testing, 2nd edition by Paul Ammann and Jeff Offutt