← All projectsBackendFinal-year project
eXpServer Tester.
Co-developed a testing platform for an educational web server, with stage-based black-box validation, isolated execution, concurrent test runs, and live feedback.
EXECUTION PIPELINEISOLATED BY DESIGN
>_SubmissionCompiled binary
⌘Isolated runnerDocker container
↗Live feedbackStage validation
BLACK-BOX TESTINGCONCURRENT EXECUTIONFAILURE RECOVERY
Contribution
Designed reusable testing components and recovery paths to support students and teaching assistants. The tester was my primary contribution to the eXpServer final-year project.
Decisions behind the implementation
Engineering is a
series of tradeoffs.
01Evaluation students can trust
A passing test determines whether a student can progress to the next stage. We designed black-box checks to reduce false positives, looking beyond a successful response to whether the implementation satisfies the stage’s requirements.
02Build once. Extend by stage.
We separated reusable test functions from stage definitions. This keeps the addition of stages and tests manageable without duplicating test logic or making widespread changes.
03Centralize the operational work
We chose central hosting over individual installations to simplify use for teaching assistants. That choice made concurrent usage and shared infrastructure key architectural considerations.
04Make compatibility predictable
Student machines and the test server may run different Linux distributions. Prescribed Docker compilation environments reduce binary compatibility differences between submission and execution.
05Expect failure. Design recovery.
Flawed submissions can crash during testing. Isolated execution, explicit error handling, and recovery behavior help keep failures understandable and preserve the availability of the testing platform.