Sobes.tech
Middle

Kaip išbandysite 20 skirtingų mokėjimo būdų svetainėje?

sobes.tech AI

Atsakymas iš AI

Testavimui 20 apmokėjimo būdų taikysiu išsamų požiūrį, apimantį rankinį ir automatizuotą testavimą, taip pat duomenų pagrindu vykdomą testavimą:

Pagrindiniai etapai:

  1. Reikalavimų supratimas. Išnagrinėti visas specifikacijas kiekvienam apmokėjimo būdui: valiutos, apribojimai, komisijos, apdorojimo srautai (peradresavimai, iframe ir kt.), sėkmingi ir nesėkmingi apmokėjimo scenarijai:

  2. Prioritetų nustatymas. Nustatyti apmokėjimo sistemų testavimo prioritetus remiantis naudojimo dažnumu, verslo svarba, integracijos sudėtingumu ir rizika. Pirmiausia testuojami svarbiausi ir dažniausiai naudojami būdai:

  3. Testavimo scenarijų planavimas. Kurti testinius atvejus kiekvienam apmokėjimo būdui, apimančius:

    • Sėkmingas operacijas (skirtingos sumos, valiutos, kortelių/sąskaitų tipai)
    • Nesėkmingas operacijas (neteisingi duomenys, lėšų trūkumas, banko/ar sistemos atmestas)
    • Klaidas ir klaidų pranešimus
    • Naršyklių ir įrenginių testavimą (krosnaršyklinis, kryžminis platforminis)
    • Našumo testavimą (apmokėjimo puslapio įkėlimo laikas, apdorojimo greitis)
    • Saugumo testavimą (kortelės duomenų apsauga, pažeidžiamumai)
    • Integracijos su kitomis sistemomis testavimą (CRM, buhalterija)
    • Grąžinimo scenarijus (jei taikoma)
  4. Testinių duomenų paruošimas. Naudoti realius ir testinius duomenis kiekvienam apmokėjimo būdui. Kai kurioms sistemoms reikalingos testinės kortelės ar paskyros, kurios teikiamos mokėjimo vartais:

  5. Rankinio testavimo vykdymas.

    • Vartotojo sąsajos ir patogumo testavimas
    • Visų žingsnių rankinis patikrinimas, siekiant nustatyti nelogišką elgesį ar klaidas
    • Scenarijų testavimas, kurį sunku automatizuoti (pvz., dviejų veiksnių autentifikacija)
  6. Automatizuotų testų kūrimas.

    • Dažniausiai ir kritiškiausių scenarijų automatizavimas
    • Užsakymo būsenos automatinė patikra
    • Naudojant karkasus (pvz., Selenium WebDriver, Cypress, Postman/Rest Assured) ir programavimo kalbas (Java, Python, JavaScript)
    • Testų vykdymo laiko sutaupymas
    // Automatizuoto apmokėjimo testo pavyzdys (pseudo-kodas)
    @Test
    public void testSuccessfulPaymentWithCreditCard() {
        // Pereiti į užsakymo puslapį
        orderPage.open();
        // Pridėti prekes
        orderPage.addItems("item1", 2);
        // Pereiti į apmokėjimo puslapį
        orderPage.goToPaymentPage();
        // Pasirinkti apmokėjimo būdą "Kredito kortelė"
        paymentPage.selectPaymentMethod("Credit Card");
        // Įvesti testinės kortelės duomenis
        paymentPage.enterCardDetails("1111222233334444", "12/25", "123");
        // Paspausti "Apmokėti" mygtuką
        paymentPage.clickPayButton();
        // Patikrinti, ar apmokėjimas sėkmingas (pvz., URL ar pranešimu)
        assertTrue(confirmationPage.isOrderSuccessful());
        // Patikrinti užsakymo būseną administracijoje (pasirinktinai per API)
        String orderId = confirmationPage.getOrderId();
        Order order = api.getOrderDetails(orderId);
        assertEquals("Paid", order.getStatus());
    }
    
  7. API testavimas. Jei įmanoma, testuoti integraciją su mokėjimo sistemomis per API, siunčiant testinius užklausimus kurti operacijas, patikrinti būseną ir kt. Tai greičiau ir stabilesnė nei UI testavimas backend'ui:

    # API testas kurti mokėjimą (pseudo-kodas 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 # Patvirtinti sėkmingą užklausos sukūrimą
        data = response.json()
        assert "payment_id" in data
        assert data["status"] == "pending" # arba laukiamas statusas
    
        # Papildomas statuso patikrinimas per GET
        # status_response = requests.get(f"{url}/{data['payment_id']}", headers=headers)
        # assert status_response.status_code == 200
        # assert status_response.json()["status"] == "successful" # po sėkmingo apdorojimo
    
  8. Regresijos testavimas. Apmokėjimo testus įtraukti į regresijos rinkinį, kad reguliariai patikrinti visų integruotų mokėjimo sistemų veikimą naujų versijų išleidimo metu:

  9. Stebėsena. Nustatyti stebėseną gamybos aplinkoje, kad greitai būtų galima aptikti mokėjimo sistemų problemas:

  10. Ataskaitų rengimas. Aiškiai dokumentuoti rastas klaidas ir testavimo pažangą:

Pavyzdinis planas 20 apmokėjimo būdų:

Apmokėjimo būdas Rankinio padengimo Automatinio padengimo Testavimo scenarijai Testavimo duomenys Statusas
Visa Pilnas Sėkmė, CVV atmestas 10+ Testavimo kortelės Darbe
Mastercard Pilnas Sėkmė, galiojimo pabaiga 10+ Testavimo kortelės Darbe
PayPal Pilnas Sėkmė 8+ Testavimo paskyros Darbe
Apple Pay Pilnas Apribota 5+ Realių įrenginių Darbe
Google Pay Pilnas Apribota 5+ Realių įrenginių Darbe
... (dar 15 būdų) Dalinis / Pilnas Pasirinktinai pagal svarbą 3-10+ kiekvienas Skirtingi Darbe

Taigi, aš derinsiu detalią rankinę analizę su automatizacija kritiškiausių ir dažniausiai pasitaikančių scenarijų, siekiant efektyviai patikrinti didelį mokėjimo metodų kiekį.