QA Shop — Ürün Analizi ve User Story'ler

QA Shop, test pratiği yapman için kurulmuş ücretsiz bir e-ticaret sistemidir: gerçek bir PostgreSQL veritabanı, ona bağlı 41 endpoint'li bir REST API ve ikisini kullanan bir dükkân arayüzü. Kendi makinende tek komutla ayağa kalkar, kayıt istemez, ve içindeki veri gerçektir — sepete eklediğin ürünün stoğu gerçekten düşer.

Gerçek PostgreSQL ve 41 endpoint'li REST API ile ücretsiz test pratiği: 16 user story, kabul kriterleri, iş kuralları ve ölçülmüş hata kataloğu. Kayıt gerekmez.

İnternetteki ücretsiz test API'lerinin çoğu sabit cevap döndürür. HTTP metotlarını, durum kodlarını ve JSON okumayı öğrenmek için iyidirler ve bu iş için hâlâ doğru araçtırlar. Ama bir iş kuralını orada test edemezsin: stok azalmaz, sipariş bir tabloya yazılmaz, iki kullanıcı birbirinin verisini göremez çünkü zaten veri yoktur.

Bu sayfada neler öğreneceksin

  • Ürün ne yapar? — Çoğu test alıştırması sahte veri döndüren bir endpoint verir; orada stok düşmez, sipariş bir tabloya yazılmaz, iki kullanıcı birbirinin verisini göremez çünkü zaten veri yoktur. Böyle bir yerde yazdığın test geçer ama hiçbir şeyi kanıtlamaz. QA Shop bilerek te
  • Veri modeli — Bir siparişin neden iki değil üç tabloya yazıldığını bilmeyen kişi, "sipariş oluştu" kontrolünü tek tabloya bakarak yazar ve satırları hiç kontrol etmez. O test, satırların yazılmadığı bir defect'i yeşil geçer. Model bilgisi, kontrol edilecek yeri be
  • Sipariş yaşam döngüsü — Altı durum ve altı izinli geçiş var. Geriye kalan her kombinasyon YASAK — ve yasak geçişler, geliştiricilerin en sık atladığı yerdir çünkü mutlu yol testleri onlara hiç uğramaz. "Ödenmemiş siparişi kargolamayı dene" gibi tek bir istek, günlerce fark
  • Test edilebilir iş kuralları — Bir kontrolün gerçekten baktığını görmenin tek yolu, kuralı bilerek bozup kontrolün kırmızıya döndüğünü görmektir. Çünkü her zaman yeşil kalan bir kontrol ile hiçbir şeye bakmayan bozuk bir kontrol, rapor ekranında birbirinin aynısıdır. Aşağıdaki her kuralın y
  • Hata sözlüğü — Bir testin "4xx aldım, demek ki doğru çalışıyor" demesi, kuponun süresi bittiği için mi yoksa kupon hiç bulunamadığı için mi reddedildiğini ayırt etmez. İkisi aynı HTTP kodunu döndürebilir ama bambaşka iki defect'i gösterir. Bu yüzden testin HTTP kod
  • User story'ler — test case'lerini buradan yaz — Müşteri katalogu gezer, satıştan kalkan ürünü görmez
  • Test edilebilir iş kuralları — Sepete ekleme stoğu REZERVE eder, düşürmez · Kupon CHECKOUT anında yeniden doğrulanır · Tutar mutabakatı: genel = ara − indirim + kargo · Çıkış yapmak oturumu GERÇEKTEN iptal eder · Yorum `pending` doğar; kaydedilmiş olmak yayınlanmış olmak değildir · Kimse ba
  • User story listesi — US-01 Yeni müşteri hesap açar · US-02 Müşteri giriş yapar ve çıkar · US-03 Müşteri katalogu gezer, satıştan kalkan ürünü görmez · US-04 Müşteri ürün arar · US-05 Müşteri sepete ürün ekler, stok rezerve edilir · US-06 Müşteri sepetteki adedi değiştirir · US-07

Sık Sorulan Sorular

QA Shop ücretsiz mi, kayıt olmam gerekiyor mu?

Ücretsizdir ve kayıt gerektirmez. Stack tamamen kendi makinende çalışır: bir hesap açmazsın, bir anahtar satın almazsın ve kullanım kotası yoktur. Sistemin içindeki "giriş yap" adımı pratik ettiğin e-ticaret uygulamasının kendi kullanıcılarıdır, bu sitenin üyeliği değil.

Sabit cevap döndüren ücretsiz test API'lerinden farkı ne?

Onlar sabit cevap döndürür; HTTP metotlarını ve durum kodlarını öğrenmek için iyidirler. QA Shop'ta ise gerçek bir PostgreSQL var: sepete eklediğin ürünün stoğu düşer, sipariş satırları tabloya yazılır, kupon checkout anında yeniden doğrulanır ve sonucu DBeaver ile SQL yazarak kontrol edebilirsin. Yani burada iş kuralı test edebilirsin, yalnızca istek biçimi değil.

Ne kurmam gerekiyor?

Yalnızca Docker. Kurulum rehberi Docker'ın kendisinin kurulumundan başlar ve hiçbir şeyi kurulu varsaymaz. Depoyu indirmek bile istemiyorsan yayınlanmış imajlarla tek bir compose dosyası indirerek ya da üç docker run komutuyla da başlatabilirsin. SQL pratiği için DBeaver, API pratiği için Postman önerilir ama zorunlu değildir.

Hangi test türlerini pratik edebilirim?

Üçünü birden: veritabanı testi (DBeaver ile SQL, hazır doğrulama sorgu paketiyle), API testi (41 iş endpoint'i, OpenAPI sözleşmesi, Postman ve REST Assured örnek paketleri) ve arayüz otomasyonu (kararlı test id taşıyan dükkân ekranı, Selenium/Playwright/Cypress ile). Aynı iş kuralını üç katmandan test etmek, her aracın neyi kolaylaştırdığını ve neyi gizlediğini yan yana gösterir.

Testimin gerçekten çalıştığını nasıl anlarım?

Sistemde açılıp kapatılabilen 10 kontrollü defect var. Testini yazıp yeşil geçtikten sonra ilgili defect'i açarsın ve aynı testi tekrar koşarsın: kırmızıya dönmüyorsa test o kurala hiç bakmıyordur. Her zaman yeşil kalan bir kontrol ile hiçbir şeye bakmayan bozuk bir kontrol rapor ekranında birbirinin aynısıdır; aradaki farkı görmenin tek yolu defect'i bilerek üretmektir.

Verimi bozarsam ne olur?

Hiçbir şey — bozman zaten beklenen davranıştır. Her kullanıcı kendi izole veri alanını açar ve kimse başkasının verisini göremez veya bozamaz. Tek bir istekle seed veriye dönersin, bu yüzden test paketinin hazırlık adımına sıfırlamayı koyabilirsin. Sıfırlamanın satır kimliklerini kaydırdığını ve açık oturumları iptal ettiğini unutma.