Sobes.tech
Middle

Wie testen Sie 20 verschiedene Zahlungsmethoden auf der Website?

sobes.tech KI

Antwort von AI

Um die 20 Zahlungsmethoden zu testen, würde ich einen umfassenden Ansatz verfolgen, der manuelle und automatisierte Tests sowie Tests mit Daten umfasst.

Hauptphasen:

  1. Anforderungsverständnis. Studium aller Spezifikationen für jede Zahlungsmethode: Währungen, Einschränkungen, Gebühren, Verarbeitungsflüsse (Weiterleitungen, iframe usw.), erfolgreiche und fehlgeschlagene Zahlungsszenarien.

  2. Priorisierung. Festlegung der Testpriorität basierend auf Nutzungshäufigkeit, Kritikalität für das Geschäft, Integrationskomplexität und Risiken jeder Zahlungsmethode. Zuerst werden die wichtigsten und häufigsten Methoden getestet.

  3. Testfalldesign. Erstellung von Testfällen für jede Zahlungsmethode, die abdecken:

    • Erfolgreiche Transaktionen (verschiedene Beträge, Währungen, Kartentypen/Konten).
    • Fehlgeschlagene Transaktionen (falsche Daten, unzureichende Mittel, Ablehnung durch Bank/System).
    • Fehlerbehandlung und Fehlermeldungen.
    • Tests auf verschiedenen Browsern und Geräten (Kompatibilität, plattformübergreifend).
    • Leistungstests (Ladezeit der Zahlungsseite, Verarbeitungsgeschwindigkeit).
    • Sicherheitstests (Kartendaten, Schwachstellen).
    • Integration mit anderen Systemen (CRM, Buchhaltung).
    • Rückführungsszenarien (falls zutreffend).
  4. Testdatenvorbereitung. Verwendung von realen und Testdaten für jede Zahlungsmethode. Einige Systeme benötigen Testkarten oder Konten, die vom Zahlungs-Gateway bereitgestellt werden.

  5. Manuelle Tests.

    • UI- und Usability-Tests für jede Zahlungsmethode.
    • Überprüfung aller Schritte des Zahlungsprozesses manuell, um unlogisches Verhalten oder Anzeigeprobleme zu erkennen.
    • Tests für Szenarien, die schwer zu automatisieren sind (z.B. Weiterleitungen mit Zwei-Faktor-Authentifizierung).
  6. Automatisierte Tests.

    • Automatisierung der häufigsten und kritischen erfolgreichen Zahlungsszenarien für jede Hauptmethode.
    • Automatisierung der Statusüberprüfung nach der Zahlung.
    • Verwendung von Frameworks (z.B. Selenium WebDriver, Cypress für UI, Postman/Rest Assured für API) und Programmiersprachen (Java, Python, JavaScript).
    • Parallele Ausführung der Tests zur Verkürzung der Laufzeit.
    // Beispiel für einen automatisierten Zahlungstest (Pseudocode)
    @Test
    public void testSuccessfulPaymentWithCreditCard() {
        // Zur Bestellseite navigieren
        orderPage.open();
        // Artikel zum Warenkorb hinzufügen
        orderPage.addItems("item1", 2);
        // Zur Zahlungsseite gehen
        orderPage.goToPaymentPage();
        // Zahlungsmethode "Kreditkarte" auswählen
        paymentPage.selectPaymentMethod("Credit Card");
        // Testkartendaten eingeben
        paymentPage.enterCardDetails("1111222233334444", "12/25", "123");
        // Auf "Bezahlen" klicken
        paymentPage.clickPayButton();
        // Erfolg der Zahlung prüfen (z.B. URL oder Nachricht)
        assertTrue(confirmationPage.isOrderSuccessful());
        // Bestellstatus im Adminbereich prüfen (optional via API)
        String orderId = confirmationPage.getOrderId();
        Order order = api.getOrderDetails(orderId);
        assertEquals("Paid", order.getStatus());
    }
    
  7. API-Tests. Wenn möglich, Integrationstests mit Zahlungssystemen via API, um Testanfragen zum Erstellen von Transaktionen, Statusprüfungen usw. zu senden. Schneller und stabiler als UI-Tests für Backend-Logik.

    # Beispiel für einen API-Test zur Zahlungsanlegung (Pseudocode mit requests)
    import requests
    
    def test_create_payment_with_paypal():
        url = "https://api.example.com/payments"
        payload = {
            "amount": 100,
            "currency": "USD",
            "payment_method": "paypal",
            "order_id": "ORD12345"
        }
        headers = {"Authorization": "Bearer <token>"}
    
        response = requests.post(url, json=payload, headers=headers)
    
        assert response.status_code == 201 # Erfolgreiche Erstellung prüfen
        data = response.json()
        assert "payment_id" in data
        assert data["status"] == "pending" # Oder erwarteter Status
    
        # Zusätzliche Statusprüfung via GET
        # status_response = requests.get(f"{url}/{data['payment_id']}", headers=headers)
        # assert status_response.status_code == 200
        # assert status_response.json()["status"] == "successful" # Nach erfolgreicher Verarbeitung
    
  8. Regressionstests. Integration der Zahlungstests in den Regressionstest, um regelmäßig die Funktionalität aller integrierten Zahlungssysteme bei neuen Versionen zu überprüfen.

  9. Monitoring. Einrichtung eines Monitorings in der Produktion, um Probleme mit Zahlungssystemen schnell zu erkennen.

  10. Berichtswesen. Klare Dokumentation der gefundenen Fehler und des Testfortschritts.

Voraussichtlicher Testplan für 20 Zahlungsmethoden:

Zahlungsmethode Manuelle Abdeckung Automatisierte Abdeckung Testszenarien Testdaten Status
Visa Vollständig Erfolg, Ablehnung durch CVV 10+ Testkarten In Bearbeitung
Mastercard Vollständig Erfolg, Ablehnung durch Ablaufdatum 10+ Testkarten In Bearbeitung
PayPal Vollständig Erfolg 8+ Testkonten In Bearbeitung
Apple Pay Vollständig Eingeschränkt 5+ Reale Geräte In Bearbeitung
Google Pay Vollständig Eingeschränkt 5+ Reale Geräte In Bearbeitung
... (weitere 15 Methoden) Teilweise / Vollständig Nach Kritikalität ausgewählt 3-10+ je Verschieden In Bearbeitung

Auf diese Weise würde ich eine detaillierte manuelle Untersuchung mit der Automatisierung der kritischsten und wiederkehrenden Szenarien kombinieren, um eine effiziente Testung einer großen Anzahl von Zahlungsmethoden zu gewährleisten.