Veritabanı Test Eğitimi

⚡ Akıllı Özet

Veritabanı testleri, her modern uygulamanın arkasındaki şemayı, tabloları, tetikleyicileri ve saklı prosedürleri doğrulayarak veri bütünlüğünü ve tutarlılığını sağlar. Bu makale, yapısal, işlevsel ve işlevsel olmayan veritabanı testlerini, araçları, yaygın hataları ve kanıtlanmış en iyi uygulamaları açıklamaktadır.

  • 🗄️ Temel Prensip: Veritabanı testleri, kullanıcıların asla görmediği ancak her zaman güvendiği, işletme açısından kritik verileri barındıran arka uç sistemini doğrular.
  • 🎯 Kapsama Odaklılığı: Yapısal testler şema, anahtarlar, indeksler, saklı prosedürler ve tetikleyicileri kontrol eder; fonksiyonel testler veri bütünlüğünü ve güvenliğini kontrol eder; fonksiyonel olmayan testler ise yük ve stresi kontrol eder.
  • 📊 Performans İçgörüsü: Yük ve stres testleri riski ölçer ve paydaşların yanıt süresi beklentilerini karşılamak için gereken minimum donanımı ortaya çıkarır.
  • Takım Stratejisi: SQL uyumlu test araçlarını, LoadRunner gibi performans test paketlerini ve JMeterve katmanlı kapsama için DBUnit gibi birim çerçeveleri.
  • ???? En iyi pratik: Her gereksinimi veritabanına karşı doğrulayın. tracUygulanabilir test senaryoları oluşturun ve stres testleri gibi yıkıcı senaryolardan önce verilerinizi yedekleyin.

Veritabanı Testi

Veritabanı testi (bazen arka uç veya veri testi olarak da adlandırılır), her uygulamanın görünmeyen yarısının dürüstlüğünü sağlayan şeydir. Bu eğitim, veritabanı testinin neleri kapsadığını, neden önemli olduğunu, üç temel test kategorisini, yaygın tuzakları ve sağlam test paketlerini sorunlu olanlardan ayıran en iyi uygulamaları ele almaktadır.

Veritabanı Testi Nedir?

Veritabanı Testi Veritabanı testi, test edilen veritabanının şemasını, tablolarını, tetikleyicilerini, saklı prosedürlerini ve diğer nesnelerini doğrulayan bir yazılım test türüdür. Ayrıca veri bütünlüğünü, tutarlılığını ve güvenliğini de doğrular. Veritabanı testi genellikle veritabanını yük veya stres testine tabi tutmak ve yanıt verme hızını ölçmek için karmaşık sorgular yazmayı içerir.

Veritabanı Testine Genel Bakış

Veritabanı Testi Neden Önemlidir?

Veritabanı testleri kritik öneme sahiptir. yazılım testi Çünkü veritabanında saklanan ve veritabanından alınan değerlerin geçerli olduğunu doğrular. Güçlü veritabanı testleri veri kaybını önler, iptal edilen işlemleri kontrol altında tutar ve bilgilere yetkisiz erişimi engeller. Veritabanı herhangi bir iş uygulamasının kalbi olduğundan, test uzmanlarının SQL konusunda yetkin olması gerekir.

Çoğu ekip, uygulamanın en görünür kısmı olduğu için grafik kullanıcı arayüzüne (GUI) odaklanır. GUI'nin altındaki bilgiler de aynı derecede önemlidir ve bunların doğrulanması veritabanı testinin görevidir. Kullanıcının işlem yaptığı bir bankacılık uygulamasını düşünün. Veritabanı testi açısından, aşağıdaki değişmez koşulların geçerli olması gerekir:

  1. Uygulama, her işlemi veritabanına kaydeder ve kullanıcıya doğru şekilde görüntüler.
  2. Operasyon sırasında hiçbir bilgi kaybolmaz.
  3. Yarıda kalmış veya iptal edilmiş işlemlerin hiçbiri kalıcı olarak saklanmaz.
  4. Yetkisiz hiç kimse kullanıcının bilgilerine erişemez.

Veritabanı doğrulama ve veri testinin amacı, bu değişmez unsurların her birini teyit etmektir.

Kullanıcı Arayüzü Testi ile Veri Testi Arasındaki Farklar

Kullanıcı Arayüzü Testi ve Veri Testi

Kullanıcı Arayüzü TestiVeritabanı / Veri Testi
Grafik Kullanıcı Arayüzü (GUI) testi veya ön uç testi olarak da bilinir.Ayrıca arka uç testi veya veri testi olarak da bilinir.
Kullanıcının görebildiği ve etkileşimde bulunduğu öğelerle ilgilidir — formlar, sunumlar, grafikler, menüler ve raporlar (VB, VB.NET, V ile oluşturulmuştur)C++(Delphi ve benzeri ön uç geliştirme araçları).Kullanıcıdan gizlenen unsurlarla ilgili endişeler — dahili süreçler ve DBMS motorları gibi depolama alanları (Oracle, SQL Server, MySQL).
Metin kutularının, açılır menülerin, takvimlerin, düğmelerin, sayfa navigasyonunun, resim görüntülemenin ve genel görünümün doğrulanmasını içerir.Şema, tablolar, sütunlar, anahtarlar ve indeksler, saklı prosedürler, tetikleyiciler ve veritabanı sunucusu yapılandırmasının doğrulanmasını içerir.
Test uzmanının, ilgili iş alanına ilişkin bilgi birikimine ek olarak, geliştirme araçları ve otomasyon çerçevelerine de aşina olması gerekir.Test uzmanının veritabanı sunucuları ve Yapılandırılmış Sorgu Dili (SQL) konusunda güçlü bir bilgi birikimine sahip olması gerekmektedir.

Veritabanı Testi Türleri

Veritabanı Testi Türleri

Veritabanı testleri üç ana kategoriye ayrılır. Her kategori, veritabanı yığınının farklı bir katmanını doğrular.

  1. Yapısal Test
  2. Fonksiyonel Testler
  3. İşlevsel Olmayan Testler

Yapısal Veritabanı Testi

Yapısal Veritabanı Testi Veri deposunda depolama amacıyla kullanılan ancak son kullanıcılar tarafından doğrudan manipüle edilmeyen öğeleri doğrular. Veritabanı sunucularının doğrulanması, yapısal testin bir parçasıdır. Başarılı bir şekilde yürütülmesi güçlü SQL becerileri gerektirir.

Şema Testi Nedir?

Şema Testi Veritabanıyla ilişkili şema biçimlerini doğrular ve eşlemenin doğruluğunu teyit eder.ping Tabloların, görünümlerin ve sütunların haritayla eşleşmesiping Kullanıcı arayüzünün beklediği şekilde. Amaç, şema haritasının doğruluğunu sağlamaktır.ping Ön uç ve arka uç arasında tutarlılık sağlanır. Şema testi de bu şekilde adlandırılır. haritaping test yapmak.

Şema testine ilişkin temel kontrol noktaları:

  1. Veritabanıyla ilişkili her şema biçimini doğrulayın. Eşleme işlemi gerçekleştirin.ping Tablo düzeyindeki formatlar genellikle kullanıcı arayüzü düzeyindeki formatlardan farklılık gösterir.
  2. Eşleştirilmemiş tabloların, görünümlerin veya sütunların varlığını doğrulayın.
  3. Ortamdaki heterojen veritabanlarının genel uygulama haritasıyla tutarlı kaldığını doğrulayın.ping.

Veritabanı şemalarını doğrulamak için kullanışlı araçlar:

  • DBUnit Ant ile entegre edilmiş — haritalama için oldukça uygunping test.
  • SQL Server Bu, test uzmanlarının kod yazmak yerine basit sorgular yazarak şemayı incelemelerine olanak tanır.

Örneğin, geliştirme ekibi bir tabloyu değiştirir veya silerse, test uzmanı bu tabloya referans veren her saklı prosedürün ve görünümün değişiklikle uyumlu olduğunu doğrular. Başka bir örnek: İki veritabanı arasındaki şema farklılıklarını karşılaştırırken, sistem kataloğuna karşı yapılan basit sorgular işi hızlıca halleder.

Veritabanı Tablosu, Sütun Testi

  1. Arka uç veritabanındaki alanların ve sütunların ön uçtaki karşılıklarıyla düzgün bir şekilde eşleştiğini doğrulayın.
  2. Veritabanı alanlarının ve sütunlarının uzunluklarını ve adlandırma kurallarını gereksinimlere göre doğrulayın.
  3. Kullanılmayan veya eşlenmemiş tabloları ve sütunları tespit edin.
  4. Arka uç sütunlarının veri türünün ve alan uzunluğunun ön uç form alanlarıyla uyumlu olduğunu doğrulayın.
  5. Veritabanı alanlarının, iş gereksinimi şartnamesinde belirtilen kullanıcı girdilerini kabul ettiğini doğrulayın.

Anahtarlar ve İndeksler Testi

  1. Gerekli bilgilerin doğruluğunu teyit edin. birincil anahtar hem de yabancı anahtar Gerekli tablolarda kısıtlamalar mevcuttur.
  2. Yabancı anahtar referanslarının geçerli kayıtlara işaret ettiğini doğrulayın.
  3. Birincil anahtarın veri türünün, ilgili tablolardaki karşılık gelen yabancı anahtarların veri türüyle eşleştiğini kontrol edin.
  4. Anahtarlar ve indeksler için adlandırma kurallarının proje standartlarına uygun olduğunu doğrulayın.
  5. İndekslenmiş alanların boyutunu ve uzunluğunu doğrulayın.
  6. Gerekli bilgilerin doğruluğunu teyit edin. kümelenmiş hem de kümelenmemiş indeksler Gereksinimlerde belirtilen tablolarda oluşturulurlar.

Saklı Prosedür Testi

  1. Geliştirme ekibinin, her modüldeki her saklı prosedür için gerekli kodlama kurallarına, istisna işleme ve hata işleme yöntemlerine uyduğunu doğrulayın.
  2. Test sırasında sağlanan giriş verileriyle tüm koşulların ve döngülerin çalıştırıldığından emin olun.
  3. Gerekli tablolardan veri alınırken TRIM işleminin uygulandığından emin olun.
  4. Her bir saklı prosedürü manuel olarak çalıştırın ve sonucun beklentilerle eşleştiğini doğrulayın.
  5. Manuel yürütmenin, test edilen uygulamanın gerektirdiği şekilde temel tablo alanlarını güncellediğini doğrulayın.
  6. Saklı prosedürün yürütülmesinin gerekli tetikleyicileri örtük olarak çağırdığını doğrulayın.
  7. Kullanılmayan saklı prosedürleri tespit edin.
  8. Veritabanı düzeyinde NULL girişleri için davranış doğrulaması yapın.
  9. Test edilen veritabanı boşken, tüm saklı prosedürlerin ve fonksiyonların başarıyla çalıştığını doğrulayın.
  10. Saklı prosedür modüllerinin uçtan uca entegrasyonunu uygulama gereksinimlerine göre doğrulayın.

Saklı prosedürleri test etmek için kullanışlı araçlar şunlardır: LINQ ve SP Testi Yarar.

Tetikleme Testi

  1. Tetikleyici geliştirme sırasında gerekli kodlama kurallarına uyulduğunu doğrulayın.
  2. DML işlemlerinde ve yalnızca bu işlemlerde tetikleyicilerin çalıştığını doğrulayın.
  3. Tetikleyicinin tetiklendikten sonra verileri doğru şekilde güncellediğini doğrulayın.
  4. Test edilen uygulama içindeki gerekli Güncelleme, Ekleme ve Silme tetikleyici işlevlerini doğrulayın.

Veritabanı Sunucusu Doğrulamaları

Veritabanı Sunucusu Doğrulamaları

  1. Veritabanı sunucusu yapılandırmasının iş gereksinimlerine uygunluğunu doğrulayın.
  2. Kullanıcının yalnızca uygulamanın izin verdiği işlemler için yetkilendirildiğinden emin olun.
  3. Veritabanı sunucusunun, gereksinimlerde tanımlanan maksimum eşzamanlı kullanıcı-işlem yükünü kaldırabildiğini doğrulayın.

İşlevsel Veritabanı Testi

İşlevsel Veritabanı Testi Veritabanının işlevsel gereksinimlerini son kullanıcının bakış açısından doğrular. Amacı, son kullanıcı tarafından tetiklenen işlemlerin ve operasyonların veritabanı düzeyinde beklendiği gibi davrandığını teyit etmektir.

Veritabanı doğrulama sırasında kontrol edilmesi gereken temel koşullar:

  • Her alanın zorunlu olup olmadığı veya NULL değerlerini kabul edip etmediği.
  • Her alanın beklenen veriler için yeterli uzunlukta olup olmadığı.
  • Anlam bakımından benzer alanların tablolar arasında aynı adı kullanıp kullanmadığı.
  • Veritabanında hesaplanmış alanlar olup olmadığı ve bu alanların hangi formülleri uyguladığı.

Bu doğrulama her iki yönde de çalışır. Test eden kişi veritabanı düzeyinde bir işlem gerçekleştirir ve bunu kullanıcı arayüzünde doğrular, ardından kullanıcı arayüzünde bir işlem gerçekleştirir ve bunu veritabanı düzeyinde doğrular.

Veri bütünlüğünü ve tutarlılığını kontrol etme

  1. Verilerin mantıksal olarak düzenlenmiş olduğunu doğrulayın.
  2. Saklanan verilerin işletme gereksinimleriyle eşleştiğini doğrulayın.
  3. Test edilen uygulamadaki gereksiz verileri tespit edin.
  4. Kullanıcı arayüzünden güncellenen verilerin veritabanına doğru şekilde kaydedildiğini doğrulayın.
  5. Ekleme işleminden önce veriler üzerinde TRIM işlemlerini doğrulayın.
  6. Her işlemin işletme şartnamesine uygun olduğunu ve beklenen sonucu ürettiğini doğrulayın.
  7. İşlemler tamamlandığında başarılı onayları verin.
  8. Bir işlem başarısız olduğunda doğru geri alma işleminin doğrulandığını doğrulayın.
  9. Farklı veritabanlarını kapsayan işlemlerde doğru geri alma işleminin gerçekleştiğini doğrulayın.
  10. Her işlemin sistem gereksinimlerinde tanımlanan tasarım prosedürlerine uygun olduğunu doğrulayın.

Giriş ve Kullanıcı Güvenliği

  1. Uygulamanın aşağıdaki giriş denemelerini engellediğini doğrulayın: (a) geçersiz kullanıcı adı + geçerli parola, (b) geçerli kullanıcı adı + geçersiz parola ve (c) geçersiz kullanıcı adı + geçersiz parola.
  2. Her kullanıcının yalnızca kendi rolü tarafından tanımlanan işlemleri gerçekleştirebildiğinden emin olun.
  3. Hassas verilerin yetkisiz erişime karşı korunduğundan emin olun.
  4. Farklı yetki kümelerine sahip ayrı kullanıcı rollerinin mevcut olduğunu doğrulayın.
  5. Her kullanıcının iş gereksinimlerinde belirtilen erişim düzeyine sahip olduğunu doğrulayın.
  6. Hassas verilerin (şifreler, kredi kartı numaraları, kişisel kimlik bilgileri) depolanırken şifrelendiğinden ve asla düz metin olarak saklanmadığından emin olun. Tüm hesaplar karmaşık, tahmin edilmesi zor şifreler kullanmalıdır.

İşlevsel Olmayan Testler

İşlevsel olmayan testler veritabanı bağlamında şunları kapsar yük testi, stres testi, güvenlik testi, kullanılabilirlik testi, ve uyumluluk testiYük testi ve stres testi - her ikisi de performans testi biçimi - iki özel amaca hizmet eder:

  • Risk nicelleştirme: Riski nicelleştirmek, paydaşların tanımlanmış yük seviyeleri altında sistem yanıt süresini belirlemelerine yardımcı olur. Bu, herhangi bir risk değerlendirme sisteminin temel amacıdır. kalite güvencesi Çaba gerektirir. Yük testi riski doğrudan azaltmaz; aksine, riski ortaya çıkarır ve iyileştirme için ivme yaratır.
  • Minimum donanım gereksinimleri: Performans testleri, belirtilen performans beklentilerini karşılamak için gereken minimum altyapıyı belirleyerek ekiplerin donanıma gereğinden fazla yatırım yapmaktan ve sahip olma maliyetini artırmaktan kaçınmasını sağlar.

Yük Testi

Her yük testinin amacı açıkça anlaşılmalı ve belgelenmelidir. Aşağıdaki yapılandırmalar zorunludur: yük testi:

  1. En sık gerçekleştirilen kullanıcı işlemlerini dahil edin, çünkü bu işlemlerin performansı diğer tüm işlemleri etkiler.
  2. Okuma performansını yazma performansından ayırt etmek için en az bir düzenleme dışı işlem ekleyin.
  3. İşletmenin temel amacını yönlendiren işlemleri dahil edin; buradaki başarısızlıklar en büyük etkiye sahiptir.
  4. Yazma performansını okuma performansından ayırt etmek için en az bir düzenleme işlemi ekleyin.
  5. Tahmini maksimum sanal kullanıcı yükü altında yanıt süresini ölçün.
  6. Kayıt alma gecikmesini büyük ölçekte ölçün.

Yaygın olarak kullanılan yük testi araçları şunlardır: LoadRunner ProfesyonelWinRunner ve Apache JMeter.

Veritabanı Stres Testi Nedir?

Veritabanı stres testi Veritabanına ağır yük uygulayarak arıza noktasına ulaşmasını sağlar. Bu, sistemin arıza noktasını belirler. Stres testi, paylaşılan altyapıda kaynak tükenmesini önlemek için dikkatli planlama gerektirir. Stres testi ayrıca şu şekilde de adlandırılır: işkence testi or yorulma testiDaha geniş kapsamlı incelemeye bakın. stres testi eğitimi Arka plan bilgisi için. Yaygın kullanılan araçlar şunlardır: LoadRunner Profesyonel hem de JMeter.

En İyi Veritabanı Test Araçları (2026)

Doğru araç, veritabanı yığınının hangi katmanını test ettiğinize bağlıdır. Aşağıdaki tabloda yaygın kategoriler en bilinen seçeneklerle eşleştirilmiştir.

KategorileraraçEn
Birim testiDBUnit, tSQLtAnt veya derleme işlem hatlarına entegre edilmiş tekrarlanabilir şema ve saklı prosedür testleri.
Yük ve gerilimLoadRunner Profesyonel, Apache JMeterÜretim ortamındaki iş yüklerine karşı yüksek hacimli sanal kullanıcı simülasyonu.
Veri karşılaştırmaRedgate SQL Veri Karşılaştırma, Apache DBUtilsVeri taşıma veya ETL işlemlerinden sonra iki veritabanının aynı verileri içerdiğini doğrulamak.
Sahte veri üretimiMockaroo, DatatectReferans bütünlüğüne saygı gösteren gerçekçi test veri kümeleri üretmek.
şema yönetimiLiquibase, FlywaySürüm kontrollü geçişler ve ortamlar arası geri alma testleri.
SQL düzenleyici / geçici doğrulamaDBeaver, Azure Veri Stüdyosu, SSMSVeritabanı testleri sırasında etkileşimli sorgu yazımı.

Hem performans hem de regresyon riskini kapsayacak şekilde, yük kategorisinden en az bir aracı birim kategorisinden bir araçla eşleştirin.

Veritabanı testi sırasında en sık karşılaşılan sorunlar

KonuÖnerilen Çözüm
Veritabanı işlemlerinin durumunu belirlemek için önemli miktarda ek işlem gereklidir.İşlemin yürütülmesi sırasında herhangi bir işlem durumu belirsizliği ortaya çıkmaması için zamanlamayı ve bağımlılıkları önceden planlayın.
Eski test verileri temizlendikten sonra yeni test verileri tasarlanmalıdır.Her döngüden önce belgelenmiş bir test verisi oluşturma stratejisi ve yenileme prosedürü uygulayın.
SQL sorgularının gerekli test durumlarıyla eşleşmesi için SQL doğrulayıcılarını dönüştürecek bir SQL oluşturucuya ihtiyaç vardır.SQL bakımını genel sürecin birinci sınıf bir parçası olarak ele alın. test stratejisiBu, geçici bir iş olarak değil, rastgele bir çalışma olarak yapılmalıdır.
Yukarıdaki ön koşullar kurulumu maliyetli ve zaman alıcı hale getirebilir.Kapsamı kademeli olarak planlayarak test derinliği ile zaman çizelgesi arasında denge kurun: yüksek riskli alanlar için kapsamlı otomasyon, diğer yerlerde hafif kontroller.

Veritabanı Testleri Hakkındaki Mitler ve Yanlış Anlamalar

Veritabanı testine dair efsaneler ve gerçekler

EfsaneGerçeklik
Veritabanı testleri derin uzmanlık gerektirir ve çok zahmetlidir, bu nedenle yapılması haklı gösterilemez.Etkin veritabanı testleri, uzun vadeli işlevsel istikrar sağlar. Bu çaba, olay müdahale sürelerinin azalmasıyla birçok kez karşılığını verir.
Veritabanı testleri ek bir iş darboğazı yaratır.Gizli kusurları erken aşamada ortaya çıkarır ve genel uygulama kalitesini artırarak, darboğazlar yaratmak yerine onları ortadan kaldırır.
Veritabanı testleri geliştirme sürecini yavaşlatır.Veritabanı testine yapılan yatırım, şema ve bütünlük hatalarının yayılmadan önce yakalanmasını sağlayarak sonraki geliştirme süreçlerini hızlandırır.
Veritabanı testleri aşırı pahalıdır.Veritabanı (ve SQLTest etme, uygulama istikrarına yönelik uzun vadeli bir yatırım ve maliyetli üretim hatalarına karşı bir önlem niteliğindedir.

En İyi Uygulamalar

  • Meta veriler ve işlevsel veriler de dahil olmak üzere tüm verileri, gereksinim şartnamesine ve onun haritasına göre doğrulayın.ping kuralları.
  • Revher bir seti görüntüle test verisi Ona güvenmeden önce, geliştirme ekibi tarafından veya onlarla birlikte üretilmiş olanı inceleyin.
  • Çıktı verilerini hem manuel hem de otomatik yöntemler kullanarak doğrulayın.
  • Test verisi koşullarını oluştururken neden-sonuç grafiği, eşdeğerlik bölümleme ve sınır değer analizi yöntemlerini uygulayın.
  • Gerekli veritabanı tablolarında referans bütünlüğü kurallarını doğrulayın.
  • Veritabanı tutarlılığını kontrol ederken bilinçli olarak varsayılan değerler kullanın ve gerekli her oturum açma olayı için günlük kayıtlarının tutulduğundan emin olun.
  • Planlanmış işlerin zamanında yürütüldüğünü ve beklenen çıktıları ürettiğini doğrulayın.
  • Veritabanını tanımlanmış bir programa göre yedekleyin ve geri yükleme yolunu en az üç ayda bir doğrulayın.

Ayrıca bakınız — Veritabanı Testi Mülakat Soruları ve Cevapları.

SSS

Veritabanı testi, çalışan bir veritabanının şemasını, işlemlerini ve bütünlüğünü doğrular. ETL testi Veri ambarı işlem hattında kaynak ve hedef sistemler arasındaki veri hareketini doğrular, dönüşümün doğruluğunu, eksiksizliğini ve sayımlarını kontrol eder.

Evet. Modern yapay zeka asistanları, saklı prosedürler için birim testleri, sütunlar için sınır testleri ve referans bütünlüğü kontrolleri önermek üzere DDL ve örnek verileri okur. İş kurallarını uygulamak ve risk ağırlıklı kapsamayı önceliklendirmek için insan incelemesi hala gereklidir.

Yalnızca maskeleme veya anonimleştirme işleminden sonra. Ham üretim verileri, ekibi GDPR, HIPAA veya PCI-DSS kapsamında gizlilik ve düzenleyici risklere maruz bırakır. Tablolar arasında referans bütünlüğünün korunması için deterministik maskeleme kullanın.

Aynı kategoriler, ayarlanmış kontrollerle de geçerlidir: şema doğrulaması belge veya sütun ailesi yapısına odaklanırken, bütünlük testi nihai tutarlılığı kapsar ve stres testi parça dengelemesini vurgular. MongoDB, Cassandra, ve DynamoDB Bu uyarlanmış süitlerden herkes faydalanır.

Hayır. Yapay zeka sorgu yazımını, test üretimini ve anormallik tespitini hızlandırıyor, ancak risk önceliklendirmesi, düzenleyici yorumlama ve keşifsel testler gibi, alan uzmanlığının yönlendirdiği ve yapay zekanın yerini almaktan ziyade desteklediği, yargıya dayalı işler hala insan test uzmanlarının sorumluluğunda.

Bu yazıyı şu şekilde özetleyin: