This course will cover various techniques for test case design, as used for testing of software artifacts including requirements, design and code. We will discuss algorithms and techniques for test case design based on graphs, logic, syntax of programming languages and on inputs. Special techniques for testing object-oriented features and web applications will also be discussed. The course will end with symbolic testing techniques. These broadly will cover test cases for both white-box and black-box.
Intended Audience: UG final year and PG Core/Elective: Elective Pre-requisites Programming, Algorithms, Discrete Mathematics (basics)
UG/PG : Both Industry Support The material of this course has been used to offer training for Samsung, ABB and Mindtree. The course will be useful for any firm that does tests their software.
11278 students have enrolled already!!
Course instructor
Meenakshi D Souza is currently an Associate Professor at IIIT-Bangalore.Meenakshi did her Master TMs in Mathematics from University of Madras, Chennai and her Ph. D. in Theoretical Computer Science from The Institute of Mathematical Sciences, Chennai. She joined the research department of Honeywell Technology Solutions, Bangalore soon after completing her Ph. D. and worked there in the areas of Formal Verification of Software Design, Model Based Development and Physical Access Control before joining IIIT-Bangalore. Her research interests are in Formal Methods, Model Based Development,Software Testing and Automata Theory.
Coure layout Week 1 :Techniques and algorithms for test case design: Graphs based testing- structural coverage criteria. Week 2 :Graphs based testing: Data flow coverage criteria Week 3 :Graphs based testing: Data flow coverage criteria Week 4 :Graphs coverage for source code, design elements and requirements Week 5 :Techniques and algorithms for test case design: Logic based testing- Predicates, logic based coverage criteria Week 6: Specification based logic coverage, logic coverage on finite state machines Week 7: Input space partitioning: Input domain modeling, combination strategies criteria Week 8 : Syntax based testing: Coverage criteria based on syntax, mutation testing Week 9: Test case design (as learnt above) applied to object-oriented applications Week 10: Test case design (as learnt above) applied to web applications Week 11 : Symbolic testing Week 12: Concolic testing, Conclusion Suggested Reading:
Book: Introduction to Software Testing, Paul Ammann and Jeff Offutt, Cambridge University Press, 2nd edition, 2016.
Papers:
P. Godefroid, N. Klarlund and K. Sen, DART: Directed Automated Random Testing, Proc. PLDI 2005.
K. Sen, D. Marinov and G. Agha, CUTE: A Concolic Unit Testing Engine for C, Proc. ESEC-FSE 2005.
K. Sen, Race directed random testing of concurrent programs, in Proc. PLDI 2008.
K. Sen, Effective random testing of concurrent programs, in Proc. 22nd ASE, 2007.
Certification exam:
The exam is optional for a fee. Exams will be on 22 Oct, 2017.
Time: Shift 1: 9am-12 noon; Shift 2: 2pm-5pm
Any one shift can be chosen to write the exam for a
course.
Registration URL: Announcements will be made when the
registration form is open for registrations.
The online registration form has to be filled and the
certification exam fee needs to be paid. More details will be made
available when the exam registration form is published.
Certification :
Final score will be calculated as : 25% assignment score + 75% final exam score
25% assignment score is calculated as 25% of average of best 8 out of 12 assignments.
E-Certificate
will be given to those who register and write the exam and score
greater than or equal to 40% final score.Certificate will have your
name, photograph and the score in the final exam with the breakup. It
will have the logos of NPTEL and IIT Madras . It will be e-verifiable
at nptel.ac.in/noc.