Middle
Verilənlər bazalarını sınaqdan keçirmək üçün hansı test halları hazırlana bilər?
sobes.tech Süni İntellekt
AI-dan cavab
Verilənlərin strukturu, o cümlədən sxemlər, cədvəllər, indekslər, məhdudiyyətlər (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, NOT NULL) test edilir.
Məlumatların testi:
- Əməliyyatlardan sonra məlumatların düzgünlüyünün yoxlanması: INSERT, UPDATE, DELETE.
- Məlumatların biznes məntiqinə uyğunluğu yoxlanılır.
- Eyni vaxtda əməliyyatlar zamanı məlumatların bütövlüyü test edilir (müqaviləli giriş).
- Məlumatların idxal/ixracı test edilir.
- Məlumatların köçürülməsi test edilir.
Yadda saxlanılan prosedurlar, funksiyalar və tetikleyicilər test edilir:
- Giriş parametrlərinin və çıxış nəticələrinin test edilməsi.
- Xəta və istisnaların işlənməsinin test edilməsi.
- Cədvəllərdəki məlumatlara təsirinin test edilməsi.
- Performansın test edilməsi.
Performans və yükləmə testi:
- Sorğuların icra vaxtı test edilir (SELECT).
- Məlumatların dəyişdirilməsi əməliyyatlarının sürəti test edilir (INSERT, UPDATE, DELETE).
- Yüksək yüklü bazanın davranışı test edilir.
- Ölçeklenebilirlik test edilir.
Təhlükəsizlik testi:
- İstifadəçi hüquqları test edilir.
- SQL inyeksiya zəiflikləri test edilir.
- Audit və qeydiyyat test edilir.
Verilənlər bazasının sxeması və ya kod dəyişikliklərindən sonra regresiya testi.
Yedəkləmə və məlumatların bərpası testi.
Constraints yoxlaması üçün nümunə hallar:
| ID | Halın adı | Addımlar | Gözlənilən nəticə |
|---|---|---|---|
| 1 | PRIMARY KEY - dublikat dəyər yoxlaması | Mövcud olan ID ilə yeni qeyd əlavə etməyə çalışmaq. | Sistem unikal PRIMARY KEY pozuntusu barədə xəta verməlidir. |
| 2 | FOREIGN KEY - mövcud olmayan qeydə istinad | Ana cədvəldə olmayan ID-ə istinad edən əlaqəli cədvələ qeyd əlavə etməyə çalışmaq. | Sistem xarici açar pozuntusu barədə xəta verməlidir. |
| 3 | NOT NULL - NULL dəyəri daxil etmək | NOT NULL kimi işarələnmiş sahəyə NULL daxil etməyə çalışmaq. | Sistem NOT NULL məhdudiyyətinin pozulması barədə xəta verməlidir. |
| 4 | CHECK - düzgün olmayan dəyər | CHECK məhdudiyyətini pozan dəyər ilə qeyd əlavə etməyə / yeniləməyə çalışmaq (məsələn, yaş sahəsində mənfi dəyər). | Sistem CHECK məhdudiyyətinin pozulması barədə xəta verməlidir. |
SQL-injection zəifliklərinin test nümunəsi:
-- İstifadəçi giriş sahəsində SQL-injection mümkünlüyünü yoxlamaq
SELECT * FROM users WHERE username = 'admin' AND password = '' OR '1'='1';
Performans test nümunəsi:
-- Çətin SELECT sorğusunun icra vaxtını ölçmək
EXPLAIN ANALYZE SELECT o.order_id, c.customer_name, p.product_name
FROM orders o
JOIN customers c ON o.customer_id = c.customer_id
JOIN order_items oi ON o.order_id = oi.order_id
JOIN products p ON oi.product_id = p.product_id
WHERE c.country = 'USA' AND o.order_date > '2023-01-01';