CSS Prepare

optional · CSS study notes

🗄️ OLD — Software Testing (consolidated)

CSS Computer Science (Optional) — Paper-I, Section-B, Topic V. Testing has appeared in some form in 4 of the last 7 available papers (2020, 2021, 2022, 2024, 2025) — usually paired with the QA/QC distinction below.

Black-Box vs White-Box Testing

  • Black-box testing: tests functionality against the specification, with no knowledge of internal code structure — techniques include equivalence partitioning and boundary value analysis. Answers "does it do what it's supposed to?"
  • White-box (glass-box) testing: tests internal logic paths, with full knowledge of the source code — statement coverage, branch coverage, path coverage. Answers "does every path through the code behave correctly?"
  • Neither is strictly "better" — an exam question that asks which finds more errors should be answered with: it depends on the defect type; white-box catches logic/path errors black-box would never reach, black-box catches missing-functionality and spec-mismatch errors white-box can't see, since it never looks at what was supposed to happen.

Testing Levels

Unit testing (individual components/functions in isolation) → Integration testing (interactions between combined modules) → System testing (the complete, integrated system against overall requirements) → Acceptance testing (validating with/for the end user or client — confirms the software meets their requirements, distinct from system testing which checks it against the written spec).

Other Named Testing Types Worth Knowing

  • Regression testing: re-running existing tests after a change, to confirm the change didn't break something that used to work.
  • Performance testing: checks speed, responsiveness, and stability under load.
  • Web application testing: a superset covering functional testing, usability, cross-browser/device compatibility, load testing, and security testing of forms, links, and sessions — asked directly in 2022 as "explain the process of web application testing."

Test Design Techniques

The general umbrella both black-box and white-box techniques sit under: equivalence partitioning, boundary value analysis, decision table testing, state transition testing (black-box side), and statement/branch/path coverage (white-box side). Choice of technique depends on what you're trying to catch — boundary analysis for off-by-one-style input errors, state transition testing for systems with distinct modes/states, and so on.

Quality Assurance vs Quality Control vs Testing

A three-way distinction FPSC has asked for directly — don't collapse all three into "testing."

Quality Assurance (QA)Quality Control (QC)Testing
Process-focused, preventiveProduct-focused, detects defects in a specific deliverableOne concrete activity carried out within QC
Applies across the whole SDLCApplied to a specific build/releaseExecutes the software to find bugs in it
"Are we following the right process?""Is this specific build defect-free?""Does this specific test case pass?"

🔥

Repeated in past papers: 2022 Q7(b) — black-box vs white-box, and which finds more errors. 2022 Q8(a) — the process of web application testing. 2024 Q7(b)&(c) — types of test design techniques, and the QA/QC/Testing distinction. 2025's Part-I MCQs directly tested which testing type confirms software meets customer requirements (acceptance testing). See 🔥 Most Repeated — Software Engineering.

MCQ Trap

  • Black-box testing = no knowledge of internal code; White-box testing = full knowledge of internal code/logic.
  • Acceptance testing is what confirms the software matches the customer's requirements — system testing confirms it matches the written specification. These sound similar but examiners test the difference.