Basics of Software Testing, Basic Principles, Test case selection and Adequacy
Humans, Errors and Testing, Software Quality; Requirements, Behavior and Correctness, Correctness Vs Reliability; Testing and Debugging; Test Metrics; Software and Hardware Testing; Testing and Verification; Defect Management; Execution History; Test Generation Strategies; Static Testing; Test Generation from Predicates. Sensitivity, Redundancy, Restriction, Partition, Visibility and Feedback, Test Specification and cases, Adequacy Criteria, Comparing Criteria
A perspective on Testing
Basic definitions, Test cases, Insights from a Venn diagram, Identifying test cases, Error and fault taxonomies, Level of testing, Examples: Generalized pseudo code, The triangle problem, the Next Date function, The commission problem, The SATM (Simple Automation Teller Machine) problem, The currency converter, Saturn windshield wiper
Boundary value testing, Equivalence class testing, Decision table based testing
Boundary value analysis, Robustness testing, Worst-case testing, special value testing, Examples, Random testing, Equivalence classes, Equivalence test cases for triangle problem, Next Date function and commission problem, Guidelines and observations, Decision tables, Test cases for triangle problem
Path Testing, Data flow testing, Levels of Testing, Integration Testing
DD Paths, Test coverage metrics, Basis path testing, guidelines and observations, Definition Use testing, Slice based testing, Guidelines and observations. Traditional view of testing levels, Alternative life cycle models, the SATM systems, separating integration and system testing, Guidelines and observations.
Fault Based Testing, Planning and Monitoring the Process, Documenting Analysis and Test
Assumptions in fault-based testing, Mutation Analysis, Fault-based Adequacy Criteria; Variations on mutation Analysis; From Test case specification to Test Cases, Scaffolding, Generic vs. specific Scaffolding, Test Oracles, Self checks as oracles, Capture and Replay. Quality and Process, Test and Analysis strategies and plans, Risk Planning, Monitoring the Process, Improving the process, The quality team, Organizing documents, Test strategy document, Analysis and test plan, Test design specifications documents, Test and analysis reports.
Course Outcome (CO):
At the end of this course, the students will be able to
CO1: Acquire knowledge of basic principles and knowledge of software testing and Debugging and test cases.
CO2: Understand the perceptions on testing like levels of testing, generalized pseudo code and with related examples
CO3: Study the various types of testing.
CO4: Analyze the difference between functional testing and structural testing.
CO5: Analyze the performance of fault based testing.
Question paper pattern:
Text Books:
1. Adithya P.Mathur “ Foundations of Software Testing – Fundamental Algorithms and Techniques”, Pearson Education India, 2011
2. Mauro Pezze, Michael Young, Software testing and Analysis- Process, Principles and Techniques, Wiley India, 2012 Paul C Jorgensen, “Software Testing A Craftsman's Approach”, Auerbach publications, 3rd edition, 2011.
Reference Books:
1. KshirasagaraNaik, PriyadarshiTripathy: Software Testing and Quality Assurance, Wiley India 2012
2. M.G. Limaye: Software Testing-Principles, Techniques and Tools – McGraw Hill, 2009