Sobes.tech
Middle

Kā jūs pārbaudīsiet 20 dažādus maksājuma veidus tīmekļa vietnē?

sobes.tech AI

Atbilde no AI

Testēšanai 20 maksājumu veidiem es piemērotu visaptveroju pieeju, kas ietver roku un automatizētu testēšanu, kā arī datu balstītu testēšanu:

Galvenie posmi:

  1. Prasību izpratne. Izpētīt visas specifikācijas katram maksājuma veidam: valūtas, ierobežojumi, komisijas, apstrādes plūsmas (novirzīšanas, iframe utt.), veiksmīgi un neveiksmīgi maksājuma scenāriji:

  2. Prioritātes noteikšana. Noteikt maksājumu sistēmu testēšanas prioritāti, balstoties uz lietošanas biežumu, biznesa nozīmīgumu, integrācijas sarežģītību un riskiem. Vispirms tiek testēti visbūtiskākie un visbiežāk izmantotie veidi:

  3. Testu scenāriju plānošana. Izveidot testu gadījumus katram maksājuma veidam, ietverot:

    • Veiksmīgas transakcijas (dažādas summas, valūtas, kartes/kontu tipi)
    • Neveiksmīgas transakcijas (nepareizi dati, līdzekļu trūkums, bankas/sistēmas atteikums)
    • Kļūdu un kļūdu ziņojumu testēšana
    • Pārlūkprogrammu un ierīču testēšana (krustpārlūkprogrammu, krustplatformu)
    • Veiktspējas testēšana (maksājuma lapas ielādes laiks, apstrādes ātrums)
    • Drošības testēšana (kartes datu aizsardzība, ievainojamības)
    • Integrācijas ar citām sistēmām testēšana (CRM, grāmatvedība)
    • Atgriešanas scenāriji (ja piemērojams)
  4. Testu datu sagatavošana. Izmantot reālus un testu datus katram maksājuma veidam. Dažām sistēmām nepieciešamas testu kartes vai konti, kas tiek nodrošināti maksājumu vārtiem:

  5. Roku testēšanas veikšana.

    • Lietotāja saskarnes un lietošanas ērtības testēšana
    • Visu soļu manuāla pārbaude, lai identificētu nelogisku uzvedību vai kļūdas
    • Scenāriju testēšana, kas ir grūti automatizējami (piemēram, divu faktoru autentifikācija)
  6. Automatizēto testu izstrāde.

    • Visbiežāk un kritiskāko scenāriju automatizācija
    • Pasūtījuma statusa automātiska pārbaude
    • Izmantojot karkasus (piemēram, Selenium WebDriver, Cypress, Postman/Rest Assured) un programmēšanas valodas (Java, Python, JavaScript)
    • Testu izpildes laika samazināšana
    // Automatizēta maksājuma testa piemērs (psevdokods)
    @Test
    public void testSuccessfulPaymentWithCreditCard() {
        // Pāreja uz pasūtījuma lapu
        orderPage.open();
        // Preču pievienošana
        orderPage.addItems("item1", 2);
        // Pāreja uz maksājuma lapu
        orderPage.goToPaymentPage();
        // Maksājuma veida izvēle "Kredītkarte"
        paymentPage.selectPaymentMethod("Credit Card");
        // Testa kartes datu ievade
        paymentPage.enterCardDetails("1111222233334444", "12/25", "123");
        // Noklikšķināt uz "Maksāt"
        paymentPage.clickPayButton();
        // Pārbaudīt, vai maksājums ir veiksmīgs (piemēram, URL vai ziņojums)
        assertTrue(confirmationPage.isOrderSuccessful());
        // Pasūtījuma statusa pārbaude administrācijā (pa izvēli caur API)
        String orderId = confirmationPage.getOrderId();
        Order order = api.getOrderDetails(orderId);
        assertEquals("Paid", order.getStatus());
    }
    
  7. API testēšana. Ja iespējams, testēt integrāciju ar maksājumu sistēmām caur API, nosūtot testu pieprasījumus transakciju izveidei, statusa pārbaudei utt. Tas ir ātrāk un stabilāk nekā UI testēšana backendam:

    # API testēšanas piemērs transakcijas izveidei (psevdokods 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 # Apstiprināt veiksmīgu pieprasījumu
        data = response.json()
        assert "payment_id" in data
        assert data["status"] == "pending" # vai sagaidāmais statuss
    
        # Papildu statusa pārbaude caur GET
        # status_response = requests.get(f"{url}/{data['payment_id']}", headers=headers)
        # assert status_response.status_code == 200
        # assert status_response.json()["status"] == "successful" # pēc apstrādes veiksmīgi
    
  8. Regresijas testēšana. Iekļaut maksājumu testus regresijas kopā, lai regulāri pārbaudītu visu integrēto maksājumu sistēmu darbību jaunu versiju iznākšanas laikā:

  9. Uzraudzība. Iestatīt uzraudzību ražošanas vidē, lai ātri atklātu maksājumu sistēmu problēmas:

  10. Atskaišu sagatavošana. Skaidri dokumentēt atrastās kļūdas un testēšanas progresu:

Piemērs plānam 20 maksājuma veidiem:

Maksājuma veids Roka pārklājums Automatizācijas pārklājums Testu scenāriji Testu dati Statuss
Visa Pilnīgs Veiksmīgs, CVV noraidīts 10+ Testa kartes Darbībā
Mastercard Pilnīgs Veiksmīgs, derīguma termiņa beigas 10+ Testa kartes Darbībā
PayPal Pilnīgs Veiksmīgs 8+ Testa konti Darbībā
Apple Pay Pilnīgs Ierobežots 5+ Reālas ierīces Darbībā
Google Pay Pilnīgs Ierobežots 5+ Reālas ierīces Darbībā
... (vēl 15 veidi) Daļējs / Pilnīgs Izvēles pēc kritiskuma 3-10+ katrs Dažādi Darbībā

Tādējādi es apvienotu detalizētu roku izpēti ar automatizāciju kritiskākajiem un atkārtojamākajiem scenārijiem, lai efektīvi pārbaudītu lielu skaitu maksājuma metožu.