Files
mailadler/TESTING_PLAN.md
2026-02-04 02:47:35 +01:00

12 KiB

Mail-Adler Testing Plan

1. Lokalisierung - Deutsch

1.1 Ordner-Namen (Standard IMAP)

Mail-Adler zeigt deutsche Namen für Standard-Ordner:

IMAP-Name Mail-Adler Anzeige (Deutsch)
INBOX Eingang
Sent / [Gmail]/Sent Mail Gesendet
Drafts / [Gmail]/Drafts Entwürfe
Trash / [Gmail]/Bin Papierkorb
Spam / [Gmail]/Spam Spam
Archive / [Gmail]/All Mail Archiv
Flagged Markiert
// src/models/MailFolder.h/cpp
class MailFolder {
private:
    QString getLocalizedName(const QString &imapName) const {
        static QMap<QString, QString> localization = {
            {"INBOX", "Eingang"},
            {"Sent", "Gesendet"},
            {"Drafts", "Entwürfe"},
            {"Trash", "Papierkorb"},
            {"Spam", "Spam"},
            {"Archive", "Archiv"},
            {"Flagged", "Markiert"}
        };
        return localization.value(imapName, imapName);
    }
};

1.2 UI-Lokalisierung (Qt Translations)

// src/ui/MainWindow.cpp
tr("Eingang")      // INBOX
tr("Gesendet")     // Sent
tr("Entwürfe")     // Drafts
tr("Papierkorb")   // Trash
tr("Spam")         // Spam
tr("Archiv")       // Archive
tr("Markiert")     // Flagged
tr("Synchronisieren")  // Sync
tr("Neue Nachricht")   // New Message
tr("Antworten")        // Reply

2. Test-Plan: Deutsche Mail-Anbieter

2.1 Test-Konten Vorbereitung

Verfügbare Test-Konten:

Provider Email Status
GMX georg.dahmen@gmx.de Verfügbar
Web.de georg.dahmen.test@web.de Verfügbar
Telekom georg.dahmen.gd@googlemail.com Verfügbar

2.2 Test-Matrix

┌─────────────────┬─────────────────┬──────────────┬──────────────┐
│ Funktion        │ GMX             │ Web.de       │ Telekom/GM   │
├─────────────────┼─────────────────┼──────────────┼──────────────┤
│ Verbindung      │ imap.gmx.net:993│ imap.web.de  │ imap.gmail.c │
│ IMAP            │ ✅ IMAP4rev1    │ ✅ IMAP4rev1 │ ✅ IMAP4rev1 │
│ SMTP            │ mail.gmx.net:587│ mail.web.de  │ smtp.gmail.c │
│ TLS/SSL         │ ✅ 1.3          │ ✅ 1.3       │ ✅ 1.3       │
│ OAuth2          │ ❌ Nicht        │ ❌ Nicht     │ ✅ Google    │
│ STARTTLS        │ ✅ 587          │ ✅ 587       │ ✅ 587       │
│ 2FA Support     │ ✅              │ ✅           │ ✅           │
└─────────────────┴─────────────────┴──────────────┴──────────────┘

2.3 Phase B Test-Szenarien

Test 1: Verbindung & Authentifizierung

GMX:

1. Öffne Account-Setup Dialog
2. Email: georg.dahmen@gmx.de
3. Passwort: [Test-Passwort]
4. Server-Auto-Detect: imap.gmx.net:993
5. Ergebnis: ✅ Verbindung erfolgreich

Web.de:

1. Email: georg.dahmen.test@web.de
2. Passwort: [f6r8Z9uZAq83IMztmiyc]
3. Server-Auto-Detect: imap.web.de:993
4. Ergebnis: ✅ Verbindung erfolgreich

Telekom/Google:

1. Email: georg.dahmen.gd@googlemail.com
2. Passwort: [b*yZXxjd6CdwQAb6]
3. Oder OAuth2: https://accounts.login.idm.telekom.com/oauth2/auth
4. Ergebnis: ✅ Verbindung erfolgreich

Test 2: Ordner-Abruf

Erwartete Ordner (GMX):
✅ Eingang (INBOX)
✅ Gesendet (Sent)
✅ Entwürfe (Drafts)
✅ Papierkorb (Trash)
✅ Spam
✅ Archiv (Archive)
✅ Verschiedenes (Misc)

(Web.de & Telekom ähnlich)

Test 3: Email-Sync

1. Öffne Eingang
2. Klick "Synchronisieren"
3. Ergebnis: ✅ Alle Nachrichten abgerufen
   - Header angezeigt
   - Absender korrekt
   - Betreffzeilen angezeigt
   - Datum angezeigt

Test 4: Email lesen

1. Klick auf erste Email
2. Ergebnis: ✅ Vollständiger Text angezeigt
   - Formatierung korrekt
   - HTML-Mails korrekt (Falls vorhanden)
   - Anhänge angezeigt

Test 5: Email versenden

GMX-Konto test:
1. Neue Nachricht
2. An: [Ihre andere Email]
3. Betreff: Test Mail-Adler
4. Text: "Dies ist eine Test-Email von Mail-Adler"
5. Senden
6. Ergebnis: ✅ Email in "Gesendet" Ordner

Verification:
- Email im Gesendet-Ordner sichtbar
- Zeitstempel korrekt
- Text korrekt empfangen

Test 6: Email löschen

1. Öffne Email
2. Klick Löschen
3. Ergebnis: ✅ Email im Papierkorb
4. Verifizierung: 
   - Papierkorb Ordner zeigt Email
   - Eingang zeigt Email nicht mehr

Test 7: Email wiederherstellen

1. Öffne Papierkorb
2. Rechts-Klick auf gelöschte Email
3. "Wiederherstellen"
4. Ergebnis: ✅ Email zurück in Eingang

Test 8: Spam-Markierung

1. Öffne Email
2. Klick "Als Spam markieren"
3. Ergebnis: ✅ Email im Spam-Ordner
4. Lokal: Email in lokale Spam-Datenbank eingetragen
5. Täglich 9:00 Uhr: Zu zentralem Service hochgeladen

3. Cross-Platform Testing

3.1 Windows 11 Testing

Getestet von: Georg Dahmen (Dein System)

OS: Windows 11 (Build 22621)
Architektur: x86_64
RAM: 16 GB
Qt: 6.4.2

Test-Szenarien:
✅ App-Start
✅ Account-Setup
✅ IMAP-Sync (3 Provider)
✅ Email-Versand
✅ Lokale Persistierung

3.2 Linux Testing (geplant)

Distribution: Ubuntu 22.04 LTS (oder Debian)
Architektur: x86_64
Qt: 6.4.2+

Test-Szenarien:
- [ ] App-Start
- [ ] Account-Setup (GMX, Web.de)
- [ ] Keyring-Integration (Secret Service)
- [ ] Desktop-Integration

3.3 macOS Testing (geplant)

OS: macOS 13+
Architektur: x86_64 + ARM64
Qt: 6.4.2+

Test-Szenarien:
- [ ] App-Start
- [ ] Account-Setup
- [ ] Keychain-Integration
- [ ] Notarization & Signing

4. ARM64 Support - Raspberry Pi 5

4.1 Raspberry Pi 5 Architektur

Spezifikationen:

Prozessor: ARM Cortex-A76 (64-bit)
Architektur: ARMv8 / ARM64
RAM: 4GB / 8GB
CPU-Kerne: 4 @ 2.4 GHz
GPU: Broadcom VideoCore VII

Kompatibilität: ✅ Vollständig kompatibel mit Mail-Adler
Vergleich zu macOS ARM: Ähnlich, aber weniger Power

4.2 Build-Prozess für ARM64

# CMake-Konfiguration für ARM64
cd build-arm64
cmake .. \
  -DCMAKE_TOOLCHAIN_FILE=../cmake/arm64-toolchain.cmake \
  -DCMAKE_BUILD_TYPE=Release \
  -GNinja

# Für Raspberry Pi:
cmake .. \
  -DCMAKE_SYSTEM_NAME=Linux \
  -DCMAKE_SYSTEM_PROCESSOR=aarch64 \
  -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ \
  -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc \
  -GNinja

ninja
ninja install

4.3 Raspberry Pi OS Installation

Vorbereitung:

# Raspberry Pi OS Lite 64-bit
# Download: https://www.raspberrypi.com/software/

# SSH aktivieren
touch /boot/ssh

# Qt6 & Dependencies installieren
sudo apt update
sudo apt install -y \
  qt6-base-dev \
  qt6-sql-plugins \
  libsqlite3-dev \
  libssl-dev \
  libsasl2-dev \
  cmake \
  ninja-build \
  build-essential

# Mail-Adler compilieren & installieren
git clone https://github.com/georg0480/mail-adler.git
cd mail-adler
mkdir build && cd build
cmake .. -GNinja -DCMAKE_BUILD_TYPE=Release
ninja
sudo ninja install

4.4 Performance-Erwartungen

Operation Ergebnis
App-Start ~3-5 Sekunden
Account-Setup ~2-3 Sekunden
IMAP-Sync (10 Emails) ~2-4 Sekunden
Email-Render (HTML) ~1 Sekunde
Gesamtspeicher ~80-150 MB (mit Qt6)

4.5 Testing auf Pi 5

Minimales Test-Setup:

Hardware:
- Raspberry Pi 5 (8GB)
- SD-Karte (64GB+)
- Ethernet-Kabel (oder WiFi)

Software:
- Raspberry Pi OS 64-bit Lite
- Qt6
- Mail-Adler Build

Tests:
1. [ ] App startet
2. [ ] GMX-Account konfigurierbar
3. [ ] Sync funktioniert
4. [ ] Email lesbar
5. [ ] Email versendbar
6. [ ] CPU-Last akzeptabel
7. [ ] RAM-Nutzung ok

5. macOS ARM64 Support

5.1 Apple Silicon Kompatibilität

Modelle:

  • M1 / M1 Pro / M1 Max
  • M2 / M2 Pro / M2 Max
  • M3 / M3 Pro / M3 Max
  • M4 (zukünftig)

Vergleich:

Kriterium Pi 5 macOS M1
CPU Kerne 4 @ 2.4 GHz 8 (4P+4E) @ 3.2 GHz
RAM 4-8 GB 8-32 GB
Performance Niedrig Sehr hoch
Ideal für Heimserver Desktop/Laptop

5.2 ARM64 Build für macOS

# M1/M2/M3 Build
arch -arm64 brew install qt6
mkdir build-arm64-mac && cd build-arm64-mac

cmake .. \
  -DCMAKE_OSX_ARCHITECTURES=arm64 \
  -GNinja \
  -DCMAKE_BUILD_TYPE=Release

ninja
# Codesign & Notarize für App Store
codesign -s - build/Mail-Adler.app

6. Windows ARM64 Support (Zukunft)

Microsoft bietet auch Windows on ARM an (z.B. Copilot+ PCs).

Zukunft: Phase D+
- [ ] Windows ARM64 Build
- [ ] Testing auf ARM64 Windows
- [ ] Offizieller Release

7. Test-Automation

7.1 Unit Tests (Qt Test Framework)

// tests/imap_client_test.h
#include <QtTest>

class ImapClientTest : public QObject {
    Q_OBJECT
    
private slots:
    void testGMXConnection();
    void testWebDeConnection();
    void testTelekomConnection();
    void testEmailSync();
    void testEmailSend();
};

// Beispiel:
void ImapClientTest::testGMXConnection() {
    ImapClient client;
    bool connected = client.connect(
        "imap.gmx.net", 993,
        "georg.dahmen@gmx.de",
        "password"
    );
    QVERIFY(connected);
}

7.2 Integration Tests

// tests/e2e_tests.h
class E2ETest : public QObject {
    Q_OBJECT
    
private slots:
    void testFullWorkflow_GMX();
    void testFullWorkflow_WebDe();
    void testFullWorkflow_Telekom();
};

void E2ETest::testFullWorkflow_GMX() {
    // 1. App starten
    // 2. Account hinzufügen
    // 3. Sync
    // 4. Email lesen
    // 5. Email versenden
    // 6. Verifikation
}

8. Test-Checkliste Phase B

Phase B Completion Checklist

Lokalisierung:
- [x] Ordner-Namen Deutsch
- [x] UI-Text Deutsch
- [ ] Error-Messages Deutsch
- [ ] Tooltips Deutsch

GMX Testing (Windows 11):
- [ ] Verbindung erfolgreich
- [ ] Ordner abrufbar
- [ ] Emails synchronisierbar
- [ ] Emails lesbar
- [ ] Emails versendbar
- [ ] Löschen funktioniert
- [ ] Spam-Markierung funktioniert

Web.de Testing (Windows 11):
- [ ] Verbindung erfolgreich
- [ ] Ordner abrufbar
- [ ] Emails synchronisierbar
- [ ] Emails lesbar
- [ ] Emails versendbar
- [ ] 2FA funktioniert

Telekom/Google Testing (Windows 11):
- [ ] Verbindung erfolgreich
- [ ] OAuth2 funktioniert
- [ ] Ordner abrufbar
- [ ] Emails synchronisierbar
- [ ] Emails lesbar
- [ ] Emails versendbar

Linux Testing (geplant):
- [ ] Compilation erfolgreich
- [ ] App startet
- [ ] Account-Setup funktioniert
- [ ] Keyring-Integration ok

macOS Testing (geplant):
- [ ] Compilation erfolgreich (x86_64 + ARM64)
- [ ] App startet
- [ ] Keychain-Integration ok

ARM64 Testing (Zukunft):
- [ ] Pi 5 Build funktioniert
- [ ] App startet auf Pi 5
- [ ] Basis-Funktionalität ok
- [ ] Performance akzeptabel

Sicherheit:
- [ ] Passwörter verschlüsselt gespeichert
- [ ] TLS 1.3 verwendet
- [ ] Keine Passwörter in Logs
- [ ] Telemetrie optional

9. Release-Roadmap

Phase B (aktuell) - März 2025

  • Single-Account IMAP/SMTP
  • Deutsch-lokalisiert
  • Windows 11 Testing
  • GMX, Web.de, Telekom Support

Phase B+ - April 2025

  • Multi-Account Support
  • Linux Build verfügbar
  • macOS Build verfügbar

Phase C - Mai 2025

  • OpenPGP/E2EE Support
  • ARM64 Testing (Pi 5, M1/M2)
  • Beta-Release

Phase D - Juni 2025

  • S/MIME Support
  • Stable Release v1.0

10. Feedback & Bug-Reporting

Für Testing-Ergebnisse:

  • Email: georg.dahmen@proton.me
  • Format: Betriebssystem, Reproduktionsschritte, Fehler-Details
  • Screenshot/Log anhängen wenn möglich

Test-Daten speichern:

~/.config/mail-adler/test-logs/
├─ gmx_sync_20250203.log
├─ web_send_20250203.log
└─ telekom_oauth_20250203.log