Sobes.tech
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';