QA Mühəndisləri üçün SQL və Verilənlər Bazası Testləri: Əsas Sorğular və Strategiyalar
İstifadəçi interfeysində (UI) məlumatın düzgün görünməsi onun bazada təhlükəsiz və düzgün saxlanıldığına zəmanət vermir. Backend məlumatlarının bütövlüyünü, tranzaksiyaların düzgünlüyünü və inteqrasiyaları yoxlamaq üçün hər bir QA mühəndisi güclü SQL biliklərinə malik olmalıdır.
1. QA Mühəndisinin Bilməli Olduğu Əsas SQL Sorğuları
Real layihələrdə verilənlər bazası testi zamanı ən çox istifadə olunan SQL şablonları:
-- 1. Sifarişlərin və müştərilərin bütövlüyünü yoxlayan JOIN sorğusu SELECT u.id, u.email, o.order_id, o.total_amount, o.status FROM users u INNER JOIN orders o ON u.id = o.user_id WHERE o.status = 'COMPLETED' AND o.total_amount > 100; -- 2. Təkrarlanan (duplicate) qeydləri aşkar edən sorğu SELECT email, COUNT(*) FROM users GROUP BY email HAVING COUNT(*) > 1; -- 3. Yetim qalan (Orphaned) əlaqəsiz qeydləri tapmaq (Referential Integrity Check) SELECT o.order_id, o.user_id FROM orders o LEFT JOIN users u ON o.user_id = u.id WHERE u.id IS NULL; -- 4. Null sahələrin biznes məntiqinə uyğunluğunu yoxlamaq SELECT id, username, created_at FROM users WHERE email IS NULL OR phone_number IS NULL;
2. Verilənlər Bazasında ACID Prinsipləri
Atomicity (Bölünməzlik)
Bank köçürməsi zamanı bir hesabdan pul çıxıb digərinə köçmürsə, əməliyyat tam ləğv olunur (Rollback).
Consistency (Uyğunluq)
Tranzaksiya bitdikdən sonra bütün məlumat bazası qaydaları və xarici açarlar (Foreign Keys) qorunur.
Isolation (Təcridlik)
Eyni anda icra olunan minlərlə tranzaksiya bir-birinin natamam məlumatlarını oxumur.
Durability (Davamlılıq)
Uğurla tamamlanan tranzaksiyanın nəticəsi server çökdükdə belə diskdə etibarlı saxlanılır.
Tez-tez Verilən Suallar (FAQ)
QA mühəndisi bazada DELETE və ya DROP əmrlərini icra edə bilərmi?
Production mühitində QA-ə yalnız oxuma (SELECT) icazələri verilir. Test mühitində isə test datalarını hazırlamaq və təmizləmək üçün idarə olunan skriptlərdən istifadə olunur.