National Institute of Technology Rourkela

राष्ट्रीय प्रौद्योगिकी संस्थान राउरकेला

ଜାତୀୟ ପ୍ରଯୁକ୍ତି ପ୍ରତିଷ୍ଠାନ ରାଉରକେଲା

An Institute of National Importance

Syllabus

Course Details

Subject {L-T-P / C} : CS6404 : Software Testing { 3-0-0 / 3}

Subject Nature : Theory

Coordinator : Durga Prasad Mohapatra

Syllabus

Introduction to software testing, Basic concepts, Verification and Validation, Black box testing: Boundary value testing, Equivalence class testing, State Table Based Testing,Decision Table Based Testing, Cause-Effect Graph based Testing, Positive and Negative Testing, Orthogonal Array Testing. [10 hrs]
White box testing: statement coverage, Branch coverage, condition coverage, MC/DC, path coverage, McCabe’s cyclomatic complexity Data flow based testing, Mutation testing. [7 hrs]
Static testing, Integration testing, System testing, Interaction testing, Performance testing, Regression testing, Error seeding, Debugging. [7 hrs]
Object-oriented software testing: issues in object-oriented testing, Fault based testing, test cases and class hierarchy, Scenario based Test design, Class testing: Random testing for object-oriented classes, Partition testing at the class level Inter class test case design: multiple class testing, tests derived from behavioral models, Testing web based systems, Testing tools.[12 hrs]

Course Objectives

  • To learn the evolution of software testing techniques, Myths and facts of software testing, Models for testing processes, various types of software testing.
  • To design test cases using black-box and white-box testing techniques, integration testing techniques and system testing techniques.
  • To understand basic concepts of regression testing, Problems of regression testing, and types of regression testing techniques.
  • To learn different strategies for testing of object-oriented, agile-based and web-based applications.

Course Outcomes

After reading this subject, students will be able to:
1. Design test cases for software systems using black box testing techniques.
2. Design test cases for software systems using white box testing techniques.
3. Apply integration testing and system testing on different software systems.
4. Carry out regression testing of software systems.
5. Test conventional, object-oriented, agile-based and web-based software systems.

Essential Reading

  • C. J. Paul, Software testing: A craftsmen’s approach, CRC Press , 2013
  • N. Chauhan, Software Testing: Principles and Practices, Oxford University Press , 2018

Supplementary Reading

  • S. Desikan, R. Gopalswamy, Software Testing: Principles and Practices, Pearson , 2006
  • G. J. Myers, The art of software testing, Wiley Interscience New York , 2011