Sobes.tech
Middle

Kuidas te testite 20 erinevat makseviisi veebisaidil?

sobes.tech AI

Vastus AI-lt

Testimiseks 20 makseviisi kasutaksin põhjalikku lähenemist, mis hõlmab käsitsi ja automatiseeritud testimist ning andmepõhist testimist:

Peamised etapid:

  1. Nõuete mõistmine. Uurida kõiki spetsifikatsioone iga makseviisi jaoks: valuutad, piirangud, komisjonitasud, töötlemisvood (suunamised, iframe jne), edukad ja ebaõnnestunud makse stsenaariumid:

  2. Prioriteetide määramine. Määrata maksesüsteemide testimise prioriteet kasutamise sageduse, äriolulisuse, integratsiooni keerukuse ja riskide alusel. Esmalt testitakse kõige olulisemaid ja levinumaid viise:

  3. Teststsenaariumide planeerimine. Luua iga makseviisi jaoks testjuhtumid, hõlmates:

    • Edukad tehingud (erinevad summad, valuutad, kaarditüübid/kontotüübid)
    • Ebaõnnestunud tehingud (vigased andmed, vahendite puudus, panga/süsteemi keeld)
    • Vea ja veateadete testimine
    • Brauserite ja seadmete testimine (ristpõranda, ristplatvormiline)
    • Jõudluse testimine (makse lehe laadimisaeg, töötlemise kiirus)
    • Turvatestimine (kaarditeabe kaitse, haavatavused)
    • Teiste süsteemidega integreerimise testimine (CRM, raamatupidamine)
    • Tagastamise stsenaariumid (kui rakendub)
  4. Testandmete ettevalmistamine. Kasutada reaalseid ja testandmeid iga makseviisi jaoks. Mõned süsteemid nõuavad testkaarte või kontosid, mida pakub makselüüs:

  5. Käsitsi testimise teostamine.

    • Kasutajaliidese ja kasutusmugavuse testimine
    • Kõigi sammude käsitsi kontrollimine, et tuvastada loogikat mitte järgivat käitumist või vigu
    • Sündmuste testimine, mis on keeruline automatiseerida (näiteks, kahe faktoriga autentimine)
  6. Automatiseeritud testide väljatöötamine.

    • Kõige sagedasemate ja kriitilisemate stsenaariumide automatiseerimine
    • Tellimuse staatuse automaatne kontroll
    • Kasutades raamistikke (näiteks, Selenium WebDriver, Cypress, Postman/Rest Assured) ja programmeerimiskeeli (Java, Python, JavaScript)
    • Testide täitmise aja vähendamine
    // Automatiseeritud maksetesti näide (pseudo-kood)
    @Test
    public void testSuccessfulPaymentWithCreditCard() {
        // Liikumine tellimuse lehele
        orderPage.open();
        // Kaupade lisamine
        orderPage.addItems("item1", 2);
        // Liikumine makse lehele
        orderPage.goToPaymentPage();
        // Makseviisi valimine "Krediitkaart"
        paymentPage.selectPaymentMethod("Credit Card");
        // Testkaardi andmete sisestamine
        paymentPage.enterCardDetails("1111222233334444", "12/25", "123");
        // Nuppu "Maksa" klõps
        paymentPage.clickPayButton();
        // Kontrollida, kas makse õnnestus (näiteks, URL või sõnum)
        assertTrue(confirmationPage.isOrderSuccessful());
        // Tellimuse staatuse kontroll administraatoris (valikuline API kaudu)
        String orderId = confirmationPage.getOrderId();
        Order order = api.getOrderDetails(orderId);
        assertEquals("Paid", order.getStatus());
    }
    
  7. API testimine. Kui võimalik, testida maksesüsteemidega integratsiooni API kaudu, saates testpäringuid tehingute loomise, staatuse kontrolli jms. See on kiirem ja stabiilsem kui UI-testimine backendile:

    # API test näide makse loomise kohta (pseudo-kood 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 # Kinnitama edukas päring
        data = response.json()
        assert "payment_id" in data
        assert data["status"] == "pending" # või oodatud staatus
    
        # Täiendav staatuse kontroll GET kaudu
        # status_response = requests.get(f"{url}/{data['payment_id']}", headers=headers)
        # assert status_response.status_code == 200
        # assert status_response.json()["status"] == "successful" # pärast edukat töötlemist
    
  8. Regressiooni testimine. Lisada maksetest regressiooni komplekti, et regulaarselt kontrollida kõigi integreeritud maksesüsteemide tööd uute versioonide väljalaskmisel:

  9. Jälgimine. Seadistada jälgimine tootmiskeskkonnas, et kiiresti avastada maksesüsteemide probleemid:

  10. Aruandlus. Selgelt dokumenteerida leitud vead ja testimise edenemine:

Näidiskava 20 makseviisile:

Makseviis Käsitsi katvus Automaatne katvus Teststsenaariumid Testandmed Staatus
Visa Täielik Edukas, CVV keeld 10+ Testkaardid Töötamas
Mastercard Täielik Edukas, kehtivusaeg 10+ Testkaardid Töötamas
PayPal Täielik Edukas 8+ Testkontod Töötamas
Apple Pay Täielik Piiratud 5+ Reaalne seade Töötamas
Google Pay Täielik Piiratud 5+ Reaalne seade Töötamas
... (veel 15 viisi) Osaline / Täielik Valikuline kriitilisuse alusel 3-10+ igaüks Erinevad Töötamas

Seega, ma ühendaksin üksikasjaliku käsitsi uurimise kriitiliste ja korduvate stsenaariumite automatiseerimisega, et tõhusalt testida suure hulga maksemeetodite toimivust.