Acceptance Criteria — Accident Assistant (AA)¶
User Story¶
As a vehicle owner who has just had an accident I want to start a guided report-accident flow — pick my vehicle; enter when/where the accident happened, what happened, and who else was involved (Step 1); capture damage photos and video (Step 2); upload accident/vehicle documents (Step 3); and mark the damaged vehicle parts (Step 4) So that my accident is captured with enough structured detail for a claim/repair to be processed, and I can then request a repair-cost estimate, find a nearby repair shop, a lawyer, or an expert, and send a PDF report by email
Scenario-based AC — Given / When / Then¶
| AC ID | Scenario | Jira | Type | Criticality | Given (context) | When (action / trigger) | Then (expected outcome) | Linked TCs | Status |
|---|---|---|---|---|---|---|---|---|---|
| AC-AA-01 | Starting the flow shows the user's vehicle list | RC-110 | Happy | 🔴 Critical | User is on the Home page | User taps Accident Assistance (Unfallhilfe) | The "Report Accident" flow starts And the user's existing vehicle list is displayed |
TC-AA-001 |
Draft |
| AC-AA-02 | User can add a new vehicle from the vehicle-selection screen | RC-110 | Happy | 🟡 Medium | User is on the vehicle-selection screen of the Report Accident flow | User chooses to add a new vehicle instead of selecting an existing one | The add-vehicle flow opens | TC-AA-002 |
Draft |
| AC-AA-03 | Selecting a vehicle navigates to the Overview page | RC-110 | Happy | 🔴 Critical | User is on the vehicle-selection screen And at least one vehicle is listed |
User selects a vehicle and taps Report accident | The user is navigated to the Overview page | TC-AA-003 |
Draft |
| AC-AA-04 | Overview page shows the outline of all report steps | RC-110 | Happy | 🔴 Critical | User is on the Overview page | User views the page | An outline of the steps required to report the damage is displayed | TC-AA-004 |
Draft |
| AC-AA-05 | Next on the Overview page opens Step 1: Accident Details | RC-110 | Happy | 🔴 Critical | User is on the Overview page | User taps Next | The user is navigated to Step 1: Accident Details | TC-AA-005 |
Draft |
| AC-AA-06 | User selects the date and time the accident happened | RC-110 | Happy | 🔴 Critical | User is on the Step 1: Accident Details page | User selects a value for Datum (date) and Uhrzeit (time) | The selected date and time are set on the form | TC-AA-006 |
Draft |
| AC-AA-07 | User manually types the accident location | RC-110 | Happy | 🔴 Critical | User is on the Step 1: Accident Details page | User types a location into "Wo ist der Unfall passiert?" | The typed value is set as the location | TC-AA-007 |
Draft |
| AC-AA-08 | Map icon opens a map view auto-detecting current location | RC-110 | Happy | 🟠 High | User is on the Step 1: Accident Details page | User taps the map icon next to the location field | A map view opens And it auto-detects and centers on the user's current location |
TC-AA-008 |
Draft |
| AC-AA-09 | User can adjust the pin or search for a different location on the map | RC-110 | Happy | 🟠 High | The map view is open | User drags the pin, or searches for an address | The map updates to reflect the newly selected location | TC-AA-009 |
Draft |
| AC-AA-10 | Confirming a map location populates the location field | RC-110 | Happy | 🔴 Critical | The map view is open with a location selected | User confirms the selected address | The map closes And "Wo ist der Unfall passiert?" is populated with the confirmed address |
TC-AA-010 |
Draft |
| AC-AA-11 | Incident-type field shows the 4 defined options | RC-110 | Happy | 🔴 Critical | User is on the Step 1: Accident Details page | User taps "Was ist passiert?" | A dropdown opens listing exactly: "Unfall mit weiteren Beteiligten", "Unfall ohne weitere Beteiligte", "Zusammenstoß mit einem Tier", "Sonstiger Schaden" | TC-AA-011 |
Draft |
| AC-AA-12 | Selecting an incident type sets the field value | RC-110 | Happy | 🟠 High | The incident-type dropdown is open | User selects one option | The dropdown closes And the field displays the selected option |
TC-AA-012 |
Draft |
| AC-AA-13 | Proceed is unavailable while the Step 1 form is incomplete | RC-110 | Negative | 🟠 High | User is on the Step 1: Accident Details page And at least one of Datum / Uhrzeit / location / incident type is not yet filled |
User attempts to tap Proceed | Proceed is disabled/unavailable and the form is not submitted | TC-AA-013 |
Draft |
| AC-AA-14 | Proceed on a complete Step 1 form opens Parties Involved | RC-110 | Happy | 🔴 Critical | User is on the Step 1: Accident Details page And Datum, Uhrzeit, location, and incident type are all filled |
User taps Proceed | The user is navigated to the Parties Involved (Unfallbeteiligte) section — not a blank page | TC-AA-014 |
Draft |
| AC-AA-15 | Parties Involved shows the add-parties prompt with a 5-person limit | RC-110 | Happy | 🔴 Critical | User has just entered the Parties Involved section | User views the screen | A "Beteiligte hinzufügen" (Add parties) prompt with a "+" icon is shown, stating a maximum of 5 people can be added | TC-AA-015 |
Draft |
| AC-AA-16 | "+" opens the add-party form | RC-110 | Happy | 🔴 Critical | User is on the Parties Involved section | User taps the "+" icon | A new screen opens to enter that party's information, including the "Beteiligt als" (party-type) field | TC-AA-016 |
Draft |
| AC-AA-17 | Selecting "PKW Fahrer" renders the driver-specific form | RC-110 | Happy | 🔴 Critical | The add-party form is open | User selects "PKW Fahrer" in the "Beteiligt als" field | The form renders driver fields: vehicle plate (Kennzeichen) plus contact details (name, phone, email, address) | TC-AA-017 |
Draft |
| AC-AA-18 | Selecting "Fußgänger" renders the pedestrian-specific form | RC-110 | Happy | 🔴 Critical | The add-party form is open | User selects "Fußgänger" in the "Beteiligt als" field | The form renders pedestrian fields: contact details only (name, phone, email) — no vehicle plate field | TC-AA-018 |
Draft |
| AC-AA-19 | Adding a party returns to the list showing the new entry | RC-110 | Happy | 🟠 High | The add-party form is filled with valid data | User taps Add | The user returns to the Parties Involved list And the newly added party is shown with its type badge (e.g. "PKW-Fahrer") |
TC-AA-019 |
Draft |
| AC-AA-20 | Parties Involved cannot exceed 5 added parties | RC-110 | Edge | 🟡 Medium | The Parties Involved list already has 5 parties added | User attempts to add another party | The system prevents adding a 6th party (e.g. the "+ Add" action is unavailable) | TC-AA-020 |
Draft |
| AC-AA-21 | User can proceed with zero parties when there are no other parties involved | RC-110 | Alternate | 🟡 Medium | Incident type is "Unfall ohne weitere Beteiligte" (accident without other parties) And no party has been added |
User taps Proceed on the Parties Involved screen | Step 1 completes without requiring any added party | TC-AA-021 |
Draft |
| AC-AA-22 | Proceed on Parties Involved completes Step 1 and returns to Overview | RC-110 | Happy | 🔴 Critical | User is on the Parties Involved section (parties added or intentionally skipped per AC-AA-21) | User taps Proceed | Step 1 (Accident Details) is marked complete And the user is redirected to the Overview page, ready to continue with Step 2 |
TC-AA-022 |
Draft |
| AC-AA-23 | Entering Step 2 shows the Accident Photo and Video checklist | RC-110 | Happy | 🟠 High | User has completed Step 1 (Accident details) and returns to the Overview | User opens Accident Photo and Video (or continues via Next) | The checklist is shown: "Capture photos" (IN PROGRESS, REQUIRED), "Upload or record video" (NOT STARTED, REQUIRED), "Capture additional photos" (NOT STARTED, OPTIONAL) | TC-AA-026 |
Draft |
| AC-AA-24 | Tapping "Capture photos" opens the damage-area selection diagram | RC-110 | Happy | 🟠 High | User is on the Accident Photo and Video checklist | User taps the Capture photos item | A vehicle diagram opens with the prompt "Wählen Sie die Bereiche aus, auf denen ihr Fahrzeug beschädigt ist" | TC-AA-027 |
Draft |
| AC-AA-25 | Damage-area screen lists all 9 vehicle zones | RC-110 | Happy | 🟡 Medium | User is on the damage-area selection screen | User views the diagram | All 9 zones with camera icons are shown: Vorne links, Vorne, Vorne rechts, Links, Dach, Rechts, Hinten links, Hinten, Hinten rechts | TC-AA-028 |
Draft |
| AC-AA-26 | Tapping a zone's camera icon opens a guided camera | RC-110 | Happy | 🟠 High | User is on the damage-area selection screen | User taps the camera icon on a zone | The camera opens with a translucent vehicle-outline overlay and the prompt "Please take a closeup shot of the damage" | TC-AA-029 |
Draft |
| AC-AA-27 | Captured photo offers Re capture or Done before confirming | RC-110 | Happy | 🟡 Medium | The guided camera is open for a zone | User captures a photo | A preview is shown with Re capture and Done options | TC-AA-030 |
Draft |
| AC-AA-28 | Confirming a photo marks that zone as captured | RC-110 | Happy | 🟠 High | A photo preview is shown with Re capture/Done | User taps Done | The user returns to the damage-area diagram And the captured zone is visually marked as done |
TC-AA-031 |
Draft |
| AC-AA-29 | "Done" on the zone-selection screen completes the Capture-photos requirement | RC-110 | Happy | 🔴 Critical | At least one zone photo has been captured | User taps Done on the damage-area screen | The user returns to the checklist And "Capture photos" is marked complete |
TC-AA-032 |
Draft |
| AC-AA-30 | User can upload or record a video for damage documentation | RC-110 | Happy | 🔴 Critical | User is on the Accident Photo and Video checklist | User taps Upload or record video and records or selects a video | The video is attached and "Upload or record video" is marked complete | TC-AA-033 |
Draft |
| AC-AA-31 | "Capture additional photos" is optional and can be skipped | RC-110 | Alternate | 🟡 Medium | "Capture photos" and "Upload or record video" are already complete | User does not interact with Capture additional photos | Step 2 can still be completed; the optional item remains NOT STARTED without blocking progress | TC-AA-034 |
Draft |
| AC-AA-32 | Completing both required items marks Step 2 COMPLETED on the Overview | RC-110 | Happy | 🔴 Critical | "Capture photos" and "Upload or record video" are both complete | User navigates back to the Overview | "Accident Photo and Video" shows status COMPLETED | TC-AA-035 |
Draft |
| AC-AA-33 | Step 2 stays IN PROGRESS while a required item is missing | RC-110 | Negative | 🟠 High | "Upload or record video" has not been completed | User navigates back to the Overview without completing the video | "Accident Photo and Video" still shows IN PROGRESS, not COMPLETED | TC-AA-036 |
Draft |
| AC-AA-34 | Entering Step 3 shows the four document-upload sections, two marked required | RC-110 | Happy | 🟠 High | User has completed Step 2 and continues to Step 3 | User opens Upload vehicle documents | A banner reads "Select document to upload (*Required)" And four sections are shown, each with "Upload file": Additional pictures and documents * (required), Damage preview page * (required), Details damage 1 (optional), Other (optional) — required sections are marked with a red asterisk |
TC-AA-037 |
Draft |
| AC-AA-35 | "Upload file" opens the document camera with corner-guide instructions | RC-110 | Happy | 🟠 High | User is on the Upload vehicle documents screen | User taps Upload file for a document section | The camera opens with the prompt "Please capture the document with all four corners visible" | TC-AA-038 |
Draft |
| AC-AA-36 | Multi-page capture shows a page counter | RC-110 | Happy | 🟡 Medium | The document camera is open for a section | User captures multiple pages in sequence | A page counter (e.g. "1/4") tracks the captured pages | TC-AA-039 |
Draft |
| AC-AA-37 | Captured pages appear as removable thumbnails | RC-110 | Happy | 🟡 Medium | At least one page has been captured for a document section | User returns to the Upload vehicle documents screen | The captured pages are shown as thumbnails under their section, each with an "x" to remove | TC-AA-040 |
Draft |
| AC-AA-38 | User can remove an uploaded page | RC-110 | Happy | 🟡 Medium | A document section has ≥1 captured page thumbnail | User taps the "x" on a thumbnail | The page is removed from that document section | TC-AA-041 |
Draft |
| AC-AA-39 | "Fortfahren" (Continue) completes Step 3 once both required documents are uploaded | RC-110 | Happy | 🔴 Critical | Both required documents — Additional pictures and documents and Damage preview page — have been uploaded | User taps Fortfahren (Continue) | The user returns to the Overview And "Capture vehicle documents" shows status COMPLETED |
TC-AA-042 |
Draft |
| AC-AA-58 | "Fortfahren" stays disabled while a required document is missing | RC-110 | Negative | 🟠 High | At least one of the two required documents (Additional pictures and documents, Damage preview page) has not been uploaded | User views the Upload vehicle documents screen | Fortfahren (Continue) is disabled/unavailable And the user cannot proceed to the Overview |
TC-AA-066 |
Draft |
| AC-AA-59 | Optional documents can be skipped | RC-110 | Alternate | 🟡 Medium | Both required documents are uploaded And Details damage 1 and Other are not uploaded |
User taps Fortfahren (Continue) | Step 3 completes successfully without the two optional documents | TC-AA-067 |
Draft |
| AC-AA-40 | Entering Step 4 shows the AI-results intro screen with an auto-proceed countdown | RC-110 | Happy | 🟡 Medium | User has completed Step 3 and continues to Step 4 | User opens Vehicle part details | An intro screen shows "Please learn how to add vehicle part details / Review our AI Results..." with a "Proceed in N seconds" countdown | TC-AA-043 |
Draft |
| AC-AA-41 | The countdown (or manual Proceed) opens the Vehicle part details editor | RC-110 | Happy | 🟠 High | The AI-results intro screen is shown with its countdown running | The countdown reaches zero, or the user taps Proceed | The Vehicle part details editor opens | TC-AA-044 |
Draft |
| AC-AA-42 | Vehicle part details shows a tappable front-side car diagram | RC-110 | Happy | 🟠 High | User is on the Vehicle part details editor | User views the Part detail tab | A FRONT SIDE car diagram is shown with labeled, tappable parts (Hood, Windshield, R./L. Headlight, R./L. Bumper, Grill) | TC-AA-045 |
Draft |
| AC-AA-43 | First-time guidance walks the user through adding damage | RC-110 | Happy | ⚪ Low | User opens Vehicle part details for the first time | User views the screen | Guided tooltips appear in sequence: "Please tap on the parts to add damage" → "Please tap on the button to add damage" (Add damaged part+) | TC-AA-046 |
Draft |
| AC-AA-44 | Tapping a car part opens the damage-entry panel for that part | RC-110 | Happy | 🟠 High | User is on the Vehicle part details editor | User taps a part on the diagram (e.g. L.Headlight) and taps Add damaged part+ | A damage-entry panel opens for the selected part | TC-AA-047 |
Draft |
| AC-AA-45 | Damage-entry panel supports selecting more than one damage type | RC-110 | Happy | 🟡 Medium | The damage-entry panel is open for a part | User selects multiple damage types (e.g. Crack, Dent, Scratch) | All selected damage types are applied to that part (e.g. shown later as "Scratch, Dent") | TC-AA-048 |
Draft |
| AC-AA-46 | User sets the damaged car part, side 1, and side 2 | RC-110 | Happy | 🟠 High | The damage-entry panel is open | User selects Damaged car part (e.g. Backlight), Damaged side 1 (Front/Rear), Damaged side 2 (Left/Right) | The selections are set on the entry form | TC-AA-049 |
Draft |
| AC-AA-47 | "Add" saves the damaged-part entry to the list | RC-110 | Happy | 🔴 Critical | The damage-entry panel is filled with damage type, part, side 1, side 2 | User taps Add | The entry appears in "List of damaged parts" with a summary (e.g. "Rear left backlight — Scratch") and an edit (pencil) icon | TC-AA-050 |
Draft |
| AC-AA-48 | User can switch between FRONT SIDE and REAR SIDE diagrams | RC-110 | Happy | 🟡 Medium | User is on the Vehicle part details editor | User taps the left/right arrow controls next to the side label | The diagram switches between FRONT SIDE and REAR SIDE, showing the relevant parts | TC-AA-051 |
Draft |
| AC-AA-49 | "Select All" and the trash icon bulk-remove damaged-part entries | RC-110 | Happy | 🟡 Medium | ≥1 damaged part is listed | User taps Select All (or selects individual entries) then taps the trash icon | The selected entries are removed from "List of damaged parts" | TC-AA-052 |
Draft |
| AC-AA-50 | "Done" completes Step 4 and marks all four steps COMPLETED | RC-110 | Happy | 🔴 Critical | ≥1 damaged part has been added (or the AI review has been reviewed) | User taps Done | The user returns to the Overview And "Vehicle part details" — and all four steps — show status COMPLETED |
TC-AA-053 |
Draft |
| AC-AA-51 | All steps COMPLETED shows the "Thank you" summary | RC-110 | Happy | 🔴 Critical | All four steps (Accident details, Accident Photo and Video, Capture vehicle documents, Vehicle part details) are COMPLETED | User views the Overview | "Thank you for completing all the steps" is shown with all four items marked COMPLETED | TC-AA-054 |
Draft |
| AC-AA-52 | The summary lists four next-action options | RC-110 | Happy | 🟠 High | User is on the "Thank you" summary screen | User views "Please choose what to do next with your damaged vehicle" | Four options are listed: Request for repair cost, Check repair shops near me, Find me a lawyer, Find me an expert, each with a short description | TC-AA-055 |
Draft |
| AC-AA-53 | Requesting an action shows its status as "Appointment requested" | RC-110 | Happy | 🟡 Medium | User is on the "Thank you" summary screen | User selects one of the four next-action options and completes its request flow | The option shows "Appointment requested" together with the assigned provider/contact details (e.g. name, address) | TC-AA-056 |
Draft |
| AC-AA-54 | User can add one or more recipient email addresses to "Send report" | RC-110 | Happy | 🟠 High | User is on the "Thank you" summary, "Send report" section | User types an email address and taps Add | The email appears as a chip/tag in the recipient list; user can repeat to add more | TC-AA-057 |
Draft |
| AC-AA-55 | User can remove an added email address before sending | RC-110 | Happy | 🟡 Medium | ≥1 email chip has been added to "Send report" | User taps the remove ("x") on an email chip | The email is removed from the recipient list | TC-AA-058 |
Draft |
| AC-AA-56 | "Send report" is disabled until the Privacy Policy is agreed | RC-110 | Negative | 🔴 Critical | ≥1 recipient email has been added And the "I have read and agree to the Privacy Policy" checkbox is unchecked |
User attempts to tap Send report | Send report remains disabled and no report is sent | TC-AA-059 |
Draft |
| AC-AA-57 | Sending the report generates a PDF and emails it to the added addresses | RC-110 | Happy | 🔴 Critical | ≥1 recipient email is added And the Privacy Policy checkbox is checked |
User taps Send report | A PDF report is generated and sent to each added email address | TC-AA-060 |
Draft |
Business Rules (rule-based AC)¶
| Rule ID | Business Rule | Jira | Rationale / Source | Criticality | Linked TCs | Status |
|---|---|---|---|---|---|---|
| BR-AA-01 | A single accident report accepts at most 5 involved parties. | RC-110 | Ticket: "add details for multiple parties involved... up to a maximum limit of 5 persons" | 🔴 Critical | TC-AA-020 |
Draft |
| BR-AA-02 | Step 1 accident data (date/time, location, incident type, parties) is persisted via an API that supports both create and edit (save/edit), documented in Swagger. | RC-110 | Ticket: "Backend: Create an API to store this data... API can save/edit these information. Add a new API to Swagger" | 🟠 High | TC-AA-023 |
Draft |
| BR-AA-03 | Tapping "Proceed" (Fortfahren) on the Accident Details step must always navigate to the Parties Involved section — it must never leave the user on a blank/broken page. | RC-110 | Ticket comment (PM-AiVan, 2026-07-14): "When clicking the 'Fortfahren' button on the first page, it redirects to a blank page" — regression guard for a previously reported defect | 🟠 High | TC-AA-024 |
Draft |
| BR-AA-04 | The "Beteiligt als" (party-type) selection determines which fields render on the add-party form: PKW Fahrer (driver, includes vehicle plate) vs Fußgänger (pedestrian, no vehicle plate). | RC-110 | Ticket: "The UI will adapt based on the selected role" | 🟡 Medium | TC-AA-025 |
Draft |
| BR-AA-05 | In Accident Photo and Video, "Capture photos" and "Upload or record video" are REQUIRED while "Capture additional photos" is OPTIONAL; the step can only be marked COMPLETED once both required items are done. | RC-110 | Screens tag each checklist item IN PROGRESS/NOT STARTED plus REQUIRED/OPTIONAL | 🟠 High | TC-AA-032, TC-AA-036, TC-AA-061 |
Draft |
| BR-AA-06 | The damage-type field on Vehicle part details supports multi-select — a single part can carry more than one damage type simultaneously (e.g. "Scratch, Dent"). | RC-110 | Observed in UI: "Rear right backlight — Scratch, Dent" | 🟡 Medium | TC-AA-048, TC-AA-062 |
Draft |
| BR-AA-07 | "Send report" stays disabled until the user agrees to the Privacy Policy, regardless of how many recipient emails have been added. | RC-110 | UI: unchecked "I have read and agree to the Privacy Policy" gates the Send report action | 🔴 Critical | TC-AA-059, TC-AA-063 |
Draft |
| BR-AA-08 | The Overview only shows "Thank you for completing all the steps" once all four steps — Accident details, Accident Photo and Video, Capture vehicle documents, Vehicle part details — are COMPLETED. | RC-110 | UI: summary screen only appears alongside four COMPLETED step rows | 🟠 High | TC-AA-054, TC-AA-064 |
Draft |
| BR-AA-09 | Of the four document sections on Upload vehicle documents (Step 3), exactly two are REQUIRED — Additional pictures and documents and Damage preview page (marked with a red asterisk *) — and two are OPTIONAL — Details damage 1 and Other. Fortfahren (Continue) stays disabled until both required documents are uploaded; the two optional ones may be left empty. | RC-110 | Confirmed by stakeholder 2026-08-06 against updated screen 01_Features/accident/wa_accident_assistant/screens/Screenshot 2026-08-06 at 17.03.24.png (supersedes the earlier Polizeibericht/Versicherungsschein/Fahrzeugschein screen, which showed no REQUIRED/OPTIONAL tags) |
🟠 High | TC-AA-037, TC-AA-066, TC-AA-067 |
Draft |
Column Guide¶
| Column | Description | Values / Format |
|---|---|---|
| AC ID | Unique scenario id — TCs trace back to this | AC-AA-NN |
| Rule ID | Unique business-rule id — TCs trace back to this | BR-AA-NN |
| Scenario | Short title of the behaviour, start with an action verb | Plain text |
| Jira | The ticket this AC came from | [RC-110](url) |
| Type | Class of scenario | Happy / Alternate / Negative / Edge / Permission |
| Criticality | Impact if this AC fails — drives the verifying TC's priority | 🔴 Critical / 🟠 High / 🟡 Medium / ⚪ Low |
| Given | Precondition / context true before the action | One state per clause; <br>And … to compound |
| When | The single action or event that triggers behaviour | One trigger |
| Then | Observable, verifiable outcome — pass/fail must be objective | Include error code / message / state where relevant |
| Linked TCs | TCs in 01_Features/accident/wa_accident_assistant/wa_accident_assistant_tc.md that verify this AC |
TC-AA-NNN, comma-separated |
| Status | Review state of the criterion | Draft / Reviewed / Approved |
Traceability¶
Jira ticket ──▶ AC-AA-NN / BR-AA-NN ──▶ TC-AA-NNN
(the why) (the what — this file) (the how to verify)
- Upward: header
SRS ref+ each row'sJiracolumn link the AC to its source. - Downward: the
Linked TCscolumn lists the test cases that verify each AC. - Coverage rule: every
CriticalandHighAC and every business rule must have ≥1 Linked TC. Flag any such AC with zero TCs as a coverage gap. Conversely, every TC must name theACit verifies — no orphan TCs.