← All MCA papers

MCA-120

Software Testing

Finding defects on purpose — test levels and types, functional and structural techniques, test management, and testing in an agile team.

Semester
Semester 2
Credits
4
Scheme
3 lectures + 1 tutorial a week
Contact hours
40 across four units
Category
Core Elective - I

What the paper is

Software Testing is the paper that treats testing as a discipline with its own techniques rather than as something done after the code is finished. It opens by separating testing from debugging — one finds failures, the other finds their causes — and that distinction runs through everything after it.

The technique units are the heart. Functional testing derives test cases from the specification: equivalence partitioning, boundary value analysis, decision tables, state transitions, use cases. Structural testing derives them from the code: control flow graphs, cyclomatic complexity, data flow and slice-based testing, and mutation testing.

Unit III moves from technique to management — plans, strategies, entry and exit criteria, estimation, risk and regression — and Unit IV closes with TDD, object-oriented testing and agile. The four units are unusually independent of each other, which makes the paper easy to revise in pieces.

What to concentrate on

  • Cyclomatic complexity is the guaranteed numerical question: given a program fragment, draw the control flow graph, compute the complexity three ways, and list the independent paths. All three ways should agree, and saying so is worth a mark.
  • Equivalence partitioning and boundary value analysis are asked together, as “derive the test cases for this specification”. Practise on a spec with two or three bounded inputs; the pattern generalises.
  • Know the four test levels — component, integration, system, acceptance — and what each one is looking for. That single list anchors half the short questions in Units I and III.

Syllabus, unit by unit

Summarised from the approved scheme. Hours are the contact hours the scheme allots, which is a fair guide to where the marks sit.

Unit I · Fundamentals and the testing lifecycle

10 hours
  • What testing is and its objectives; testing versus debugging; why testing is necessary
  • Errors, defects and failures; test plans and test cases; principles of testing
  • The test process, the psychology of testing, the limitations of testing
  • Test levels: component, integration, system and acceptance testing
  • Static testing: fundamentals, work products that can be examined, benefits

Unit II · Functional and structural testing

10 hours
  • Overview of testing types
  • Functional testing: equivalence partitioning, boundary value analysis, decision table testing, state transition testing, deriving test cases from use cases
  • Structural testing: control flow graphs, DD-paths, cyclomatic complexity, graph matrices
  • Control flow testing, data flow testing, slice-based testing, mutation testing

Unit III · Test management and regression

10 hours
  • The test manager and tester, the purpose and content of a test plan, test strategy and approach
  • Entry and exit criteria, the test execution schedule, estimation techniques, the test report
  • Configuration management: risks and testing, product and project risks, risk-based testing, priority category schemes
  • Defect management: the defect and the defect report
  • Regression testing: regression versus development testing, regression test case selection

Unit IV · TDD, object-oriented testing and agile testing

10 hours
  • Test-driven development: automated test execution, pros and cons
  • Object-oriented testing: issues, and unit, integration and system testing of object-oriented software
  • Agile software development approaches: Extreme Programming, Scrum, test-driven development
  • Agile model-driven development, traditional versus agile testing, the tester's role in an agile team, exploratory testing

How it is examined

  • Question 1 is compulsory, covers the whole syllabus, and is made of objective or short-answer questions. It carries 12 marks.
  • The rest of the paper is four units matching the four above. Each unit sets two questions and you attempt one, so there are four more answers at 12 marks each.
  • Examiners are asked to map every question to a course outcome using Bloom's taxonomy, which is why questions are phrased as “apply”, “analyse” or “evaluate” rather than only “explain”.

The pass mark is 40 out of 100 in every paper.

Learning objectives

  • Core software testing concepts
  • Testing at the unit, module, subsystem and system levels
  • The testing process
  • Manual and automated techniques for generating and validating test data
  • Test-driven development and testing best practices

Assumed beforehand

  • Fundamentals of software engineering
  • Basic syntax and semantics of programming languages
  • Fundamentals of discrete mathematics — sets, graphs, logic and grammar

Paired in the scheme with MCA-168 Lab based on Core Elective I.

Books it is taught from

  1. TB1Paul C. Jorgensen, “Software Testing: A Craftsman's Approach”, CRC Press, 4th edition, 2014
  2. TB2Boris Beizer, “Software Testing Techniques”, Van Nostrand Reinhold, 2nd edition, 1990
  3. TB3Paul Ammann and Jeff Offutt, “Introduction to Software Testing”, Cambridge University Press, 2nd edition, 2016

Notes for MCA-120

Lecture notes, question papers and assignments filed against MCA-120 are in the library. Everything there has been checked by a moderator before it appears, and an account is free — new ones are approved by hand, which is what keeps the shelf clean.

Units, objectives, contact hours and book lists summarise the MCA scheme of examination approved by the Board of Studies of USIC&T on 28 July 2025 and by the AC sub-committee on 1 August 2025, effective from the 2025‑2026 academic year. The introduction and revision notes above are written for NoteVault and are not part of that document. Check the university's own copy before relying on any of this for an exam.