# QA- und Release-Checkliste Diese Liste ist für einen Release Candidate auf einem echten iPhone gedacht. Simulator-Tests allein reichen wegen Foundation Models, lokaler Spracherkennung, Notifications und Action Button nicht aus. ## Build und Installation - [ ] Clean Build mit der Release-Konfiguration erfolgreich - [ ] Keine neuen Compilerwarnungen - [ ] Automatisches Signing verwendet das erwartete Team - [ ] Bundle-ID entspricht App Store Connect - [ ] Marketing-Version und Build-Nummer sind korrekt - [ ] App-Icon erscheint scharf auf Home Screen, Spotlight und Einstellungen - [ ] Display Name lautet **FeelAloud** - [ ] App läuft nur als iPhone-Target und nicht versehentlich als iPad-App ## Erststart und Berechtigungen - [ ] Erststart zeigt keine unnötige Berechtigungsabfrage - [ ] Mikrofonabfrage erscheint erst beim ersten Spracheintrag - [ ] Speech-Abfrage erscheint nur für die Spracheingabe - [ ] Ablehnung des Mikrofons erzeugt eine verständliche Meldung - [ ] Ablehnung der Spracherkennung erzeugt eine verständliche Meldung - [ ] Mitteilungsabfrage erscheint erst beim Aktivieren der Erinnerungen - [ ] Bei abgelehnten Mitteilungen wird der Toggle zurückgesetzt ## Spracheintrag - [ ] Aufnahme startet und die rote Stop-Schaltfläche ist erreichbar - [ ] Teiltranskript erscheint während der Aufnahme - [ ] Stoppen beendet Mikrofon und Audio Session - [ ] Deutsche lokale Spracherkennung funktioniert im Flugmodus - [ ] Nicht verfügbare lokale Spracherkennung fällt nicht auf Cloud zurück - [ ] Leeres Transkript zeigt eine hilfreiche Meldung - [ ] Manuelle Eingabe ist jederzeit möglich ## Lokale KI und Prüfmaske - [ ] Foundation-Models-Status wird unter **Mehr** korrekt angezeigt - [ ] Ein typischer deutscher Text wird sinnvoll strukturiert - [ ] Nicht erwähnte Songnamen oder Aktivitäten werden nicht erfunden - [ ] Alle KI-Felder lassen sich vor dem Speichern korrigieren - [ ] Musik im Kopf blendet Ohrwurmfelder ein - [ ] Ohne Musik im Kopf wird stattdessen Stress angeboten - [ ] Nicht verfügbares Modell führt zur manuellen Eingabe - [ ] Flugmodus verändert den lokalen KI-Pfad nicht ## Momentaufnahmen und Follow-up - [ ] Manuelle Check-in-Schaltfläche öffnet genau fünf Gesichter - [ ] Jede Stufe speichert exakt einen Snapshot - [ ] Mehrfaches schnelles Tippen erzeugt keine Duplikate - [ ] Haptisches Erfolgsfeedback wird ausgelöst - [ ] **Gut** erzeugt keine Kontextfrage - [ ] **Mittel** erzeugt keine Kontextfrage - [ ] **Sehr gut** fragt beim nächsten normalen Öffnen am selben Tag nach - [ ] **Schlecht** fragt beim nächsten normalen Öffnen am selben Tag nach - [ ] **Sehr schlecht** fragt beim nächsten normalen Öffnen am selben Tag nach - [ ] Kontextantwort wird gespeichert und im Verlauf angezeigt - [ ] **Heute nicht mehr fragen** unterdrückt nur diesen Snapshot - [ ] Offene Kontextfragen eines Vortags erscheinen nicht am Folgetag ## Erinnerungen - [ ] Auswahl zwischen zwei und drei Erinnerungen funktioniert - [ ] Alle konfigurierten Uhrzeiten erzeugen lokale Requests - [ ] Ändern einer Uhrzeit ersetzt alte Requests - [ ] Deaktivieren entfernt alle drei stabilen Requests - [ ] Banner erscheint im Vordergrund - [ ] Tipp auf Banner im Hintergrund öffnet den Check-in - [ ] Tipp auf Banner nach Kaltstart öffnet den Check-in - [ ] Notification-Öffnung löst nicht sofort eine alte Kontextfrage darüber aus - [ ] Zeitzonen- und Sommerzeitwechsel wurden plausibilisiert ## Persistenz und Verlauf - [ ] Gespeicherte Einträge bleiben nach App-Neustart erhalten - [ ] Gespeicherte Check-ins bleiben nach App-Neustart erhalten - [ ] 7-Tage-Filter enthält heute und die sechs vorherigen Kalendertage - [ ] 30-Tage-Filter enthält heute und die 29 vorherigen Kalendertage - [ ] Gesamtzeitraum beginnt beim ältesten Datensatz - [ ] Eigener Zeitraum funktioniert auch bei vertauschten Von-/Bis-Daten - [ ] Durchschnitt stimmt rechnerisch mit den sichtbaren Punkten überein - [ ] Diagramm zeigt Werte 1 bis 5 korrekt - [ ] Eintragsdetail zeigt alle bedingten Felder korrekt ## Export - [ ] Export ist ohne Daten deaktiviert - [ ] XLSX-Dateiname enthält den gewählten Datumsbereich - [ ] XLSX öffnet ohne Reparaturmeldung in Apple Numbers - [ ] XLSX öffnet ohne Reparaturmeldung in Microsoft Excel - [ ] Arbeitsblatt **Übersicht** enthält Anzahl und korrekten Durchschnitt - [ ] Arbeitsblatt **Momentaufnahmen** enthält Kontext und Quelle - [ ] Arbeitsblatt **Tagebuch** enthält die Einträge des gewählten Zeitraums - [ ] Umlaute, Emoji, Zeilenumbrüche, `&`, `<`, `>` und Anführungszeichen bleiben erhalten - [ ] CSV besitzt UTF-8-BOM und Semikolon-Trennung - [ ] CSV escaped Semikolon, Anführungszeichen und Zeilenumbrüche korrekt - [ ] Abbrechen des Share-Sheets verändert keine gespeicherten Daten ## Systemintegration - [ ] Kurzbefehl **Eintrag aufnehmen** erscheint nach Installation - [ ] Kurzbefehl öffnet die App im Aufnahmefluss - [ ] Action Button kann dem Kurzbefehl zugewiesen werden - [ ] Action Button startet die Aufnahme zuverlässig aus gesperrtem/aktivem Zustand ## Oberfläche und Barrierefreiheit - [ ] Light Mode und Dark Mode sind lesbar - [ ] Größte Dynamic-Type-Größen verdecken keine primären Aktionen - [ ] VoiceOver liest die fünf Bewertungen eindeutig vor - [ ] Aufnahme-/Stop-Aktion besitzt ein eindeutiges Accessibility Label - [ ] Farbige Informationen sind zusätzlich durch Text oder Symbol erkennbar - [ ] Bedienung funktioniert auf der kleinsten unterstützten iPhone-Größe - [ ] Deutsche Texte sind frei von abgeschnittenen oder überlappenden Elementen ## Datenschutz und Release Gate - [ ] Netzwerkverkehr des Release Builds zeigt keinen eigenen Datenupload - [ ] Keine personenbezogenen Testdaten liegen in Git oder Build-Artefakten - [ ] `PrivacyInfo.xcprivacy` ist im erzeugten App-Bundle enthalten - [ ] Xcode Privacy Report enthält keine unerklärten Required-Reason-APIs - [ ] App-Store-Datenschutzangaben entsprechen dem finalen Build - [ ] Öffentliche Datenschutz- und Support-URLs sind erreichbar - [ ] Medizinischer Hinweis ist in App und Metadaten vorhanden - [ ] TestFlight-Testhinweise nennen Geräte- und iOS-Voraussetzungen - [ ] Bekannte Blocker sind dokumentiert und akzeptiert