Skip to main content
iBacalao

IB Computer Science IA 2027: acceptance tests that show a solution actually works

A working interface is not evidence that a computational solution meets a user's real requirements. For the redesigned Computer Science course first assessed in May 2027, a useful development record makes the problem, algorithm, acceptance condition, observed result and failure response traceable. A few well-chosen tests can reveal more about the quality of your solution than a gallery of polished screenshots.

Computer Science acceptance-testing flow from requirement to test input, expected output and observed result
An acceptance test must link an actual requirement to an input, expectation and recorded result.

A working interface is not evidence that a computational solution meets a user's real requirements. For the redesigned Computer Science course first assessed in May 2027, a useful development record makes the problem, algorithm, acceptance condition, observed result and failure response traceable. A few well-chosen tests can reveal more about the quality of your solution than a gallery of polished screenshots.

The short answer

A working interface is not evidence that a computational solution meets a user's real requirements. For the redesigned Computer Science course first assessed in May 2027, a useful development record makes the problem, algorithm, acceptance condition, observed result and failure response traceable. A few well-chosen tests can reveal more about the quality of your solution than a gallery of polished screenshots.

The official IB Computer Science update says the redesigned course was first taught from August 2025 and is first assessed in May 2027. The IA remains a computational solution to a chosen real-world problem, with added emphasis on computational thinking and algorithmic problem-solving. This page does not claim that the example checklist below is the official markscheme or a substitute for the session-specific subject guide.

A concrete fictional solution: lending equipment at school

Imagine a client who lends cameras, tripods and microphones to a school media club. The client currently uses a notebook, which sometimes results in two students being told the same camera is available. The hypothetical proposed solution is a small reservation system. The real user problem is preventing incompatible simultaneous reservations, not "making a professional-looking dashboard."

The client needs three capabilities: check item availability for requested dates; reserve an item for an eligible borrower; and cancel a reservation while keeping an auditable history. Additional design choices, such as email reminders, should not displace testing of these essential behaviours.

A completed acceptance-test table

Test Initial state and input Expected behaviour Why it matters
T01: normal reservation Camera A free; student X requests 12–14 November Reservation saved; dates and borrower associated with Camera A Happy path
T02: overlapping request Camera A already reserved 12–14 November; student Y requests 13 November Request rejected with reason; original reservation unchanged Prevents double booking
T03: adjacent dates Camera A reserved until 14 November; another starts 15 November Accepted if policy defines 14th as final occupied day Tests date-boundary policy
T04: invalid interval Requested end date before start date Input rejected; no record written Checks validation
T05: unauthorized cancellation Student Y attempts to cancel student X's reservation Operation denied unless the real client-approved role permits it Access control
T06: repeat submission User clicks reserve twice during a slow network response Only one reservation created Checks idempotency/race issues
T07: concurrent request Two eligible users request the last free camera at the same instant At most one conflicting reservation committed Database integrity, not just UI validation

This table is original teaching material. All item names, dates and client requirements are simulated. Expected outcomes are not actual test results. Your real documentation must add the executed result, test environment, evidence (such as database state, logs and screenshots), and how any failure was corrected.

The overlooked race condition

Suppose the program first runs checkAvailability() and then separately inserts a new reservation. Two concurrent requests can both pass the check before either insert finishes. A nice alert box on the front end does not fix this problem.

The solution needs a server-side atomic constraint or transaction strategy suited to its data model. For example, the reservation write can be rechecked within a transaction or guarded by an appropriate database constraint before commit. The exact algorithm depends on the storage system and whether dates are inclusive. A credible evaluation explains that design decision, demonstrates the negative test, and states what remains untested.

A checklist labelled "button works" gives no reason to believe the reservation tool is useful. Each row should cite a real client-validated requirement and a measured result. Ask the client which failure would be most damaging, then prioritize that scenario. If the client actually values accountability more than convenience, cancellation history may deserve testing as thoroughly as date overlap.

Do not present synthetic screenshots or hand-entered PASS labels as evidence of executed software. Include reproducible test inputs and expected outcomes, then record actual observations separately. If you did not test concurrency, state NOT TESTED and explain the risk.

Source and assessment-session caveat

This is an original software-testing tutorial with a fictional client, not an assessed real IA or an automatic-mark guarantee. Student work and implementation must be genuinely their own. ibacalao.com offers separate draft-review tools.

Check your assessment session against the linked official IB sources. Read our editorial policy and sourcing method.