Prerequisites

  • Software Engineering: A foundational understanding of software development life cycle (SDLC), software design principles, and basic programming concepts is essential.

Course Objectives

  1. To provide knowledge of the concepts in software testing, including the testing process, criteria, strategies, and methodologies.
  2. To develop skills in software test automation and management using the latest tools.

Course Outcomes

Upon completion of this course, students will be able to:

  1. Understand the purpose of testing and path testing.
  2. Understand strategies in data flow testing and domain testing.
  3. Develop logic-based test strategies.
  4. Understand graph matrices and their applications.
  5. Implement test cases using any testing automation tool.

Software Testing Methodologies Class Notes STM Mid 1 Software Testing Methodologies Assignment

Syllabus

UNIT - I: Introduction to Software Testing

  • Purpose of Testing:
    • Why testing is critical in software development.
    • Dichotomies in testing (e.g., validation vs. verification).
    • Models for testing (e.g., V-model, Agile testing).
  • Consequences of Bugs:
    • Impact of bugs on software quality, cost, and user experience.
  • Taxonomy of Bugs:
    • Classification of bugs based on severity, type, and origin.
  • Flow Graphs and Path Testing:
    • Basics of control flow graphs.
    • Predicates, path predicates, and achievable paths.
    • Path sensitizing and instrumentation.
    • Applications of path testing.

UNIT - II: Transaction Flow and Data Flow Testing

  • Transaction Flow Testing:
    • Understanding transaction flows.
    • Techniques for testing transaction flows.
  • Data Flow Testing:
    • Basics of data flow testing.
    • Strategies for identifying anomalies in data flow.
    • Applications of data flow testing.
  • Domain Testing:
    • Domains and paths in software testing.
    • Characteristics of “nice” and “ugly” domains.
    • Domain testing methodologies.
    • Interfaces testing and testability considerations.

UNIT - III: Paths, Path Products, and Regular Expressions

  • Path Products and Path Expressions:
    • Representation of paths using algebraic expressions.
    • Reduction procedures for simplifying path expressions.
  • Applications of Path Products:
    • Detecting flow anomalies using regular expressions.
  • Logic-Based Testing:
    • Decision tables and their role in testing.
    • Path expressions and KV charts for logical testing.
    • Writing specifications for logic-based tests.

UNIT - IV: State, State Graphs, and Transition Testing

  • State Graphs:
    • Modeling software behavior using state graphs.
    • Characteristics of good and bad state graphs.
  • State Testing:
    • Techniques for testing state transitions.
  • Testability Tips:
    • Best practices for improving testability in state-based systems.

UNIT - V: Graph Matrices and Applications

  • Graph Matrices:
    • Motivational overview of graph matrices.
    • Matrix representation of graphs.
    • Relations and powers of a matrix.
  • Node Reduction Algorithm:
    • Simplifying complex graphs using node reduction techniques.
  • Building Tools:
    • Exposure to testing tools like JMeter, Selenium, SoapUI, or Catalon Studio.
    • Hands-on implementation of test cases using these tools.

Textbooks

  1. Software Testing Techniques by Boris Beizer, Dreamtech, Second Edition.
  2. Software Testing Tools by Dr. K. V. K. K. Prasad, Dreamtech.

Reference Books

  1. The Craft of Software Testing by Brian Marick, Pearson Education.
  2. Software Testing Techniques – SPD (Oreille).
  3. Software Testing in the Real World by Edward Kit, Pearson.
  4. Effective Methods of Software Testing by Perry, John Wiley.
  5. The Art of Software Testing by Meyers, John Wiley.