Software testing AND Quality Assurance Syllabus


Prerequisite: Software Engineering

Objective: This course equips the students with a solid understanding of:
• Practices that support the production of quality software
• Software testing techniques
• Life-cycle models for requirements, defects, test cases, and test results
• Process models for units, integration, system, and acceptance testing
• Quality Models

1. Introduction: Software Quality, Role of testing, verification and validation,
objectives and issues of testing, Testing activities and levels, Sources of Information
for Test Case Selection, White-Box and Black-Box Testing , Test Planning and
Design, Monitoring and Measuring Test Execution, Test Tools and Automation, Test
Team Organization and Management .

2. Unit Testing: Concept of Unit Testing , Static Unit Testing , Defect Prevention , 3.4
Dynamic Unit Testing , Mutation Testing , Debugging , Unit Testing in eXtreme

3. Control Flow Testing: Outline of Control Flow Testing, Control Flow Graph, Paths
in a Control Flow Graph, Path Selection Criteria, All-Path Coverage Criterion ,
Statement Coverage Criterion, Branch Coverage Criterion, Predicate Coverage
Criterion, Generating Test Input, Examples of Test Data Selection.

4. Data Flow Testing: Data Flow Anomaly,. Overview of Dynamic Data Flow Testing,
Data Flow Graph, Data Flow Terms, Data Flow Testing Criteria, Comparison of Data
Flow Test Selection Criteria, Feasible Paths and Test Selection Criteria, Comparison
of Testing Techniques.

5. System Integration Testing: Concept of Integration Testing, Different Types of
Interfaces and Interface Errors, Granularity of System Integration Testing, System
Integration Techniques, Software and Hardware Integration, Test Plan for System
Integration, Off-the-Shelf Component Integration, Off-the-Shelf Component Testing,
Built-in Testing

6. System Test Categories: Basic Tests, Functionality Tests, Robustness Tests,
Interoperability Tests, Performance Tests, Scalability Tests, Stress Tests, Load and
Stability Tests, Reliability Tests, Regression Tests, Documentation Tests.

7. Functional Testing: Equivalence Class Partitioning, Boundary Value Analysis,
Decision Tables, Random Testing, Error Guessing, Category Partition.

8. System Test Design: Test Design Factors, Requirement Identification,
Characteristics of Testable Requirements, Test Design Preparedness Metrics, Test
Case Design Effectiveness

9. System Test Planning And Automation: Structure of a System Test Plan,
Introduction and Feature Description, Assumptions, Test Approach, Test Suite
Structure, Test Environment, Test Execution Strategy, Test Effort Estimation,
Scheduling and Test Milestones, System Test Automation, Evaluation and Selection
of Test Automation Tools, Test Selection Guidelines for Automation, Characteristics
of Automated Test Cases, Structure of an Automated Test Case, Test Automation

10. System Test Execution: Preparedness to Start System Testing, Metrics for Tracking
System Test, Metrics for Monitoring Test Execution, Beta Testing, First Customer
Shipment, System Test Report, Product Sustaining, Measuring Test Effectiveness.

11. Acceptance Testing: Types of Acceptance Testing, Acceptance Criteria, Selection of
Acceptance Criteria, Acceptance Test Plan, Acceptance Test Execution, Acceptance
Test Report, Acceptance Testing in eXtreme Programming.

12. Software Quality: Five Views of Software Quality, McCall’s Quality Factors and
Criteria, Quality Factors Quality Criteria, Relationship between Quality Factors and
Criteria, Quality Metrics, ISO 9126 Quality Characteristics, ISO 9000:2000 Software
Quality Standard ISO 9000:2000 Fundamentals, ISO 9001:2000 Requirements

Text Book
1. “Software Testing and Quality Assurance: Theory and Practice”, Sagar Naik,
University of Waterloo, Piyu Tripathy, Wiley , 2008
1. “Effective methods for Software Testing “William Perry, Wiley.
2. “Software Testing – A Craftsman’s Approach”, Paul C. Jorgensen, CRC Press, 1995.
3. “The Art of Creative Destruction”, Rajnikant Puranik, SPD.
4. “Software Testing”, Srinivasan Desikan and Gopalaswamy Ramesh – Pearson
Education 2006.
5. “Introducing to Software Testing”, Louis Tamres, Addison Wesley Publications, First
6. “Software Testing”, Ron Patton, SAMS Techmedia Indian Edition, Pearson
Education 2001.