Middle
Kaip išbandytumėte 20 skirtingų mokėjimo variantų interneto svetainėje?
sobes.tech AI
Atsakymas iš AI
Sukurtų testavimo strategiją, apimančią šiuos žingsnius:
- Reikalavimų ir dokumentacijos analizė: Išnagrinėčiau visus prieinamus medžiagos šaltinius apie kiekvieną mokėjimo būdą (integracijos specifikacijas, naudotojo scenarijus, API dokumentaciją).
- Testų dizainas: Sukurčiau testų atvejus kiekvienam mokėjimo būdui, apimančius:
- Teigiamus scenarijus (sėkmingas mokėjimas).
- Neigiamus scenarijus (neteisingi duomenys, trūksta lėšų, transakcijos atšaukimas).
- Ribinius atvejus (didelės/mažos sumos, specialieji simboliai).
- Scenarijus su įvairiais transakcijų statusais (pending, failed, refunded).
- Testavimą skirtinguose įrenginiuose ir naršyklėse.
- Testų prioritetizavimas: Pirmiausia išbandyčiau dažniausiai naudojamus ir kritiškai svarbius mokėjimo būdus.
- Testinių duomenų paruošimas: Sugeneruočiau realistiškus testinius duomenis, imituojančius įvairius naudotojo scenarijus ir ribinius atvejus. Galbūt reikėtų testinių paskyrų mokėjimo sistemose arba testinių kortelių.
- Testų vykdymas: Atlikčiau rankinius ir automatinius testus.
- Automatizacija: Implementuočiau automatinius testus dažnai vykdomiems ar kritiškai svarbiems scenarijams, pavyzdžiui, sėkmingiems mokėjimams su pagrindinėmis mokėjimo sistemomis.
- Integracinis testavimas: Patikrinčiau mokėjimo sistemų sąveiką su svetainės backend'u, užsakymų statusų teisingumą po apmokėjimo.
- Saugumo testavimas: Atlikčiau bazinius OWASP Top 10 patikrinimus, ypač apdorojant mokėjimo duomenis (Sensitive Data Exposure, Injection).
- Regresijos testavimas: Įsitikinčiau, kad nauji pakeitimai nepakenkė esamų mokėjimo būdų funkcionalumui.
- Žurnalo įrašų ir stebėjimo: Sekčiau transakcijų žurnalus ir klaidų įrašus testavimo metu.
- Rezultatų dokumentavimas: Užfiksuočiau testavimo rezultatus, rastus trūkumus ir jų atkūrimo žingsnius.
Testų atvejų struktūros pavyzdys:
| Testo atvejo ID | Mokėjimo būdas | Aprašymas | Žingsniai | Laukiamas rezultatas | Faktinis rezultatas | Statusas |
|---|---|---|---|---|---|---|
| PAY-001 | Visa | Sėkmingas mokėjimas | 1. Pridėti prekę į krepšelį. 2. Eiti prie apmokėjimo. 3. Pasirinkti Visa. 4. Įvesti teisingus kortelės duomenis. 5. Patvirtinti mokėjimą. | Užsakymas sėkmingai apdorotas. Užsakymo būsena "Apmokėta". Gauta mokėjimo įspėjimas. | ||
| PAY-002 | Visa | Mokėjimas su neteisingu kortelės numeriu | ... | Mokėjimo klaida. Pranešimas apie neteisingus duomenis. | ||
| PAY-003 | PayPal | Sėkmingas mokėjimas | ... (scenarijus su PayPal) | Užsakymas sėkmingai apdorotas. Užsakymo būsena "Apmokėta". Gauta mokėjimo įspėjimas. |
Automatizuoto testo pavyzdys (Python su Selenium WebDriver):
# test_payment.py
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
def test_visa_payment_success():
driver = webdriver.Chrome() # Arba kitas naršyklės vairuotojas
driver.get("http://your-website.com/checkout") # Apmokėjimo puslapio URL
# Kodas prekei pridėti į krepšelį ir pereiti prie apmokėjimo
# Pasirinkti Visa mokėjimo būdą
visa_option = driver.find_element(By.ID, "visa-payment-method")
visa_option.click()
# Įvesti kortelės duomenis (naudokite testinius duomenis!)
card_number_field = driver.find_element(By.ID, "card_number")
card_number_field.send_keys("4111111111111111") # Testinė Visa kortelė
# Įvesti kitus kortelės duomenis (galiojimo laikas, CVC, vardas)
# Paspausti apmokėjimo mygtuką
pay_button = driver.find_element(By.ID, "pay_button")
pay_button.click()
# Laukti sėkmingo apmokėjimo
WebDriverWait(driver, 10).until(
EC.url_contains("/order_success") # Sėkmingo užsakymo puslapio URL
)
# Papildomi patikrinimai (užsakymo būsena, sėkmės pranešimas)
driver.quit()
# Pridėti panašius testus kitiems mokėjimo būdams