Sobes.tech
Middle

Bir web sitesinde 20 farklı ödeme yöntemini nasıl test edersiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Ödeme 20 ödeme yöntemini test etmek için, manuel ve otomatik testleri, ayrıca veri ile testleri içeren kapsamlı bir yaklaşım uygularım.

Ana aşamalar:

  1. Gereksinimlerin Anlaşılması. Her ödeme yöntemi için tüm spesifikasyonların incelenmesi: para birimleri, kısıtlamalar, komisyonlar, işlem akışları (yönlendirmeler, iframe vb.), başarılı ve başarısız ödeme senaryoları.

  2. Önceliklendirme. Kullanım sıklığı, iş için kritiklik, entegrasyon zorluğu ve risklere göre test önceliğinin belirlenmesi. Öncelikle en önemli ve yaygın yöntemler test edilir.

  3. Test Senaryosu Planlaması. Her ödeme yöntemi için, şunları kapsayan test vakaları oluşturulur:

    • Başarılı işlemler (farklı tutarlar, para birimleri, kart/takip türleri).
    • Başarısız işlemler (yanlış bilgiler, yetersiz bakiye, banka/sistem reddi).
    • Hata yönetimi ve hata mesajları.
    • Farklı tarayıcılar ve cihazlarda testler (uyumluluk, çapraz platform).
    • Performans testleri (ödeme sayfası yükleme süresi, işlem hızı).
    • Güvenlik testleri (kart verilerinin korunması, açıklar).
    • Diğer sistemlerle entegrasyon (CRM, muhasebe).
    • Geri dönüş senaryoları (uygunsa).
  4. Test Verilerinin Hazırlanması. Her ödeme yöntemi için gerçek ve test verileri kullanılır. Bazı sistemler, ödeme geçidi tarafından sağlanan test kartları veya hesaplar gerektirir.

  5. Manuel Testlerin Yapılması.

    • Her ödeme için kullanıcı arayüzü ve kullanılabilirlik testleri.
    • Tüm ödeme süreci adımlarının manuel olarak kontrol edilmesi, mantıksız davranış veya görüntüleme hatalarının tespiti.
    • Otomasyona zor olan senaryoların test edilmesi (örneğin, iki faktörlü kimlik doğrulama ile yönlendirmeler).
  6. Otomatik Testlerin Geliştirilmesi.

    • Her ana ödeme yöntemi için en sık ve kritik başarılı ödeme senaryolarının otomasyonu.
    • Ödeme sonrası sipariş durumunun otomasyonu.
    • Frameworklerin kullanılması (örneğin, Selenium WebDriver, UI için Cypress, API için Postman/Rest Assured) ve programlama dilleri (Java, Python, JavaScript).
    • Testlerin paralel yürütülmesi, süreyi kısaltmak için.
    // Otomatik ödeme testi örneği (sözde kod)
    @Test
    public void testSuccessfulPaymentWithCreditCard() {
        // Sipariş sayfasına git
        orderPage.open();
        // Ürünleri sepete ekle
        orderPage.addItems("item1", 2);
        // Ödeme sayfasına git
        orderPage.goToPaymentPage();
        // "Kredi Kartı" ödeme yöntemini seç
        paymentPage.selectPaymentMethod("Credit Card");
        // Test kartı bilgilerini gir
        paymentPage.enterCardDetails("1111222233334444", "12/25", "123");
        // "Öde" butonuna tıkla
        paymentPage.clickPayButton();
        // Ödemenin başarılı olduğunu doğrula (örneğin, URL veya mesaj ile)
        assertTrue(confirmationPage.isOrderSuccessful());
        // Sipariş durumunu API ile kontrol et (isteğe bağlı)
        String orderId = confirmationPage.getOrderId();
        Order order = api.getOrderDetails(orderId);
        assertEquals("Paid", order.getStatus());
    }
    
  7. API Testleri. Mümkünse, API aracılığıyla ödeme sistemleriyle entegrasyon testleri, test istekleri göndererek işlemler oluşturma, durum kontrolü vb. Bu, backend mantığı için UI testlerinden daha hızlı ve daha stabildir.

    # Ödeme oluşturma API testi örneği (sözde kod, requests ile)
    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 # Başarılı oluşturmayı doğrula
        data = response.json()
        assert "payment_id" in data
        assert data["status"] == "pending" # veya beklenen durum
    
        # Ek durum kontrolü (GET ile)
        # status_response = requests.get(f"{url}/{data['payment_id']}", headers=headers)
        # assert status_response.status_code == 200
        # assert status_response.json()["status"] == "successful" # Başarılı işlem sonrası
    
  8. Regresyon Testleri. Ödeme testlerini, yeni sürümler yayınlandığında tüm entegre ödeme sistemlerinin çalışırlığını düzenli olarak kontrol etmek için regresyon setine dahil et.

  9. İzleme. Üretimde, ödeme sistemleriyle ilgili sorunları hızlıca tespit etmek için izleme kur.

  10. Raporlama. Bulunan hataların ve test ilerlemesinin net dokümantasyonu.

20 ödeme yöntemi için örnek test planı:

Ödeme Yöntemi Manuel Kapsam Otomasyon Kapsamı Test Senaryoları Test Verileri Durum
Visa Tam Başarılı, CVV reddi 10+ Test kartları Çalışma aşamasında
Mastercard Tam Başarılı, son kullanma tarihi reddi 10+ Test kartları Çalışma aşamasında
PayPal Tam Başarılı 8+ Test hesapları Çalışma aşamasında
Apple Pay Tam Sınırlı 5+ Gerçek cihazlar Çalışma aşamasında
Google Pay Tam Sınırlı 5+ Gerçek cihazlar Çalışma aşamasında
... (diğer 15 yöntem) Kısmi / Tam Kritikliğe göre seçilir 3-10+ her biri Çeşitli Çalışma aşamasında

Bu şekilde, detaylı manuel araştırmayı, en kritik ve tekrar eden senaryoların otomasyonuyla birleştirerek, çok sayıda ödeme yönteminin etkin test edilmesini sağlardım.