Software Verification, Validation and Testing

Course Objectives:

  1. Explain the importance of software verification and validation in the context of AI, ML, IoT, and Data Science.
  2. Apply different testing techniques and methodologies to identify and resolve software defects effectively.
  3. Implement automated testing and utilize test automation tools for efficient and continuous testing.
  4. Evaluate and validate AI/ML models and perform data validation in Data Science projects.

Course Outcomes:

  • CO1 Understand the concepts of software verification, validation, and testing and their significance in AI, ML, IoT, and Data Science applications.
  • CO2 Develop expertise in applying various testing methodologies, automated testing, and test automation tools to ensure software quality and reliability.
  • CO3 Demonstrate the ability to use test management and bug tracking tools effectively to plan, monitor, and manage the testing process.
  • CO4 Assess the trade-offs between different testing approaches and make informed decisions to ensure comprehensive software testing.
UNIT I 
Introduction: Terminology, evolving nature of area, Errors, Faults and Failures, Correctness and reliability, Testing and debugging, Static and dynamic testing, Exhaustive testing: Theoretical foundations: impracticality of testing all data, impracticality of testing all paths, no absolute proof of correctness.

UNIT II 
Software Verification and Validation Approaches and their Applicability: Software technical reviews; Software testing: levels of testing - module, integration, system, regression; Testing techniques and their applicability-functional testing and analysis, structural testing and analysis, error-oriented testing and analysis, hybrid approaches, integration strategies, transaction flow
analysis, stress analysis, failure analysis, concurrency analysis, performance analysis; Proof of correctness; simulation and prototyping; Requirement tracing.

UNIT III 
Test Generation: Test generations from requirements, Test generation pats, Data flow analysis, Finite State Machines models for flow analysis, Regular expressions based testing, Test Selection, Minimizations and Prioritization, Regression Testing.

UNIT IV 
Mutation and mutants: Introduction, Mutation and mutants, Mutation operators, Equivalent mutants, Fault detection using mutants, Types of mutants, Mutation operators for C and Java.

Text Books:
1. Software Verification and Validation: An Engineering and Scientific Approach, Marcus S. Fisher, Springer, 2007
2. Foundations of Software Testing, Aditya P. Mathur, Pearson Education, 2008
3. Software Testing: Principles and Practices, Srinivasan Desikan, Gopalaswamy Ramesh, Pearson Education India,2006

Reference Books:
1. "Software Testing: Principles, Techniques, and Tools" by K. K. Aggarwal and Yogesh Singh
2. "Software Testing" by Ron Patton
3. "Testing Computer Software" by Cem Kaner, Jack Falk, and Hung Q. Nguyen
4. "The Art of Software Testing" by Glenford J. Myers, Corey Sandler, and Tom Badgett

No comments:

Post a Comment