BIRLA INSTITUTE OF TECHNOLOGY & SCIENCE, PILANI
WORK INTEGRATED LEARNING PROGRAMMES
COURSE HANDOUT
Part A: Content Design
Course Title SOFTWARE TESTING METHODOLOGIES
Course No(s) SE* ZG552 / SSZG552
Credit Units 4
Course Author Prashant Joshi
Version No 1.0
Date
Course Objectives
No Objective
CO1 The course aims at providing a sound conceptual foundation in the area of Software Testing
Methodologies with emphasis on concepts and techniques for testing and analysis of software
CO2 The testing of software, at a unit, subsystem and system level. Various test techniques:
specification based testing and code based testing. Techniques and methods for software test
generation and validation.
CO3 The Software Analysis: Static and Dynamic. Test adequacy. Testing Object Oriented Software.
The types of software testing: Regression and interoperability. The software test processes and
management
Text Book(s)
T1 Software Testing – A Craftsman’s Approach, Fourth Edition, Paul C Jorgenson, CRC Press
T2 Foundations of Software Testing, Second Edition, Aditya P Mathur, Pearson
Reference Book(s) & other resources
R1 The Art of Software Testing, Third Edition, Glenford J. Myers, Tom Badget, Corey Sandler,
R2 Software Testing and Quality Assurance – Theory and Practice, Kshirasagar Naik,
Priyadarshi Tripathy, Wiley, 2013
R3 Testing Object Oriented Systems: Models, Patterns and Tools, Robert V Binder, Addison
Wesley
R4 Guide to Software Engineering Body of Knowledge, Version 3, IEEE
Content Structure
Module 1: Introduction to Software Testing & Techniques
Topic No. Topic Title Reference
1.1 Introduction to Software Testing Lecture Notes
1.2 Overview of the Course Lecture Notes
1.3 Software Testing Techniques T1 Chapter 1 & T2 Chapter 1
1.4 Software Testing – Quality Attributes, Types and T1 Chapter 1 & T2 Chapter 1
Levels
Module 2: Mathematics & Formal Methods
Topic No. Topic Title Reference
2.1 Permutations and Combinations Lecture Notes & Slides
2.2 Propositional Logic T1 3.4
2.3 Discrete Math T1 Chapter 3
2.4 Graph Theory T1 Chapter 4
Module 3: Specification Based Testing
Topic No. Topic Title Reference
3.1 Specification Based Testing – Overview Lecture Notes
3.2 Equivalence Class T1 Chapter 6
3.3 Boundary Value Analysis T1 Chapter 5
3.4 Example & Case Study Lecture Notes, T1 Chapter 6 & 5
Module 4: Specification Based Testing
Topic No. Topic Title Reference
4.1 Domain Testing T2 Chapter 3
4.2 Combinatorial Lecture Notes
4.3 Decision Table Based Testing T1 Chapter 7
4.4 Example & Case Study T1 Chapter 7 & Lecture Notes
Module 5: Code Based Testing
Topic No. Topic Title Reference
5.1 Code Based Testing – Overview Lecture Notes
5.2 Path Testing T1 Chapter 8
5.3 Examples T1 Chapter 8
Module 6: Code Based Testing
Topic No. Topic Title Reference
6.1 Data Flow Testing T1 Chapter 9
6.2 Path Based Testing – Metric T1 Chapter 8 & Lecture Notes
6.3 Examples T1 Chapter 9 & T1 Chapter 8
Module 7: Model Based Testing
Topic No. Topic Title Reference
7.1 Model Based Testing – Introduction & Overview T1 Chapter 12
7.2 Finite State Machines & Fault Model T2 Chapter 5
7.3 Examples T1 Chapter 17
7.4 Case Study Lectures Notes & T1 Chapter 17
Module 8: Model Based Testing
Topic No. Topic Title Reference
8.1 Model Based Testing – Systems T1 Chapter 17
8.2 Model Based Testing – System of Systems T1 Chapter 17 & T2 Chapter 5
8.3 Example T1 Chapter 17 & Lecture Notes
8.4 Cases Study T1 Chapter 17 & Lecture Notes
Module 9: Object Oriented Testing
Topic No. Topic Title Reference
9.1 OO Software & OO Software test – Introduction & Lecture Notes & T1 Chapter 15
Overview
9.2 Issues in Testing OO Software T1 Chapter 15
9.3 OO Unit Testing T1 Chapter 15
9.4 Examples T1 Chapter 15 & Lecture Notes
Module 10: Object Oriented Testing
Topic No. Topic Title Reference
10.1 OO Integration Testing T1 Chapter 15
10.2 OO System Testing T1 Chapter 15
10.3 OO – GUI Testing T1 Chapter 15 & Lecture Notes
10.4 Examples & Cases T1 Chapter 15 & Lecture Notes
Module 11: Integration Testing
Topic No. Topic Title Reference
11.1 Integration Testing – Introduction, Overview & T1 Chapter 13
Issues
11.2 Integration Testing – Types & Strategies T1 Chapter 13
11.3 Examples T1 Chapter 13
11.4 Cases T1 Chapter 13 & Lecture Notes
Module 12: System Testing
Topic No. Topic Title Reference
12.1 System Testing – Introduction, Overview & Issues T1 Chapter 14
12.2 Systems Testing – Types, Techniques & Strategies T1 Chapter 14
12.3 Examples T1 Chapter 14 & Lecture Notes
Module 13: Life-Cycle Based Testing
Topic No. Topic Title Reference
13.1 Life-Cycle Based Testing – Overview and T1 Chapter 11
Perspective
13.2 Life-Cycles – Water fall, Iterative, and Agile T1 Chapter 11
13.3 Implications and issues, Strategies & Models T1 Chapter 11
13.4 Example and Case Lecture Notes
Module 14: Test Adequacy and Enhancement
Topic No. Topic Title Reference
14.1 Test Adequacy – Need & Overview T2 Chapter 7
14.2 Test Adequacy Assessment – Data Flow T2 Chapter 7
14.3 Test Adequacy Assessment – Control Flow T2 Chapter 7
14.4 Examples & Cases T2 Chapter 7 & Lecture Notes
Module 15: Regression Testing
Topic No. Topic Title Reference
15.1 Need, Motivation & Techniques T2 Chapter 9
15.2 Regression Testing – Test Selection (Execution T2 Chapter 9
Trace)
15.3 Regression Testing – Test Selection (Dynamic T2 Chapter 9
Slicing)
Module 16: Test Case Minimization, Prioritization & Optimization
Topic No. Topic Title Reference
16.1 Minimization, Prioritization & Optimization T2 Chapter 9
Techniques
16.2 Test Selection Algorithms T2 Chapter 9
16.3 Examples T2 Chapter 9
Module 17: Testing Non-functional Requirements
Topic No. Topic Title Reference
17.1 Reliability Analysis T2 Chapter 9, R1
17.2 Fault Tolerance T2 Chapter 9, R1
17.3 Examples T2 Chapter 9, R1
Learning Outcomes:
No Learning Outcomes
LO1 Introduce the course and course handout. Bring a perspective of need and motivation for this
course. Provide an overview of the course, quality attributes, levels and types of Testing
LO2 Provide a base to the software testing techniques in form of mathematics and formal methods.
Review topics of permutation/combination, discrete mathematics and graph theory. Focus is
on the relevance to software testing.
LO3 Bring an approach to look at the system from specification perspective. Learn the relevant
techniques for testing specifications – Equivalence Class, Boundary Value Analysis,
Combinatorial, Decision Tables and Domain Testing
LO4 Take a code level approach to testing and assuring quality. Learn the relevant techniques for
testing code – Path Based Testing and Data Flow Testing
LO5 Introduce Model Based Testing. Various Model for Software testing, their choice and
techniques. Learn Finite State Machine, Petri Nets and State Charts. Learn to use these to
derive testing cases
LO6 Understand the issues in OO Software Testing. Learn techniques and sublets of Unit,
Integration and Systems Testing of OO Software. GUI Testing for OO Software
LO7 Overview and need for Integration and Systems Testing of Software. Learn the techniques of
Integration and Systems Testing
LO8 Provide an overview from a life-cycle perspective of Software and Software Products. Agile
Testing and Agile Model-Driven Development. Role of Test engineers in life-cycle-based
testing
LO9 Learn the need for test adequacy and need for enhancement of test cases. Various techniques
and criteria for measuring of test adequacy (data and control flow). Using the criteria to
enhance test cases.
LO10 Explore and understand the need for minimization and prioritization. Review the regression
test problem. Selection of test cases for regression.
Part B: Contact Session Plan
Academic Term
Course Title Software Testing Methodologies
Course No
Lead Instructor
Teaching Methodology (Regular Contact Session Model)
The pedagogy for this course is centred around classroom contact session model in which
lecture sessions (each of 1 or 2 hrs) to be delivered. In this model, in addition to delivery of
lessons as per the topic, contact sessions are to be enriched with discussion on organization-
specific practices and case-problems experienced by typical practising project managers in
Indian IT industry.
As part of evaluation, two-week long take-home assignments on specific topics for study,
analysis or research are assigned to individual students, at the end of which they prepare a
report or make a presentation to the class.
Course Delivery
There are 16 Contact Sessions (of 2 hours each)—8 before mid-semester and 8 post-
mid-semester over a period of 16 weeks
The 8th & 16th Contact Sessions are planned for review of topics pre-mid-semester and
pre-comprehensive examinations.
Course Contents
List of Topic Title Text/Ref
Contact
Session
Book/external
(from content structure in Course Handout) resource
1 Introduction to Software Testing & Techniques (Module 1) T1/C-1, T2/C-1
2 Mathematics & Formal Methods (Module 2) T1/C-3,4
3 Specification Based Testing (Module 3, 4) T1/C-5,6,7
4 Code Based Testing (Module 5, 6) T1/C-8,9
5 Model Based Testing (Module 7, 8) T1/C-17
6 Object Oriented Testing (Module 9, 10) T1/C-15 & Lecture Notes
7 GUI Testing (Module 10) T1/C-15 & Lecture Notes
8 Review of Topics (17) for Mid-Sem Examination
9 Integration Testing (Module 11) T1/C-13
10 System Testing (Module 12) T1/C-14
11 Life-Cycle Based Testing (Module 13) T1/C-11
12 Test Adequacy and Enhancement (Module 14) T2/C-7
13 Regression Testing (Module 15) T2/C-9
14 Test Case Minimization, Prioritization & Optimization
T2/C-9
(Module 16)
15 Testing Non-functional Requirements , Reliability Analysis, T1,T2, R1
Fault Tolerance, When to Stop Testing (Module 16, 17)
16 Review of All Topics for Compre Examination
Assignments / Experiential Learning Components
Each student is given an individual assignment on any of the topics discussed
in the class; assignment topics are based on practical problems experienced or
part of work-items or tools used by collaborating organizations
Assignments are take-home and deadline-driven (typically of 2 weeks
duration) announced post Mid-semester examination
Students to spend at least 16 hours of work in study, research, discussion and
preparation of the report and presentation.
As part of deliverables, the student is expected to prepare a report and/or
make a short-presentation in the class
All assignments are to be submitted online or in-class within the specified
deadlines
Evaluation Scheme:
Legend: EC = Evaluation Component; AN = After Noon Session; FN = Fore Noon Session
No Name Type Duration Weight Day, Date, Session, Time
Quiz-I Online 1 Week 5% To be announced
EC-1 Quiz-II Online 1 Week 5% To be announced
Assignment Online 2 Weeks 10% To be announced
EC-2 Mid-Semester Test Closed Book 2 hours 30% To be announced
Comprehensive To be announced
EC-3 Open Book 3 hours 50%
Exam
Note - Evaluation components can be tailored depending on the proposed model.
Important Information
Syllabus for Mid-Semester Test (Closed Book): Topics in Weeks 1-7
Syllabus for Comprehensive Exam (Open Book): All topics given in plan of study
Evaluation Guidelines:
1. EC-1 consists of either two Assignments or three Quizzes. Announcements regarding
the same will be made in a timely manner.
2. For Closed Book tests: No books or reference material of any kind will be permitted.
Laptops/Mobiles of any kind are not allowed. Exchange of any material is not
allowed.
3. For Open Book exams: Use of prescribed and reference text books, in original (not
photocopies) is permitted. Class notes/slides as reference material in filed or bound
form is permitted. However, loose sheets of paper will not be allowed. Use of
calculators is permitted in all exams. Laptops/Mobiles of any kind are not allowed.
Exchange of any material is not allowed.
4. If a student is unable to appear for the Regular Test/Exam due to genuine exigencies,
the student should follow the procedure to apply for the Make-Up Test/Exam. The
genuineness of the reason for absence in the Regular Exam shall be assessed prior to
giving permission to appear for the Make-up Exam. Make-Up Test/Exam will be
conducted only at selected exam centres on the dates to be announced later.
It shall be the responsibility of the individual student to be regular in maintaining the self-
study schedule as given in the course handout, attend the lectures, and take all the prescribed
evaluation components such as Assignment/Quiz, Mid-Semester Test and Comprehensive
Exam according to the evaluation scheme provided in the handout.