Software Engineering
106601Module 4: Software Testing
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
View this question on its own page →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 failureWorked SolutionSolution
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 → FailureHence 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
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
View this question on its own page →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 mentionedWorked SolutionSolution
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
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
View this question on its own page →Alpha-testing is done by
a) The development team
b) A friendly set of customers
c) The customer himself
d) None of theseWorked SolutionSolution
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
Q1c. Measure of reliability is given by: (i) Mean time between success (ii) MTBF (iii) Mean reliable (iv) MTTR20192m
Module 4: Software Testing
View this question on its own page →Measure of reliability is given by:
(i) Mean time between success
(ii) MTBF
(iii) Mean reliable
(iv) MTTRWorked SolutionAnswer
(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 failuresFinal answer: (ii) MTBF
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
View this question on its own page →Boundary value analysis belongs to
(i) white box testing
(ii) black box testing
(iii) white box and black box testing
(iv) None of the mentionedWorked SolutionSolution
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
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
View this question on its own page →Name of an evaluation technique to assess the quality of test cases is
(i) mutation analysis
(ii) validation
(iii) verification
(iv) performance analysisWorked SolutionSolution
Correct Answer: (i) mutation analysis
Explanation
Mutation Analysis / Mutation Testing:
Create mutants (seed small faults - e.g., change
>to>=,+to-) in programRun 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
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
View this question on its own page →Which of the following is not a part of bug report?
(i) Test case
(ii) Output
(iii) Software version
(iv) LOCWorked SolutionSolution
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
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
View this question on its own page →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 calculationWorked SolutionAnswer
(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
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
View this question on its own page →Which granularity level of testing checks the behavior of module cooperation?
(i) Unit testing
(ii) Integration testing
(iii) Acceptance testing
(iv) Regression testingWorked SolutionSolution
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
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
View this question on its own page →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 toolsWorked SolutionAnswer: (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).
- Install PocketlyBudget 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.
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
View this question on its own page →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 projectsWorked SolutionAnswer: (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).
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
View this question on its own page →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 propagationWorked SolutionSolution
Correct Answer: (ii) Defect prevention
Explanation
SEI CMM Levels:
- 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
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
View this question on its own page →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 theseWorked SolutionSolution
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 → falseAnswer: (a)
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
View this question on its own page →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 ModelWorked SolutionAnswer: (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:
- Initial — ad hoc/chaotic process,
- Repeatable — basic project management, repeatable practices,
- Defined — documented/standardized processes,
- Managed — processes measured and controlled quantitatively,
- 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).
Q3b. What is 'acceptance' testing? Explain briefly alpha testing and beta testing with suitable examples.20237m
Module 4: Software Testing
View this question on its own page →What is 'acceptance' testing? Explain briefly alpha testing and beta testing with suitable examples.
Worked SolutionSolution
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.
Q3b. Develop a test case for any testing technique for 'student admission system'.20227m
Module 4: Software Testing
View this question on its own page →Develop a test case for any testing technique for 'student admission system'.
Worked SolutionSolution - 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:
- Login as admin → Admission → New
- Enter Name=ABC, Marks=75, Age=20, Docs uploaded
- Click Submit → Verify "Application Accepted" + DB entry.
Traceability: Covers functional requirement FR-01: System shall admit if marks ≥45 and age 17-25.
Q4a. What is software quality assurance? Explain different quality matrices.20217m
Module 4: Software Testing
View this question on its own page →What is software quality assurance? Explain different quality matrices.
Worked SolutionSolution
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).
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
View this question on its own page →What are drivers and stub modules in context of integration and unit testing of software product? Why are stubs and driver modules required?
Worked SolutionSolution
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"
- Ex: Main → Stub
Driver: Dummy calling module (superior). Replaces not-yet-built upper modules in Bottom-up integration. Calls unit under test.
- Ex: Driver
test_harness()callscalculateSalary()
- Ex: Driver
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.
Q5b. What are the main objectives of software verification and validation? Explain different verification and validation techniques.20217m
Module 4: Software Testing
View this question on its own page →What are the main objectives of software verification and validation? Explain different verification and validation techniques.
Worked SolutionSolution
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):
- Reviews - Informal, Walkthrough, Peer review, Inspection (Fagan)
- Static Analysis - Code analyzers, data flow analysis
- Formal methods - Mathematical proof
Validation (Dynamic):
- Testing - Unit, Integration, System, Acceptance (Black/White box)
- Prototyping & Simulation
- Alpha/Beta testing with users
V&V together ensure quality throughout SDLC.
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
View this question on its own page →Compare black-box and white-box testing with respect to information used for test-case design, typical techniques and defect types detected.
Worked SolutionBlack-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).
- Install PocketlyBudget 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.
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
View this question on its own page →Explain Equivalence Class Partitioning (ECP) in software testing. How does ECP technique reduce the number of test cases while ensuring efficient test coverage?
Worked SolutionEquivalence 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
- 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.
- 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.
Q6a. Explain boundary value analysis and equivalence class testing in functional testing? How do they help?20257m
Module 4: Software Testing
View this question on its own page →Explain boundary value analysis and equivalence class testing in functional testing? How do they help?
Worked SolutionBoundary 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) Q6b. List and explain different categories of tools that can be used for testing.20217m
Module 4: Software Testing
View this question on its own page →List and explain different categories of tools that can be used for testing.
Worked SolutionSolution - Categories of Testing Tools
- Test Management Tools - Plan, track, report (TestRail, Zephyr)
- Static Testing Tools - Reviews, static analyzers (lint, SonarQube)
- Dynamic / Execution Tools:
- Unit - JUnit, NUnit
- Functional / Black-box - Selenium, QTP/UFT
- Performance / Load - JMeter, LoadRunner
- Security - OWASP ZAP
- Coverage / White-box Tools - Measure path/branch coverage (JaCoCo, Bullseye)
- Test Data & Mocking - Stubs/drivers, data generators (Mockito)
- Defect Tracking - Bugzilla, JIRA
- Automation Frameworks - Keyword/Data-driven frameworks
Choice depends on level (unit/integration/system) and type (functional/non-functional).
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
View this question on its own page →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.
Worked SolutionTest 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.
Q6b. Describe unit testing, integration testing and system testing—how they differ and what each addresses.20257m
Module 4: Software Testing
View this question on its own page →Describe unit testing, integration testing and system testing—how they differ and what each addresses.
Worked SolutionUnit, 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 valueModule 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).
Q6b. How are boundary conditions tested in black box testing? Explain with example.20207m
Module 4: Software Testing
View this question on its own page →How are boundary conditions tested in black box testing? Explain with example.
Worked SolutionSolution
Black Box Boundary Value Analysis (BVA)
Concept: Errors cluster at boundaries. Instead of random values, test at edges of equivalence partitions. For a range , test: (invalid).
How boundary conditions tested:
- Identify input domain boundaries from SRS (e.g., age 18-60, array size 1-100)
- Create equivalence partitions (valid / invalid)
- Pick values: at boundary, just inside, just outside
- For variables, test cases (or 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.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
View this question on its own page →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.
Worked SolutionDifferences 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
- Alpha verifies the product is stable enough to leave the developer — it filters out glaring defects early, saving cost.
- 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.
- 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.
Q7. Give the techniques and benefits of verification and validation activities during software development.201914m
Module 4: Software Testing
View this question on its own page →Give the techniques and benefits of verification and validation activities during software development.
Worked SolutionVerification 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
- Reviews: Requirements, architecture and design are examined by peers.
- Walkthroughs: The author leads a team through the work product to identify defects.
- Inspections: Formal, systematic examination using defined roles and checklists.
- Static analysis: Tools analyze source code without executing it.
- Traceability analysis: Requirements are traced to design, implementation and tests.
- Document checking: Specifications and design artifacts are checked for consistency and completeness.
Validation techniques
- Unit testing: Individual components are tested.
- Integration testing: Interacting components are tested together.
- System testing: The complete system is tested against requirements.
- Acceptance testing: The customer/user evaluates whether the system meets acceptance criteria.
- Regression testing: Existing behavior is checked after changes.
- 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.
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
View this question on its own page →Explain the concepts of alpha testing and beta testing. What are their roles in the release cycle of software?
Worked SolutionAlpha 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.
Q8b. Describe the software quality assurance. Explain the ISO 9000 Quality Standards.20247m
Module 4: Software Testing
View this question on its own page →Describe the software quality assurance. Explain the ISO 9000 Quality Standards.
Worked SolutionSoftware 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):
- Quality standards and procedures — define how development is done (standards: project plan conformance, SRS standards, design/coding standards, testing standards).
- Process & product reviews — formal technical reviews (design reviews, code walkthroughs/inspections) to find defects early.
- Software testing — verification & validation at all levels (unit, integration, system, acceptance).
- Configuration management — control of changes and versions (SCM audit).
- Measurement & metrics — collecting defect, effort, and coverage data for quality control.
- Documentation & record keeping — evidence that the process was followed.
- 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:
- Customer focus
- Leadership
- Engagement of people
- Process approach
- Improvement (continuous)
- Evidence-based decision making
- 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.
- Install PocketlyBudget 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.
Q9b. Write short notes on the following: (i) Project management (ii) Test case design (iii) Software reliability20216m
Module 4: Software Testing
View this question on its own page →Write short notes on the following:
(i) Project management
(ii) Test case design
(iii) Software reliabilityWorked SolutionSolution
(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.
Q9c. Write a short note on Six Sigma.20237m
Module 4: Software Testing
View this question on its own page →Write a short note on Six Sigma.
Worked SolutionSix 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.
Q9c. Write short notes on any two of the following: Alpha & beta testing20267m
Module 4: Software Testing
View this question on its own page →Write short notes on any two of the following:
Alpha & beta testing
Worked SolutionAlpha 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.
Q9d. Write a short note on Verification and Validation.20237m
Module 4: Software Testing
View this question on its own page →Write a short note on Verification and Validation.
Worked SolutionVerification 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.