Prerequisites
- Software Engineering: A foundational understanding of software development life cycle (SDLC), software design principles, and basic programming concepts is essential.
Course Objectives
- To provide knowledge of the concepts in software testing, including the testing process, criteria, strategies, and methodologies.
- 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:
- Understand the purpose of testing and path testing.
- Understand strategies in data flow testing and domain testing.
- Develop logic-based test strategies.
- Understand graph matrices and their applications.
- 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
- Software Testing Techniques by Boris Beizer, Dreamtech, Second Edition.
- Software Testing Tools by Dr. K. V. K. K. Prasad, Dreamtech.
Reference Books
- The Craft of Software Testing by Brian Marick, Pearson Education.
- Software Testing Techniques – SPD (Oreille).
- Software Testing in the Real World by Edward Kit, Pearson.
- Effective Methods of Software Testing by Perry, John Wiley.
- The Art of Software Testing by Meyers, John Wiley.