Software Engineering

106601
Back to Software Engineering

Module 4: Software Testing

  1. Q1a. A characteristic of a software system that can lead to a system error is known as (i) human error or mistake (ii) system fault (iii) system error (iv) system failure20202m

    Module 4: Software Testing

    A characteristic of a software system that can lead to a system error is known as

    (i) human error or mistake
    (ii) system fault
    (iii) system error
    (iv) system failure

    View this question on its own page →
    Worked Solution

    Solution

    Correct Answer: (ii) system fault

    Explanation

    As per IEEE definitions (also Pressman/Sommerville):

    • Human Error / Mistake - Human action that produces an incorrect result
    • Fault / Defect / Bug - Characteristic / Anomaly in the software (e.g., wrong code, missing logic) that can lead to an error. It is a static condition.
    • Error - Human-observable incorrect internal state (failure may not yet have occurred)
    • Failure - Observable deviation from required behavior when system no longer performs required function

    Chain: Mistake → Fault → Error → Failure

    Hence a characteristic of the system that can lead to a system error is a Fault.

    Why others incorrect:

    • (i) Human error is the cause of fault, not a characteristic of the system itself
    • (iii) Error is the result of fault, not the fault itself
    • (iv) Failure is the final observable consequence after error propagates

    Answer: (ii) system fault

  2. Q1b. The CMM model is a technique to (i) automatically maintain the software reliability (ii) improve the software process (iii) test the software (iv) All of the mentioned20212m

    Module 4: Software Testing

    The CMM model is a technique to

    (i) automatically maintain the software reliability
    (ii) improve the software process
    (iii) test the software
    (iv) All of the mentioned

    View this question on its own page →
    Worked Solution

    Solution

    Correct Answer: (ii) improve the software process

    Explanation

    CMM = Capability Maturity Model (SEI, Carnegie Mellon) - framework to assess and improve software process maturity on 5 levels: Initial → Repeatable → Defined → Managed → Optimizing.

    • Not for automatically maintaining reliability (i) - that's testing/maintenance
    • Not just for testing (iii) - broader than testing
    • Hence (iv) all not correct

    Answer: (ii) improve the software process

  3. Q1c. Alpha-testing is done by a) The development team b) A friendly set of customers c) The customer himself d) None of these20232m

    Module 4: Software Testing

    Alpha-testing is done by

    a) The development team
    b) A friendly set of customers
    c) The customer himself
    d) None of these

    View this question on its own page →
    Worked Solution

    Solution

    Correct Answer: (a) The development team

    Explanation

    • Alpha testing - Done in-house by development team / internal testers in controlled environment (at developer's site) before beta.
    • Beta testing - Done by friendly customers / selected external users at customer's site (real environment).
    • Customer himself is ultimate user but not alpha.

    Answer: (a) The development team

  4. Q1c. Measure of reliability is given by: (i) Mean time between success (ii) MTBF (iii) Mean reliable (iv) MTTR20192m

    Module 4: Software Testing

    Measure of reliability is given by:
    (i) Mean time between success
    (ii) MTBF
    (iii) Mean reliable
    (iv) MTTR

    View this question on its own page →
    Worked Solution

    Answer

    (ii) MTBF

    Explanation

    MTBF (Mean Time Between Failures) is a commonly used reliability measure for repairable systems. A higher MTBF generally indicates greater reliability.

    MTBF = Total operating time / Number of failures

    Final answer: (ii) MTBF

  5. Q1d. Boundary value analysis belongs to (i) white box testing (ii) black box testing (iii) white box and black box testing (iv) None of the mentioned20212m

    Module 4: Software Testing

    Boundary value analysis belongs to

    (i) white box testing
    (ii) black box testing
    (iii) white box and black box testing
    (iv) None of the mentioned

    View this question on its own page →
    Worked Solution

    Solution

    Correct Answer: (ii) black box testing

    Explanation

    Boundary Value Analysis (BVA) derives test cases from input domain boundaries without looking at code → Black box / Functional / Specification-based testing.

    • White box needs code (e.g., cyclomatic, basis path)
    • Grey box is mix
    • BVA is always classified under Black box along with Equivalence Partitioning.

    Answer: (ii) black box testing

  6. Q1d. Name of an evaluation technique to assess the quality of test cases is (i) mutation analysis (ii) validation (iii) verification (iv) performance analysis20222m

    Module 4: Software Testing

    Name of an evaluation technique to assess the quality of test cases is

    (i) mutation analysis
    (ii) validation
    (iii) verification
    (iv) performance analysis

    View this question on its own page →
    Worked Solution

    Solution

    Correct Answer: (i) mutation analysis

    Explanation

    Mutation Analysis / Mutation Testing:

    • Create mutants (seed small faults - e.g., change > to >=, + to -) in program

    • Run test suite; if test kills mutant (fails), test is good

    • Mutation Score = Killed mutants / Total mutants → measures quality / effectiveness of test cases.

    • Validation = checking product meets user needs

    • Verification = checking phase output correctly

    • Performance analysis = speed, not test quality.

    Answer: (i) mutation analysis

  7. Q1e. Which of the following is not a part of bug report? (i) Test case (ii) Output (iii) Software version (iv) LOC20202m

    Module 4: Software Testing

    Which of the following is not a part of bug report?

    (i) Test case
    (ii) Output
    (iii) Software version
    (iv) LOC

    View this question on its own page →
    Worked Solution

    Solution

    Correct Answer: (iv) LOC

    Explanation

    Standard Bug Report / Defect Report contains:

    • Test case (steps to reproduce) - (i) YES
    • Output / Actual result + Expected result + Screenshot - (ii) YES
    • Software version / Build, Environment, OS, Severity, Priority, Reporter - (iii) YES
    • LOC (Lines of Code) - NO. LOC is a project metric, not part of bug reporting. Defect report never asks for total LOC.

    Some variations also list "Unexpected output" vs "LOC" - always LOC is the odd one out.

    Answer: (iv) LOC

  8. Q1h. From the following, which quality deals with maintaining the quality of the software product? (i) Quality assurance (ii) Quality efficiency (iii) Quality control (iv) Quality calculation20192m

    Module 4: Software Testing

    From the following, which quality deals with maintaining the quality of the software product?
    (i) Quality assurance
    (ii) Quality efficiency
    (iii) Quality control
    (iv) Quality calculation

    View this question on its own page →
    Worked Solution

    Answer

    (iii) Quality control

    Explanation

    Quality Control (QC) focuses on detecting defects and checking whether the developed product meets specified quality requirements. Quality Assurance (QA) is broader and focuses on preventing defects by improving processes.

    Since the question asks which quality activity deals with maintaining the quality of the software product, the expected answer is Quality Control.

    Final answer: (iii) Quality control

  9. Q1h. Which granularity level of testing checks the behavior of module cooperation? (i) Unit testing (ii) Integration testing (iii) Acceptance testing (iv) Regression testing20212m

    Module 4: Software Testing

    Which granularity level of testing checks the behavior of module cooperation?

    (i) Unit testing
    (ii) Integration testing
    (iii) Acceptance testing
    (iv) Regression testing

    View this question on its own page →
    Worked Solution

    Solution

    Correct Answer: (ii) Integration testing

    Explanation

    Granularity Levels:

    • Unit testing - tests single module in isolation (with stubs/drivers)
    • Integration testing - tests cooperation / interfaces between modules (e.g., big-bang, top-down, bottom-up, sandwich)
    • System / Acceptance testing - tests whole system against SRS
    • Regression testing - re-tests after changes (not a granularity level)

    Answer: (ii) Integration testing

  10. Q1h. Alpha testing is typically performed by (i) End-users (ii) A selected group of external users (iii) The development team in a controlled environment (iv) Automated testing tools20242m

    Module 4: Software Testing

    Alpha testing is typically performed by

    (i) End-users
    (ii) A selected group of external users
    (iii) The development team in a controlled environment
    (iv) Automated testing tools

    View this question on its own page →
    Worked Solution

    Answer: (iii) The development team in a controlled environment

    Alpha testing is performed at the developer's site by the internal development/QA team (and sometimes a limited set of invited users) in a controlled environment, just before beta testing.

    Why the others are wrong:

    • (i) End-users — end users perform acceptance/user testing, or beta testing in real environments.
    • (ii) A selected group of external users — that is beta testing (external users at their own sites).
    • (iv) Automated testing tools — automated tools may support alpha testing, but alpha testing is defined by who runs it (the dev team in a controlled setting), not by tooling.

    So alpha testing is typically performed by the development team in a controlled environment — option (iii).

  11. Budget App•POCKETLY

    Pocketly on Android

    Log daily food, travel, and hostel expenses instantly. Set monthly spending limits and see where your money goes without complex spreadsheets.

    Install Pocketly
  12. Q1i. In Boundary Value Analysis, test cases are designed based on: (i) Average input data (ii) Input conditions at their limits (iii) Randomly selected inputs (iv) Data from previous projects20252m

    Module 4: Software Testing

    In Boundary Value Analysis, test cases are designed based on:

    (i) Average input data
    (ii) Input conditions at their limits
    (iii) Randomly selected inputs
    (iv) Data from previous projects

    View this question on its own page →
    Worked Solution

    Answer: (ii) Input conditions at their limits

    Boundary Value Analysis (BVA) is a black-box (functional) testing technique that designs test cases using the boundary values of the input domain — the values at, just above, and just below the edges of each valid/invalid partition. The rationale is that errors tend to concentrate at the boundaries of input ranges (e.g., for a range [1, 100], test 0, 1, 2, 99, 100, 101).

    Why the others are wrong:

    • (i) Average input data — typical/mid-range values are not the focus of BVA; boundaries are.
    • (iii) Randomly selected inputs — random testing is a different approach (e.g., fuzzing).
    • (iv) Data from previous projects — historical data is not how BVA selects cases.

    BVA therefore designs test cases based on input conditions at their limits — option (ii).

  13. Q1i. A software organization has been assessed at SEI CMM Level 4. Which of the following does the organization need to practice beside Process Change Management and Technology Change Management in order to achieve Level 5? (i) Defect detection (ii) Defect prevention (iii) Defect isolation (iv) Defect propagation20202m

    Module 4: Software Testing

    A software organization has been assessed at SEI CMM Level 4. Which of the following does the organization need to practice beside Process Change Management and Technology Change Management in order to achieve Level 5?

    (i) Defect detection
    (ii) Defect prevention
    (iii) Defect isolation
    (iv) Defect propagation

    View this question on its own page →
    Worked Solution

    Solution

    Correct Answer: (ii) Defect prevention

    Explanation

    SEI CMM Levels:

    1. Initial 2. Repeatable 3. Defined 4. Managed (Quantitative Process Management + Software Quality Management) 5. Optimizing

    To go Level 4 → Level 5, three Key Process Areas (KPAs) must be added:

    • Defect Prevention
    • Technology Change Management
    • Process Change Management

    Question says org is at Level 4 and already practices Process Change + Technology Change → remaining KPA is Defect Prevention.

    • Defect detection/isolation/propagation are not CMM KPAs (distractors).

    Answer: (ii) Defect prevention

  14. Q1i. Main difference between program testing and system testing is a) System testing focuses on testing the interfaces between programs, program testing focuses on individual programs b) Program testing is more comprehensive than system testing c) System testing is tough and program testing is easy d) None of these20232m

    Module 4: Software Testing

    Main difference between program testing and system testing is

    a) System testing focuses on testing the interfaces between programs, program testing focuses on individual programs
    b) Program testing is more comprehensive than system testing
    c) System testing is tough and program testing is easy
    d) None of these

    View this question on its own page →
    Worked Solution

    Solution

    Correct Answer: (a) System testing focuses on testing the interfaces between programs, program testing focuses on individual programs

    Explanation

    • Program/Unit testing - individual program/module in isolation (with drivers/stubs).
    • System testing - tests integrated system as whole, interfaces between programs, end-to-end behavior vs SRS.

    (b) Program testing more comprehensive → false (system testing broader)
    (c) Tough/easy subjective → false

    Answer: (a)

  15. Q1j. What does SEI CMM stand for? (i) Software Engineering Institute Capability Maturity Model (ii) Software Evaluation Institute Capability Maturity Model (iii) Software Engineering Initiative Capability Management Model (iv) Software Evaluation Institute Capability Management Model20242m

    Module 4: Software Testing

    What does SEI CMM stand for?

    (i) Software Engineering Institute Capability Maturity Model
    (ii) Software Evaluation Institute Capability Maturity Model
    (iii) Software Engineering Initiative Capability Management Model
    (iv) Software Evaluation Institute Capability Management Model

    View this question on its own page →
    Worked Solution

    Answer: (i) Software Engineering Institute Capability Maturity Model

    SEI CMM stands for Software Engineering Institute – Capability Maturity Model — a framework developed by the SEI (Carnegie Mellon University) for assessing and improving an organization's software process maturity through five levels:

    1. Initial — ad hoc/chaotic process,
    2. Repeatable — basic project management, repeatable practices,
    3. Defined — documented/standardized processes,
    4. Managed — processes measured and controlled quantitatively,
    5. Optimizing — continuous process improvement.

    Why the others are wrong:

    • (ii), (iii), (iv) — all contain incorrect words ("Evaluation Institute", "Initiative", "Management Model"); the correct expansion is Software Engineering Institute – Capability Maturity Model — option (i).
  16. Q3b. What is 'acceptance' testing? Explain briefly alpha testing and beta testing with suitable examples.20237m

    Module 4: Software Testing

    What is 'acceptance' testing? Explain briefly alpha testing and beta testing with suitable examples.

    View this question on its own page →
    Worked Solution

    Solution

    Acceptance Testing

    Final testing by customer/user to decide acceptance vs rejection. Validates against SRS / business needs before deployment. Types: Alpha & Beta, Regulation, Operational.

    Alpha Testing

    • Where: At developer's site, controlled environment
    • By: Internal testers / development team with customer presence
    • Purpose: Find bugs before beta; Example: Developer tests e-commerce payment flow internally, fixes issues.

    Beta Testing

    • Where: At customer's site, real environment (uncontrolled)
    • By: Selected real users / friendly customers
    • Purpose: Real-world feedback, usability, performance; Example: Release beta app to 100 users to report bugs before public launch.

    Alpha → Beta → Release. Both are Validation activities.

  17. Q3b. Develop a test case for any testing technique for 'student admission system'.20227m

    Module 4: Software Testing

    Develop a test case for any testing technique for 'student admission system'.

    View this question on its own page →
    Worked Solution

    Solution - Test Case for Student Admission System

    Technique: Equivalence Partitioning + BVA (Black box) for "Eligibility: Marks 45-100, Age 17-25"

    Test Case Format: TC_ID, Input, Precondition, Steps, Expected, Actual

    TC Technique Input (Marks, Age) Expected Type
    TC1 Valid EP 75, 20 Admission Allowed Positive
    TC2 Invalid EP Low 44, 20 Reject - Marks low Negative
    TC3 Invalid EP High 101, 20 Reject - Marks invalid Negative
    TC4 BVA Lower 45, 17 Allowed (boundary) Boundary
    TC5 BVA Upper 100, 25 Allowed (boundary) Boundary
    TC6 Below boundary 44, 16 Reject both Boundary
    TC7 Above boundary 101, 26 Reject both Boundary

    Steps for TC1:

    1. Login as admin → Admission → New
    2. Enter Name=ABC, Marks=75, Age=20, Docs uploaded
    3. Click Submit → Verify "Application Accepted" + DB entry.

    Traceability: Covers functional requirement FR-01: System shall admit if marks ≥45 and age 17-25.

  18. Q4a. What is software quality assurance? Explain different quality matrices.20217m

    Module 4: Software Testing

    What is software quality assurance? Explain different quality matrices.

    View this question on its own page →
    Worked Solution

    Solution

    Software Quality Assurance (SQA)

    Systematic, planned set of actions to ensure quality in process and product. Prevention-oriented (vs QC which is detection). Encompasses standards, reviews, audits, testing, process improvement.

    Quality Matrices / Metrics

    1. Product Quality Metrics:

    • Defect Density = Defects / KLOC or FP - reliability indicator
    • Mean Time To Failure (MTTF) / MTBF
    • Customer Satisfaction (surveys)

    2. Process Metrics:

    • Defect Removal Efficiency (DRE) = Defects removed before delivery / Total defects
    • Review Efficiency = Defects found in review / total

    3. Project Metrics:

    • Cost of Quality (prevention + appraisal + failure cost)
    • Schedule variance, Effort variance

    McCall / Boehm Quality Factors: Correctness, Reliability, Efficiency, Integrity, Usability, Maintainability, Testability, etc.

    Measurement: GQM paradigm (Goal-Question-Metric).

  19. Q5a. What are drivers and stub modules in context of integration and unit testing of software product? Why are stubs and driver modules required?20237m

    Module 4: Software Testing

    What are drivers and stub modules in context of integration and unit testing of software product? Why are stubs and driver modules required?

    View this question on its own page →
    Worked Solution

    Solution

    Drivers and Stub Modules

    Context: Integration & Unit Testing

    • Stub: Dummy called module (subordinate). Replaces not-yet-built lower modules in Top-down integration. Simulates return values.

      • Ex: Main → Stub pay() returns dummy "success"
    • Driver: Dummy calling module (superior). Replaces not-yet-built upper modules in Bottom-up integration. Calls unit under test.

      • Ex: Driver test_harness() calls calculateSalary()

    Why Required?

    • Modules developed independently / incrementally; not all available at test time
    • Need to isolate unit, simulate interface without building whole system
    • Reduce dependency, enable early testing

    Top-down needs stubs, Bottom-up needs drivers, Sandwich needs both.

  20. Q5b. What are the main objectives of software verification and validation? Explain different verification and validation techniques.20217m

    Module 4: Software Testing

    What are the main objectives of software verification and validation? Explain different verification and validation techniques.

    View this question on its own page →
    Worked Solution

    Solution

    Verification vs Validation

    Aspect Verification Validation
    Question Are we building product right? Are we building right product?
    Checks Against design/specs Against user needs
    When During development After development

    Objectives

    • Ensure correctness, completeness, consistency
    • Detect defects early, reduce cost

    Techniques

    Verification (Static):

    1. Reviews - Informal, Walkthrough, Peer review, Inspection (Fagan)
    2. Static Analysis - Code analyzers, data flow analysis
    3. Formal methods - Mathematical proof

    Validation (Dynamic):

    1. Testing - Unit, Integration, System, Acceptance (Black/White box)
    2. Prototyping & Simulation
    3. Alpha/Beta testing with users

    V&V together ensure quality throughout SDLC.

  21. Q6a. Compare black-box and white-box testing with respect to information used for test-case design, typical techniques and defect types detected.20267m

    Module 4: Software Testing

    Compare black-box and white-box testing with respect to information used for test-case design, typical techniques and defect types detected.

    View this question on its own page →
    Worked Solution

    Black-Box vs White-Box Testing

    Black-box testing tests the software without looking at the code, using only the specification (inputs and expected outputs).
    White-box testing tests the internal structure and logic of the code.

    Comparison

    Basis Black-box testing White-box testing
    Information used for test-case design Requirements/specification, input and output domains Source code, control-flow and data-flow structure
    Knowledge of code needed No Yes
    Typical techniques Equivalence class partitioning, boundary value analysis, decision table testing, cause-effect graphing, state-transition testing Statement coverage, branch/decision coverage, condition coverage, path testing (basis paths), data-flow testing, mutation testing
    Defect types detected Missing or incorrect functions, interface errors, wrong output, input/output (boundary) errors, incorrect specification handling Logical errors, unreachable or dead code, wrong conditions, loop errors, incorrect data usage, uncovered paths
    Performed by Testers / independent test team Developers
    Test level Mostly system and acceptance Mostly unit and integration
    Limitations Cannot find hidden code paths or dead code Cannot find missing functionality

    Conclusion

    The two are complementary. Black-box testing checks that the software does what the customer asked for; white-box testing checks that the code is built correctly. A good test strategy uses both (grey-box testing combines them).

  22. Budget App•POCKETLY

    Pocketly on Android

    Log daily food, travel, and hostel expenses instantly. Set monthly spending limits and see where your money goes without complex spreadsheets.

    Install Pocketly
  23. Q6a. Explain Equivalence Class Partitioning (ECP) in software testing. How does ECP technique reduce the number of test cases while ensuring efficient test coverage?20247m

    Module 4: Software Testing

    Explain Equivalence Class Partitioning (ECP) in software testing. How does ECP technique reduce the number of test cases while ensuring efficient test coverage?

    View this question on its own page →
    Worked Solution

    Equivalence Class Partitioning (ECP) in Software Testing

    What is ECP?

    Equivalence Class Partitioning (ECP) is a black-box (functional) testing technique in which the input domain (and sometimes the output domain) is partitioned into sets of values — "equivalence classes" — such that all values in a given class are expected to be treated identically by the program (same kind of processing, same result). Since every member of a class behaves the same way, one representative value from each class is sufficient to test the whole class.

    Types of equivalence classes

    1. Valid equivalence classes — inputs that the system should accept (produce correct output). E.g., for an input range 1–100: {1 ≤ x ≤ 100} is valid.
    2. Invalid equivalence classes — inputs the system should reject. E.g., {x < 1} and {x > 100}; also non-numeric input forms separate invalid classes.

    How ECP reduces test cases while ensuring coverage

    Instead of testing every possible input (impossible for any real domain), ECP:

    • Partitions the infinite/large input space into a small number of classes (valid + invalid).
    • Selects one representative value per class → one test case represents all members of that class.
    • Guarantees that each class is exercised at least once, which ensures broad coverage of the input domain with minimal test cases.

    Example: an integer field accepting 1–100.

    Class Type Representative test value
    1 ≤ x ≤ 100 Valid 50
    x < 1 Invalid 0
    x > 100 Invalid 200
    non-integer (e.g., text) Invalid "abc"

    Four test cases now cover the entire domain instead of 100+ values.

    Why it is effective/efficient

    • Completeness of coverage — every class (valid/invalid) is represented, so no region of the input space is ignored.
    • Minimum test count — one per class; scales with the number of classes, not the domain size.
    • Fault orientation — it exposes "class-level" defects: if processing of an entire category is wrong, the single representative catches it.
    • Foundation for BVA — ECP identifies the classes and their boundaries, which Boundary Value Analysis then probes at the edges.

    Limitations

    • Partitioning quality depends on the tester's understanding of the requirements (poor partitioning ⇒ poor coverage).
    • It assumes all members of a class behave identically — sometimes false in practice (hence combined with BVA).

    Summary

    ECP splits the input domain into valid and invalid equivalence classes, tests one representative from each, and thereby reduces the number of test cases dramatically while covering the entire domain — one of the most cost-effective black-box testing techniques.

  24. Q6a. Explain boundary value analysis and equivalence class testing in functional testing? How do they help?20257m

    Module 4: Software Testing

    Explain boundary value analysis and equivalence class testing in functional testing? How do they help?

    View this question on its own page →
    Worked Solution

    Boundary Value Analysis & Equivalence Class Testing (Functional Testing)

    Both are black-box (functional) testing techniques that design test cases from the input specifications without looking at internal code.

    Equivalence Partitioning (Equivalence Class Testing)

    Idea: Partition the input domain into classes such that all values in one class are expected to be treated identically by the program (same output/behaviour). Then test one representative value from each class — this drastically reduces the number of test cases while keeping high coverage.

    Rules for partitioning:

    • Valid equivalence classes — inputs the system should accept.
    • Invalid equivalence classes — inputs the system must reject.

    Example: A field accepts integers 1–100.

    • Valid class: {1 ≤ x ≤ 100} → test one value, e.g., 50.
    • Invalid class 1: {x < 1} → test, e.g., 0 (or −5).
    • Invalid class 2: {x > 100} → test, e.g., 200.
    • (Non-integers form further invalid classes.)

    Benefit: systematic coverage of the whole input domain with minimal test cases; it reveals the presence of "class-wide" defects (a whole category of inputs mishandled).

    Boundary Value Analysis (BVA)

    Idea: Experience shows errors concentrate at the boundaries of input ranges (off-by-one mistakes are the most common defect). BVA therefore tests the values on and immediately around each boundary: minimum, just-above-minimum, just-below-maximum, maximum (and, depending on the flavour, also nominal interior values).

    For the range [1, 100]:

    • Test 1, 2 (lower boundary + just above),
    • Test 99, 100 (just below max + max),
    • Optionally 0 and 101 (just outside, invalid).

    Benefit: catches off-by-one and boundary-handling errors that equivalence partitioning alone would miss; extremely cost-effective because most real defects sit at boundaries.

    How they help

    • High fault-detection per test case — both techniques target where defects actually cluster (representative classes + edges).
    • Reduced test count — instead of exhaustive input testing, a few well-chosen values cover the domain.
    • Complementary — equivalence partitioning provides representative coverage inside the classes; BVA adds coverage at the edges, so used together they give strong functional coverage.

    Example summary (input 1–100)

    Technique Test values
    Equivalence classes 50 (valid), 0 & 101 (invalid)
    BVA 1, 2, 99, 100 (and 0, 101 as boundaries)
  25. Q6b. List and explain different categories of tools that can be used for testing.20217m

    Module 4: Software Testing

    List and explain different categories of tools that can be used for testing.

    View this question on its own page →
    Worked Solution

    Solution - Categories of Testing Tools

    1. Test Management Tools - Plan, track, report (TestRail, Zephyr)
    2. Static Testing Tools - Reviews, static analyzers (lint, SonarQube)
    3. Dynamic / Execution Tools:
      • Unit - JUnit, NUnit
      • Functional / Black-box - Selenium, QTP/UFT
      • Performance / Load - JMeter, LoadRunner
      • Security - OWASP ZAP
    4. Coverage / White-box Tools - Measure path/branch coverage (JaCoCo, Bullseye)
    5. Test Data & Mocking - Stubs/drivers, data generators (Mockito)
    6. Defect Tracking - Bugzilla, JIRA
    7. Automation Frameworks - Keyword/Data-driven frameworks

    Choice depends on level (unit/integration/system) and type (functional/non-functional).

  26. Q6b. A program accepts marks from 0 to 100. Construct test cases using Boundary Value Analysis and Equivalence Class Testing and compare the resulting test sets.20267m

    Module 4: Software Testing

    A program accepts marks from 0 to 100. Construct test cases using Boundary Value Analysis and Equivalence Class Testing and compare the resulting test sets.

    View this question on its own page →
    Worked Solution

    Test Cases for Marks (0 to 100): BVA and Equivalence Class Testing

    Valid range: 0 <= marks <= 100 (integers). Anything else must be rejected with an error message.

    1. Boundary Value Analysis (BVA)

    Test at and around each boundary (min-1, min, min+1, nominal, max-1, max, max+1):

    TC Input Expected output
    B1 -1 Invalid (just below minimum)
    B2 0 Valid (minimum)
    B3 1 Valid (just above minimum)
    B4 50 Valid (nominal)
    B5 99 Valid (just below maximum)
    B6 100 Valid (maximum)
    B7 101 Invalid (just above maximum)

    Total = 7 test cases (robust BVA). Standard BVA without the two invalid values has 5.

    2. Equivalence Class Testing (ECT)

    Divide the input domain into classes whose members behave alike; test one value per class.

    Class Range Type Representative input Expected output
    EC1 marks < 0 Invalid -20 Error
    EC2 0 to 100 Valid 55 Accepted
    EC3 marks > 100 Invalid 150 Error

    Non-integer or non-numeric input (e.g. "abc") can be added as a further invalid class.

    Total = 3 test cases (4 with the non-numeric class).

    3. Comparison of the test sets

    Basis BVA Equivalence class testing
    Number of tests 7 3
    Focus Edges of ranges, where off-by-one errors occur (e.g. < written instead of <=) Whole classes of input, one representative each
    Defect finding Strong for boundary errors Strong for general class errors, weak at boundaries
    Redundancy Higher Minimal

    Example: if the code wrongly checks marks < 100, ECT value 55 passes but BVA input 100 exposes the bug.

    Conclusion

    ECT reduces the number of tests; BVA finds boundary defects. Using them together (for example 3 + the boundary values) gives better coverage with a small test set.

  27. Q6b. Describe unit testing, integration testing and system testing—how they differ and what each addresses.20257m

    Module 4: Software Testing

    Describe unit testing, integration testing and system testing—how they differ and what each addresses.

    View this question on its own page →
    Worked Solution

    Unit, Integration & System Testing

    These are the three classic levels of software testing, performed in sequence as components are progressively assembled.

    1. Unit Testing

    • What: tests the smallest testable unit — an individual function, method, class, or module — in isolation.
    • What it addresses: verifies that the unit's internal logic is correct — branches, boundary values, error handling, expected outputs for given inputs.
    • Who/how: done by developers during coding, using test drivers/stubs and frameworks (JUnit, pytest, NUnit). Typically white-box (statement/branch coverage).
    • Goal: catch local logic errors as early as possible.

    2. Integration Testing

    • What: tests the interaction between integrated units/modules — the interfaces, data flow, and control flow across module boundaries.
    • What it addresses: interface mismatches — wrong parameter passing, incompatible data formats, missing/duplicate functions, ordering/timing problems.
    • Strategies:
      • Top-down — test high-level modules first, using stubs for lower ones.
      • Bottom-up — test low-level modules first, using drivers for higher ones.
      • Sandwich / mixed; and Big-bang — all modules integrated at once then tested.
    • Goal: find interface/assembly errors that unit tests cannot.

    3. System Testing

    • What: tests the complete, fully integrated system as a whole against the requirements/SRS.
    • What it addresses: end-to-end behaviour, functional requirements, and non-functional attributes — performance, security, usability, reliability, recovery, stress/load, compatibility.
    • Who/how: by an independent test team in an environment close to production; primarily black-box.
    • Goal: validate that the whole system satisfies its specification.

    Comparison table

    Aspect Unit Testing Integration Testing System Testing
    Scope Single unit/module Groups of interacting modules Whole system
    Focus Internal logic Interfaces & interaction Requirements compliance
    Test basis Code design Module interfaces SRS/requirements
    Nature White-box White/black-box Black-box
    Performed by Developers Developers/testers Independent test team
    Typical tools JUnit, pytest Test harnesses, drivers/stubs Automation/performance tools
    Example calculateTax() returns right value Module A correctly calls B's API End-to-end login → order → invoice flow

    Order: Unit → Integration → System (each building on the previous). After system testing come acceptance testing (user validates the system against business needs).

  28. Q6b. How are boundary conditions tested in black box testing? Explain with example.20207m

    Module 4: Software Testing

    How are boundary conditions tested in black box testing? Explain with example.

    View this question on its own page →
    Worked Solution

    Solution

    Black Box Boundary Value Analysis (BVA)

    Concept: Errors cluster at boundaries. Instead of random values, test at edges of equivalence partitions. For a range [min,max][min, max], test: min,min+1,max−1,max,min−1,max+1min, min+1, max-1, max, min-1, max+1 (invalid).

    How boundary conditions tested:

    1. Identify input domain boundaries from SRS (e.g., age 18-60, array size 1-100)
    2. Create equivalence partitions (valid / invalid)
    3. Pick values: at boundary, just inside, just outside
    4. For nn variables, 4n+14n+1 test cases (or 6n+16n+1 with invalid). Also robust BVA includes invalid.

    Example: Program accepts marks 0-100, grade calculation.

    Test Case Input Expected
    Below lower -1 Invalid
    At lower 0 Pass (F)
    Just above lower 1 Pass
    Mid 50 Pass
    Just below upper 99 Pass
    At upper 100 Pass (A)
    Above upper 101 Invalid

    Boundary coverage: Detects off-by-one errors like if (marks > 0 && marks < 100) incorrectly rejecting 0/100.

    Advantage: Minimum test cases, maximum fault detection at edges where developers often use < vs <= incorrectly.

  29. Q6b. Write down the differences between Alpha and Beta testing. Explain their significance in the software release cycle, and how they help in improving software quality before public release.20247m

    Module 4: Software Testing

    Write down the differences between Alpha and Beta testing. Explain their significance in the software release cycle, and how they help in improving software quality before public release.

    View this question on its own page →
    Worked Solution

    Differences Between Alpha and Beta Testing & Their Significance

    Alpha Testing

    Performed at the developer's site, by the internal development/QA team (sometimes with invited customers), in a controlled environment, just before beta. Dev team is on hand to fix defects immediately. Focus: catch as many defects as possible before external release. May include both white-box and black-box.

    Beta Testing

    Performed at end-user sites, by real external users in their own real-world environments, after alpha and before final public release. Focus: validate the product under genuine usage conditions, find environment-specific issues, gather feedback, build user/market confidence (also acts as a preview/marketing phase). Variants: closed (invited) vs open (public).

    Difference table

    Aspect Alpha Testing Beta Testing
    Location Developer's site End-user's site/real environment
    Performed by Internal development/QA team Real external end-users
    Environment Controlled Uncontrolled (real-world)
    Timing Before beta Before general release
    Fixing defects Immediate (team on site) Reported & fixed in later release
    Data used Test/realistic data Real production data
    Focus Technical defect detection Real-world validation, usability, compatibility
    Participants Few (internal + invited) Many (selected or public)

    Significance in the release cycle

    1. Alpha verifies the product is stable enough to leave the developer — it filters out glaring defects early, saving cost.
    2. Beta verifies the product works for real users in real environments — catches OS/hardware/browser compatibility issues, performance at scale, and usability problems that the developer's controlled environment cannot reproduce.
    3. Together they reduce post-release defects and support costs, protect brand reputation, and increase confidence that the public release will succeed.

    How they improve software quality before public release

    • Alpha reduces defect count before external exposure (cheaper fixes).
    • Beta gathers real-world feedback — bug reports, feature suggestions, usability complaints — that developers cannot anticipate; the product is refined accordingly.
    • Both provide validation (are we building the right product for the users?) and verification (does it work?) evidence; beta also serves as a marketing/pre-release buzz phase.

    Summary: Alpha = internal controlled testing at the developer's site; Beta = external real-world testing by real users. Their combined effect is higher release quality — fewer residual defects, better compatibility and usability, and lower maintenance cost after launch.

  30. Q7. Give the techniques and benefits of verification and validation activities during software development.201914m

    Module 4: Software Testing

    Give the techniques and benefits of verification and validation activities during software development.

    View this question on its own page →
    Worked Solution

    Verification and Validation: Techniques and Benefits

    Verification asks: "Are we building the product right?" It checks whether software work products conform to specified requirements and design.

    Validation asks: "Are we building the right product?" It checks whether the final/intermediate product satisfies actual user needs and intended use.

    Verification techniques

    1. Reviews: Requirements, architecture and design are examined by peers.
    2. Walkthroughs: The author leads a team through the work product to identify defects.
    3. Inspections: Formal, systematic examination using defined roles and checklists.
    4. Static analysis: Tools analyze source code without executing it.
    5. Traceability analysis: Requirements are traced to design, implementation and tests.
    6. Document checking: Specifications and design artifacts are checked for consistency and completeness.

    Validation techniques

    1. Unit testing: Individual components are tested.
    2. Integration testing: Interacting components are tested together.
    3. System testing: The complete system is tested against requirements.
    4. Acceptance testing: The customer/user evaluates whether the system meets acceptance criteria.
    5. Regression testing: Existing behavior is checked after changes.
    6. Usability and operational evaluation: The product is assessed in realistic use conditions.

    Verification vs Validation

    Verification Validation
    Focuses on conformance to specifications Focuses on fitness for intended use
    Often uses reviews and static techniques Relies heavily on execution and user-oriented testing
    Finds defects early in work products Confirms behavior of the developed product

    Benefits

    • Detects defects early when they are cheaper to fix.
    • Reduces rework and maintenance cost.
    • Improves reliability and quality.
    • Confirms requirements are implemented correctly.
    • Reduces project risk.
    • Improves customer confidence.
    • Provides evidence that quality objectives are being met.

    Conclusion: Effective V&V combines reviews, inspections, analysis and testing throughout development rather than waiting until the end.

  31. Q7a. Explain the concepts of alpha testing and beta testing. What are their roles in the release cycle of software?20257m

    Module 4: Software Testing

    Explain the concepts of alpha testing and beta testing. What are their roles in the release cycle of software?

    View this question on its own page →
    Worked Solution

    Alpha Testing and Beta Testing

    Both are acceptance-stage test levels performed near the end of development, with real users, to validate the software before release.

    Alpha Testing

    • What: the software is tested on the developer's site, by the internal development/QA team (and sometimes a limited set of customers) in a controlled environment.
    • When: after system testing, just before beta.
    • Characteristics:
      • Controlled environment; developers are available to fix defects on the spot.
      • Uses realistic data and user scenarios.
      • Finds many defects before external exposure.
      • Usually performed in two phases: alpha (in-house testing) — may be white-box/black-box combined.
    • Role in release cycle: first real-run validation; ensures the product is stable enough to hand to outside users.

    Beta Testing

    • What: the software is distributed to a selected set of real, external end users (or a public beta group) who use it in real working environments.
    • When: after alpha; the final stage before general release.
    • Characteristics:
      • Performed at user sites, not the developer's — uncontrolled, real-world conditions.
      • Users report defects, usability issues, and missing features; feedback is collected.
      • Software is essentially feature-complete; focus is on validation in the real environment.
    • Role in release cycle: validates the product under genuine usage, builds market confidence, catches environment-specific problems (OS versions, hardware, integration), and provides a marketing/preview channel. Two variants: open beta (public) and closed beta (invited users).

    Comparison table

    Aspect Alpha Testing Beta Testing
    Location Developer's site End-user's site
    Participants Internal team + invited users Real external users
    Environment Controlled Uncontrolled/real
    Defect fixing Immediate Collected for next release
    Stage Before beta Before general release
    Focus Technical stability Real-world validation & feedback

    Summary: alpha testing confirms the product is ready to leave the developer; beta testing confirms it works for real users in the real world — together they de-risk the final release.

  32. Q8b. Describe the software quality assurance. Explain the ISO 9000 Quality Standards.20247m

    Module 4: Software Testing

    Describe the software quality assurance. Explain the ISO 9000 Quality Standards.

    View this question on its own page →
    Worked Solution

    Software Quality Assurance (SQA) & ISO 9000 Quality Standards

    Software Quality Assurance (SQA)

    SQA is a planned and systematic set of activities required to provide adequate confidence that the software product conforms to its requirements and quality expectations. It is a process-oriented, prevention-focused discipline — not just testing.

    Key SQA elements (activities):

    1. Quality standards and procedures — define how development is done (standards: project plan conformance, SRS standards, design/coding standards, testing standards).
    2. Process & product reviews — formal technical reviews (design reviews, code walkthroughs/inspections) to find defects early.
    3. Software testing — verification & validation at all levels (unit, integration, system, acceptance).
    4. Configuration management — control of changes and versions (SCM audit).
    5. Measurement & metrics — collecting defect, effort, and coverage data for quality control.
    6. Documentation & record keeping — evidence that the process was followed.
    7. Audits and management control — independent SQA audits ensure the planned process is actually performed (SQA plan, SQA audit, reporting).

    SQA vs Testing: SQA focuses on improving the process to prevent defects; testing focuses on finding defects in the product. SQA encompasses reviews, audits, standards, and the overall quality infrastructure — testing is one part.

    ISO 9000 Quality Standards

    ISO 9000 is a family of international standards for Quality Management Systems (QMS) published by the International Organization for Standardization (ISO). It is generic (applies to any organization/product, including software) — it certifies that a company has a documented, consistent quality system, not that a specific product is perfect.

    Core documents:

    • ISO 9000 — fundamentals and vocabulary of quality management systems.
    • ISO 9001 — requirements (the certifiable standard): a QMS based on process approach, customer focus, planning, resource management, product realization, measurement/analysis, and continual improvement.
    • ISO 9004 — guidance for performance improvement.

    Key principles of ISO 9000/9001:

    1. Customer focus
    2. Leadership
    3. Engagement of people
    4. Process approach
    5. Improvement (continuous)
    6. Evidence-based decision making
    7. Relationship management

    For software: ISO 9000-3 provides guidelines for applying ISO 9001 to software development, maintenance, and support. Certification requires documented processes (quality manual, procedures, work instructions) and audits demonstrating conformance.

    ISO 9000 vs Capability Maturity Models

    Aspect ISO 9000/9001 SEI CMM/CMMI
    Nature Generic quality management standard (any industry) Software-specific process maturity model
    Goal Certify that a documented QMS exists & is followed Assess process maturity level (1–5) and guide improvement
    Focus Compliance with the quality system Continuous process improvement capability
    Software-specific ISO 9000-3 for software Yes, designed for software

    Summary table

    Element Description
    SQA Systematic, planned activities to ensure the process/product conform to requirements — reviews, audits, standards, metrics, config management
    ISO 9000 International QMS standard family; ISO 9001 gives requirements; certifies a documented, effective quality system
    ISO 9000-3 Software-specific guideline for applying ISO 9001

    Summary: SQA ensures software is built by a disciplined, auditable process that prevents defects (reviews, audits, standards, metrics, SCM); ISO 9000/9001 provides an internationally recognized quality-management framework, with ISO 9000-3 adapting it to software — both emphasize process quality as the foundation of product quality.

  33. Budget App•POCKETLY

    Pocketly on Android

    Log daily food, travel, and hostel expenses instantly. Set monthly spending limits and see where your money goes without complex spreadsheets.

    Install Pocketly
  34. Q9b. Write short notes on the following: (i) Project management (ii) Test case design (iii) Software reliability20216m

    Module 4: Software Testing

    Write short notes on the following:

    (i) Project management
    (ii) Test case design
    (iii) Software reliability

    View this question on its own page →
    Worked Solution

    Solution

    (i) Project Management

    Planning, scheduling, budgeting, risk, resource, quality and stakeholder management. Tools: WBS, Gantt, PERT, CPM. Goal deliver on time/budget.

    (ii) Test Case Design

    Technique to create effective test inputs. White-box: Basis path, loop testing. Black-box: Equivalence Partitioning, BVA, Cause-Effect graph. Good test = high probability of finding error, non-redundant, best-of-breed.

    (iii) Software Reliability

    Probability of failure-free operation for specified time in specified environment. Metrics:

    • MTTF (Mean Time To Failure)
    • MTTR (Mean Time To Repair)
    • MTBF = MTTF + MTTR
    • ROCOF (Rate of Occurrence of Failures)
    • Availability = MTTF/(MTTF+MTTR)
      Models: Musa, Jelinski-Moranda. Improves via fault removal, fault tolerance, testing.
  35. Q9c. Write a short note on Six Sigma.20237m

    Module 4: Software Testing

    Write a short note on Six Sigma.

    View this question on its own page →
    Worked Solution

    Six Sigma - Short Note

    Six Sigma is a disciplined, data-driven quality/process improvement methodology developed by Motorola (1986) and popularised by GE. The Greek letter sigma (σ) denotes standard deviation; Six Sigma means only 3.4 defects per million opportunities (DPMO), i.e. 99.99966% defect-free output.

    Core Idea

    • Identify defects and variation in a process, then remove their root causes so that the process output is consistently within customer specifications.
    • Focus is on improving the process, not blaming the people.

    Two Project Methodologies

    DMAIC (improve existing process) DMADV / Design for Six Sigma (create new process)
    Define - problem, goals, team Define - customer needs and goals
    Measure - current performance Measure - CTQs (critical to quality) characteristics
    Analyze - find root causes Analyze - design alternatives
    Improve - implement and verify solution Design - detailed design
    Control - sustain the gains Verify - validate the design with trials

    Quality Levels (Sigma Levels)

    Sigma Level DPMO Yield
    4σ 6,210 99.38%
    5σ 233 99.9767%
    6σ 3.4 99.99966%

    Roles (Belt System)

    • Champion - sponsors the project
    • Master Black Belt - trains and mentors
    • Black Belt - leads projects full time
    • Green Belt - assists part time
    • Yellow Belt - basic awareness

    Advantages

    • Fewer defects, lower cost of poor quality and rework.
    • Higher customer satisfaction and consistency.
    • Data-driven decisions, measurable results.
    • Works for manufacturing and service/software processes.

    Limitations

    • Needs strong management commitment and trained experts.
    • Over-emphasis on statistics can slow small projects.
    • Success depends on cultural change, not just tools.

    Conclusion: Six Sigma, usually combined with Total Quality Management (TQM), gives a systematic, measurable way to drive defects towards zero.

  36. Q9c. Write short notes on any two of the following: Alpha & beta testing20267m

    Module 4: Software Testing

    Write short notes on any two of the following:

    Alpha & beta testing

    View this question on its own page →
    Worked Solution

    Alpha and Beta Testing

    Both are forms of acceptance testing done before a product's final release.

    Alpha testing

    • Performed in-house at the developer's site, in a controlled environment, by the development/QA team or internal users.
    • Done before beta testing, when the product is nearly complete.
    • Uses both white-box and black-box techniques; defects are fixed immediately.
    • Goal: find major bugs and crashes early.

    Beta testing

    • Performed at the customer's site, in the real environment, by a limited group of real end users.
    • Done after alpha testing, just before public release.
    • Mainly black-box; the developer is not present.
    • Users report bugs, usability problems and compatibility issues.
    • Goal: validate the product under real conditions and gather feedback.
    • Example: pre-release app versions offered to a small group of users.

    Comparison

    Basis Alpha testing Beta testing
    Performed by Developers / internal testers Real end users / customers
    Location Developer's site User's site (real environment)
    Environment Controlled Uncontrolled, real world
    Timing Before beta After alpha, before release
    Technique White and black box Black box
    Bug fixing Immediate Collected, fixed in later versions
    Purpose Find major defects early Check real-world use, gather feedback

    Significance

    Together they reduce the chance that serious defects reach the public, improve quality and usability, and increase customer confidence.

  37. Q9d. Write a short note on Verification and Validation.20237m

    Module 4: Software Testing

    Write a short note on Verification and Validation.

    View this question on its own page →
    Worked Solution

    Verification and Validation - Short Note

    Verification and Validation (V&V) are the two pillars of software quality assurance, applied throughout the SDLC.

    Definitions

    • Verification: "Are we building the product right?" - confirming that each work product (requirement, design, code) conforms to its specification. It is a static activity - done without executing the software.
    • Validation: "Are we building the right product?" - confirming that the final product actually satisfies the customer's needs and intended use. It is a dynamic activity - done by running the software.

    Difference Table

    Aspect Verification Validation
    Question Building the product right Building the right product
    Checks against Specification/design User needs & requirements
    Execution No execution needed Requires execution
    Timing During development After development / at delivery
    Examples Reviews, walkthroughs, inspections, static analysis, reviews of SRS/design Unit, integration, system and acceptance testing, alpha/beta testing
    Found by QA team, peers, reviewers Test engineers, customer

    Techniques

    Verification (static): Reviews (informal, walkthrough, peer review, Fagan inspection), static analysis tools, formal/mathematical proof, traceability and document checks.

    Validation (dynamic): Unit testing, integration testing, system testing, acceptance testing, prototyping, alpha and beta testing with real users.

    Objectives

    • Detect defects early, when they are cheapest to fix.
    • Ensure correctness, completeness, consistency and traceability.
    • Reduce rework, cost and project risk.
    • Build customer confidence that quality goals are met.

    Conclusion: V&V must run in parallel throughout the SDLC - validation without verification misses design flaws, and verification without validation never checks real user needs.