Testing - Code Cyprus Treasure Hunt

This page documents the testing effort carried out by team H on the Code Cyprus Treasure Hunt web application.
It is split into three parts:
Unit Testing (verifies using the testing API),
User Acceptance Testing (validation),
Nielsen's Heuristics Usability Assessment

Unit Tests

The testing API which is provided at codecyprus.org/th/testing

Test 1 - list

Expected Name Computed Name Expected Description Computed Description Expected Status Computed Status Pass/Fail

Test 2 - start

Expected status Computed status Expected error Computed error Pass/Fail

Test 3 - question

Expected question type Computed question type Expected canBeSkipped Computed canBeSkipped Expected requiresLocation Computed requiresLocation Expected status Computed status Pass/Fail

Test 4 - answer

Expected correct Computed correct Expected completed Computed completed Expected message Computed message Expected score Computed score Expected status Computed status Pass/Fail

Test 5 - score

Expected completed Computed completed Expected finished Computed finished Expected score Computed score Computed status Computed status Pass/Fail

Test 6 - leaderboard

Expected leaderboard size Computed leaderboard size Expected numOfPlayers Computed numOfPlayers Expected status Computed status Pass/Fail

2. User Acceptance Testing

(UAT) is a validation process that use real user in order to confirm the system is ready. Tests were carried out by the team

Test No. Tested By Test Type Date / Time Result Test Description
1 Maximos Philippou Functional 25/03/2026 19:00 Pass Player can enter a name and press "Load Available Hunts" to see a list of hunts. The list loaded successfully on both desktop and mobile
2 Michalis Andreou Functional 25/03/2026 19:30 Pass Player can select a hunt, accept cookies and a game session starts successfully on both desktop and mobile.
3 Charalampos Zornis Functional 25/03/2026 19:45 Pass Player can select allow location permission and see a textbox saying location acquired. Location works and updates every 30 seconds on both desktop and mobile.
4 Ghaith Osama Hashim Functional 26/03/2026 13:35 Pass TEXT question displays a text input field for the player to type an answer. Text input is displayed correctly for text and numeric question types.
5 Gregory Kypris Functional 26/03/2026 13:55 Pass BOOLEAN question displays True or False buttons instead of a text input. True / False buttons are displayed and work as intended
6 Arestis Evangelou Functional 26/03/2026 14:10 Pass MCQ displays four buttons (A, B, C, D). Buttons are in a 2x2 grid format and work correctly.
7 Kyveli Christoforou Functional 27/03/2026 13:05 Pass Submitting the correct answer shows a success message and moves to the next question. Feedback shown from API message.
8 Giorgos Constantinou Functional 27/03/2026 13:25 Pass Skipping answers deducts points and loads the next question.
9 Rania Tayfoor Functional 27/03/2026 13:40 Pass When the hunt is complete, the leaderboard shows rankings, names and scores. Results section is displayed correctly
10 Nikoleta louka Usability 27/03/2026 13:50 Fail The app is usable on a mobile device without overlapping elements. Tested on Android Chrome

3. Nielsen's Heuristics - Usability

Nielsen's ten heuristics are principles to evaluate the usability of an app. Each heuristic will go against our app and provide a rating and an observation.

1. Visibility of System Status

Good

During any API calls a loading spinner appears. The session bar shows the player name and live score at all times. After every answer, a feedback message is shown. There is an indicator for what question the player is on.

2. Match Between System and The Real World

Good

The app uses a friendly language tone. "Let's get started!", "Hunt Complete!" or "Skip Question". No technical terms such as "UUID" are shown to the player.

3. User Control and Freedom

Mixed

Players can return home at any time using the Home button, However, there is no way to go back to a previous question once submitted. This is a limitation of the API.

4. Consistency and Standards

Good

Buttons follow a consistent color pallet, green for primary actions and dark blue for secondary actions. Same font throughout and card style is used across all sections.

5. Error Prevention

Good

The player cannot submit and empty answer. Confirmation message appear before skipping a question. The player name field is validated before any API calls are made.

6. Recognition Rather than Recall

Good

Score and progress are always visible.

7. Flexibility and Efficiency of Use

Good

The QR code scanner provides a shortcut for players, avoiding manually answering questions. Session resume with cookies means returning players can keep working where they left off.

8. Aesthetic and Minimalist Design

Good

The question section, shows only what is needed. Score, location updates and skip button are hidden when not relevant. The animated background is appealing without being distracting.

9. Help Users Recognize, Diagnose, and Recover from Errors

Good

Error messages use simple English and appear as feedback messages. When a location answer is wrong, the API's distance message is shown. Fatal errors, navigate the player to the error-section with a return button.

10. Help and Documentation

Mixed

An instruction page is linked from the landing page. Location is updated regularly every 30 seconds as shown on screen. However, there is no help area in app.html.