← All samples

Executed Test Plan & Bug Reports

Sample project (own tool, no client). Target: the data-analysis pipeline on the previous page. Environment: Python 3.12, pandas 3.0.5, Linux.

Executed cases

IDCaseTypeExpectedStatus
TC-01Happy path (244-row CSV)FunctionalExit 0; report prints; 244 rows storedPASS
TC-02Missing fileNegativeClean error, non-zero exitPASS
TC-03Schema violation (missing columns)NegativeClear ValueError naming columnsPASS
TC-04Non-numeric coercion ("abc" in total_bill)Data qualityRow dropped, count reportedPASS
TC-05Negative tip valueData qualityValidation assertion firesPASS
TC-06Empty dataset (header-only CSV)NegativeGraceful handling, no crashPASS
TC-07Output correctnessFunctionalMatches independent computationPASS

BUG-001 — Inconsistent error UX (found & fixed)

Found by: TC-03/TC-05. Before: clean one-line error for missing files but raw 12-line tracebacks for schema/business-rule violations. Fix: wrap validate+summarize in structured error handling → one-line ERROR: input validation failed: <reason>, exit 1. Verified: both retests clean, exit 1; happy path still exit 0.

BUG-002 — Crash on empty dataset (found & fixed)

Found by: TC-06. Before: header-only CSV passed validation then crashed with ValueError: attempt to get argmax of an empty sequence from deep inside aggregation. Fix: early guard — ERROR: dataset contains 0 data rows, exit 1. Verified: clean error, exit 1; regression on full dataset unchanged.

Method note: exit codes are now consistent across all failure paths (0 success / 1 handled error), and validation assertions proved effective — corrupted rows are dropped or rejected, never silently mis-aggregated.