Veritabanı Test Eğitimi
Veritabanı Testi Nedir?
Veritabanı Testi test edilen Veritabanının şemasını, tablolarını, tetikleyicilerini vb. kontrol eden bir yazılım testi türüdür. Ayrıca veri bütünlüğünü ve tutarlılığını da kontrol eder. Veritabanını yüklemek/stres testi yapmak ve yanıt vermesini kontrol etmek için karmaşık sorgular oluşturmayı içerebilir.
Veritabanı Testi Neden Önemlidir?
Veritabanı Testi önemlidir in yazılım testi çünkü veritabanına alınan ve saklanan veri değerlerinin ve bilgilerin geçerli olup olmadığını sağlar. Veritabanı testi, veri kaybını önlemeye yardımcı olur, iptal edilen işlem verilerini kaydeder ve bilgilere yetkisiz erişimi engeller. Veritabanı herhangi bir yazılım uygulaması için önemlidir, bu nedenle test uzmanlarının veritabanı testi için iyi SQL bilgisine sahip olmaları gerekir.
Grafik Kullanıcı Arayüzü uygulamanın en görünür kısmı olduğundan, GUI'ye genellikle test ve geliştirme ekibi üyeleri tarafından en fazla vurgu yapılır. Ancak önemli olan uygulamanın kalbi olan bilginin yani DATABASE'in doğrulanmasıdır.
Bir kullanıcının işlem yaptığı bir Bankacılık uygulamasını ele alalım. Şimdi Veritabanı Testi veya DB Testi bakış açısından, aşağıdaki şeyler önemlidir:
- Uygulama, işlem bilgilerini uygulama veritabanında saklar ve bunları kullanıcıya doğru şekilde görüntüler.
- Bu süreçte hiçbir bilgi kaybolmaz.
- Kısmen gerçekleştirilen veya yarıda kesilen hiçbir işlem bilgisi uygulama tarafından kaydedilmemektedir.
- Yetkisiz hiçbir kişinin kullanıcının bilgilerine erişmesine izin verilmez.
Yukarıdaki hedeflerin tümünü sağlamak için veri doğrulama veya veri testini kullanmamız gerekir.
Kullanıcı Arayüzü Testi ile Veri Testi Arasındaki Farklar
Kullanıcı Arayüzü testi | Veritabanı veya Veri testi |
---|---|
Bu test türü aynı zamanda Grafik Kullanıcı Arayüzü testi veya Ön Uç Testi olarak da bilinir. | Bu test türü aynı zamanda Arka Uç Testi veya veri testi olarak da bilinir. |
Bu tür testler temel olarak Formlar, Sunumlar, Grafikler, Menüler ve Raporlar vb. (VB, VB.net, V aracılığıyla oluşturulan) görüntüleme ve etkileşim için kullanıcıya açık olan tüm test edilebilir öğelerle ilgilidir.C++, Delphi – Ön Uç Araçlar) | Bu tür testler esas olarak, görüntüleme için genellikle kullanıcıdan gizlenen tüm test edilebilir öğelerle ilgilidir. Bunlar dahili süreçleri ve depolamayı içerir AssemblyDBMS gibi Oracle, SQL Server, MYSQL vb. |
Bu tür testler, doğrulamayı içerir.
|
Bu tür testler aşağıdakilerin doğrulanmasını içerir:
|
Test uzmanının, iş gereksinimlerinin yanı sıra geliştirme araçlarının kullanımı ve otomasyon çerçeveleri ve araçlarının kullanımı hakkında kapsamlı bilgi sahibi olması gerekir. | Arka uç testini gerçekleştirebilmek için test uzmanının veritabanı sunucusu ve Yapılandırılmış Sorgu Dili kavramları konusunda güçlü bir altyapıya sahip olması gerekir. |
Veritabanı Testi Türleri
3 tür Veritabanı Testi vardır:
Bu Veritabanı Testi eğitiminde her türe ve alt türlerine tek tek bakacağız.
Yapısal Veritabanı Testi
Yapısal Veritabanı Testi veri havuzundaki esas olarak veri depolama için kullanılan ve son kullanıcılar tarafından doğrudan manipüle edilmesine izin verilmeyen tüm öğeleri doğrulayan bir veritabanı test tekniğidir. Veritabanı sunucularının doğrulanması da yapısal veritabanı testlerinde önemli bir husustur. Bu testin başarıyla tamamlanması için SQL sorgularında ustalık gerekir.
Şema Testi Nedir?
Şema Testi veritabanı testinde, veritabanıyla ilişkili çeşitli şema formatlarını doğrular ve tabloların/görünümlerin/sütunların eşleme formatlarının, kullanıcı arayüzünün eşleme formatlarıyla uyumlu olup olmadığını doğrular. Şema testinin temel amacı, ön uç ve arka uç arasındaki şema eşlemesinin benzer olmasını sağlamaktır. Bu nedenle haritalama testi olarak da anılır.
Şema testi için en önemli kontrol noktalarını tartışalım.
- Veritabanlarıyla ilişkili çeşitli şema formatlarının doğrulanması. Çoğu zaman tablonun eşleme formatı, uygulamanın kullanıcı arayüzü seviyesinde mevcut olan eşleme formatıyla uyumlu olmayabilir.
- Eşlenmemiş tablolar/görünümler/sütunlar durumunda doğrulamaya ihtiyaç vardır.
- Ayrıca, bir ortamda bulunan heterojen veritabanlarının genel uygulama eşlemesiyle tutarlı olup olmadığının doğrulanması da gerekmektedir.
Ayrıca veritabanı şemalarını doğrulamak için bazı ilginç Veritabanı Test araçlarına da göz atalım.
- Ant ile entegre çalışan DBUnit, haritalama testleri için oldukça uygundur.
- SQL Server, test uzmanlarının Veritabanı şemasını kod aracılığıyla değil, basit sorgular yazarak kontrol edebilmelerine ve sorgulayabilmelerine olanak tanır.
Örneğin, geliştiriciler bir tablo yapısını değiştirmek veya silmek isterse, test uzmanı o tabloyu kullanan tüm Saklı Prosedürlerin ve Görünümlerin söz konusu değişiklikle uyumlu olduğundan emin olmak isteyecektir. Başka bir örnek ise, test uzmanlarının 2 veritabanı arasındaki şema değişikliklerini kontrol etmek istemeleri durumunda bunu basit sorgular kullanarak yapabilmeleri olabilir.
Veritabanı Tablosu, Sütun Testi
Veritabanı ve sütun testi için çeşitli kontrollere bakalım.
- Arka uçtaki veritabanı alanlarının ve sütunlarının eşlemesi, ön uçtaki eşlemelerle uyumlu mu?
- Gereksinimlere göre belirlenen veritabanı alanları ve sütunlarının uzunluğunun ve adlandırma kuralının doğrulanması.
- Kullanılmayan/eşlenmemiş veritabanı tablolarının/sütunlarının varlığının doğrulanması.
- Uyumluluğun doğrulanması
- veri tipi
- alan uzunlukları
Arka uç veritabanı sütunlarının, uygulamanın ön ucunda bulunanlarla aynı olması.
- Veritabanı alanlarının, kullanıcının iş gereksinimi spesifikasyon belgelerinin gerektirdiği şekilde istenen kullanıcı girişlerini sağlamasına izin verip vermediği.
Anahtarlar ve dizinler testi
Anahtarlar ve dizinler için önemli kontroller –
- Gerekli olup olmadığını kontrol edin
- Birincil anahtar
- Yabancı anahtar
Gerekli tablolarda kısıtlamalar oluşturuldu.
- Yabancı anahtarlara ilişkin referansların geçerli olup olmadığını kontrol edin.
- İki tabloda birincil anahtarın veri türünün ve karşılık gelen yabancı anahtarların aynı olup olmadığını kontrol edin.
- Tüm anahtarlar ve dizinler için gerekli adlandırma kurallarına uyulup uyulmadığını kontrol edin.
- Gerekli alanların ve dizinlerin boyutunu ve uzunluğunu kontrol edin.
- Gerekli olup olmadığı
- Clustered indeksleri
- Olmayan Clustered indeksleri
İş gereksinimlerinin belirlediği gerekli tablolar üzerinde oluşturulmuştur.
Saklı Prosedür Testi
Saklı prosedürleri kontrol etmek için önemli testler şunlardır:
- Geliştirme ekibinin gerekli olan A) kodlama standardı kurallarını ve B) istisna ve hata yönetimini benimseyip benimsemediği. Test edilen uygulamanın tüm modüllerine ilişkin tüm saklı prosedürler için.
- Geliştirme ekibi, gerekli girdi verilerini test edilen uygulamaya uygulayarak tüm koşulları/döngüleri kapsadı mı?
- Geliştirme ekibinin, Veritabanındaki gerekli tablolardan veri alındığında TRIM işlemini düzgün bir şekilde uygulayıp uygulamadığı?
- Saklı Prosedürün manuel olarak yürütülmesi son kullanıcıya gerekli sonucu sağlıyor mu?
- Saklı Prosedürün manuel olarak yürütülmesi, tablo alanlarının test edilen uygulamanın gerektirdiği şekilde güncellenmesini sağlıyor mu?
- Saklı Prosedürlerin yürütülmesi, gerekli tetikleyicilerin örtülü olarak çağrılmasına izin veriyor mu?
- Kullanılmayan saklı prosedürlerin varlığının doğrulanması.
- Veritabanı düzeyinde yapılabilecek Allow Null koşulu için doğrulama.
- Test edilen Veritabanı boş olduğunda tüm Saklı Prosedürlerin ve İşlevlerin başarıyla yürütüldüğü gerçeğinin doğrulanması.
- Test edilen uygulamanın gereksinimlerine göre saklı prosedür modüllerinin genel entegrasyonunun doğrulanması.
Saklı prosedürleri test etmek için yararlı Veritabanı Test araçlarından bazıları LINQ, SP Test aracı vb.'dir.
Tetikleme Testi
- Tetikleyicilerin kodlama aşamasında gerekli kodlama kurallarına uyulup uyulmadığı?
- İlgili DML işlemleri için yürütülen tetikleyicilerin gerekli koşulları yerine getirip getirmediğini kontrol edin.
- Tetikleyicinin, yürütüldükten sonra verileri doğru şekilde güncelleyip güncellemediği?
- Test edilen uygulama alanında gerekli Güncelleştirme/Ekle/Silme tetikleyicilerinin işlevselliğinin doğrulanması.
Veritabanı Sunucusu Doğrulamaları
- İş gereksinimlerine göre belirlenen veritabanı sunucusu yapılandırmalarını kontrol edin.
- Yalnızca uygulamanın gerektirdiği eylem düzeylerini gerçekleştirmek için gerekli kullanıcının yetkisini kontrol edin.
- Veritabanı sunucusunun, iş gereksinimi belirtimlerinde belirtildiği şekilde, izin verilen maksimum kullanıcı işlemi sayısı ihtiyaçlarını karşılayabildiğini kontrol edin.
İşlevsel Veritabanı Testi
İşlevsel Veritabanı Testi bir veritabanının işlevsel gereksinimlerini son kullanıcının bakış açısından doğrulamak için kullanılan bir tür veritabanı testidir. Fonksiyonel veritabanı testinin temel amacı, son kullanıcıların veritabanı ile ilgili yaptığı işlem ve işlemlerin beklendiği gibi çalışıp çalışmadığını test etmektir.
Veritabanı doğrulamaları için dikkat edilmesi gereken temel koşullar şunlardır.
- Bu alanda NULL değerlere izin verilirken alanın zorunlu olup olmadığı?
- Her alanın uzunluğu yeterli büyüklükte mi?
- Tüm benzer alanların tablolarda aynı adlara sahip olup olmadığı?
- Veritabanında hesaplanan alanlar var mı?
Bu özel süreç, alan eşlemelerinin son kullanıcı bakış açısından doğrulanmasıdır. Bu özel senaryoda, test cihazı veri tabanı düzeyinde bir işlem gerçekleştirecek ve ardından uygun alan doğrulamalarının gerçekleştirilip gerçekleştirilmediğini gözlemlemek ve doğrulamak için ilgili kullanıcı arayüzü öğesine gidecektir.
Bunun tersi durumda, ilk işlemin test cihazı tarafından kullanıcı arayüzünde gerçekleştirilmesi ve ardından aynı işlemin arka uçtan doğrulanması da yapılmalıdır.
Veri bütünlüğünü ve tutarlılığını kontrol etme
Aşağıdaki kontroller önemlidir
- Veriler mantıksal olarak iyi organize edilmiş mi?
- Tablolarda saklanan veriler doğru ve iş gereksinimlerine uygun mu?
- Test edilen uygulamada gereksiz veriler var mı?
- Kullanıcı arayüzünden güncellenen verilere göre veriler ihtiyaca uygun olarak saklandı mı?
- Test edilen Veritabanına veri eklenmeden önce veriler üzerinde TRIM işlemleri gerçekleştirilip gerçekleştirilmediği?
- İşlemler iş gereği spesifikasyonlarına göre gerçekleştirilmiş mi ve sonuçlar doğru mu?
- İşlem başarılı bir şekilde yürütüldüyse veriler uygun şekilde işlendi mi?
- İşlem son kullanıcı tarafından başarılı bir şekilde yürütülmediğinde veriler başarılı bir şekilde geri alınıp alınmadı?
- İşlem başarıyla gerçekleştirilememişse ve söz konusu işlemde birden fazla heterojen veritabanı yer almışsa veriler geri alınmış mıdır?
- Tüm işlemler sistemin iş gereksinimleri tarafından belirlenen gerekli tasarım prosedürleri kullanılarak yürütüldü mü?
Giriş ve Kullanıcı Güvenliği
Oturum açma ve kullanıcı güvenliği kimlik bilgilerinin doğrulanmasında aşağıdaki hususların dikkate alınması gerekmektedir.
- Uygulamanın, kullanıcının uygulamada daha fazla ilerlemesini engelleyip engellemediği
- geçersiz kullanıcı adı ancak geçerli şifre
- geçerli kullanıcı adı ancak geçersiz şifre.
- geçersiz kullanıcı adı ve geçersiz şifre.
- Kullanıcının yalnızca iş gereksinimleri tarafından belirtilen belirli işlemleri gerçekleştirmesine izin veriliyor mu?
- Veriler yetkisiz erişime karşı korunuyor mu?
- Farklı izinlerle oluşturulmuş farklı kullanıcı rolleri var mı?
- Tüm kullanıcıların, iş spesifikasyonlarının gerektirdiği şekilde, belirtilen Veritabanı üzerinde gerekli erişim düzeylerine sahip olup olmadığı?
- Şifreler, kredi kartı numaraları gibi hassas verilerin şifrelendiğinden ve Veritabanında düz metin olarak saklanmadığından emin olun. Tüm hesapların karmaşık ve kolayca tahmin edilemeyen şifrelere sahip olduğundan emin olmak iyi bir uygulamadır.
İşlevsel olmayan testler
İşlevsel olmayan testler Veritabanı testi bağlamında iş gereksinimlerinin gerektirdiği şekilde çeşitli kategorilere ayrılabilir. Bunlar yük testi, Stres Testi, Güvenlik Testi, Kullanılabilirlik testi, ve Uyumluluk Testi, ve benzeri. Performans Testi kapsamı altında gruplandırılabilen yük testi ve stres testi, işlevsel olmayan testlerin rolü söz konusu olduğunda iki özel amaca hizmet eder.
Risk ölçümü– Riskin ölçülmesi, paydaşların gerekli yük seviyeleri altında çeşitli sistem yanıt süresi gereksinimlerini belirlemelerine yardımcı olur. Bu, herhangi bir şeyin asıl amacıdır. kalite güvencesi görev. Yük testinin riski doğrudan azaltmadığını, ancak risk tanımlama ve risk ölçümü süreçleri yoluyla düzeltici fırsatlar sunduğunu ve riski azaltacak iyileştirme için bir ivme sunduğunu unutmamamız gerekir.
Minimum sistem ekipmanı gereksinimi– Sistemin paydaşların resmi olarak belirtilen performans beklentilerini karşılamasına izin verecek minimum sistem yapılandırması. Böylece, gereksiz donanım, yazılım ve ilişkili sahip olma maliyeti en aza indirilebilir. Bu özel gereksinim, genel iş optimizasyon gereksinimi olarak kategorize edilebilir.
Yük Testi
Herhangi bir yük testinin amacı açıkça anlaşılmalı ve belgelenmelidir. Aşağıdaki yapılandırma türleri bir zorunluluktur: yük testi.
- En sık kullanılan kullanıcı işlemleri, verimli olmadıkları takdirde diğer tüm işlemlerin performansını etkileme potansiyeline sahiptir.
- Son test paketine en az bir düzenleme yapmayan kullanıcı işlemi eklenmeli, böylece bu tür işlemlerin performansı diğer daha karmaşık işlemlerden farklılaştırılabilir.
- Sistemin temel hedeflerini kolaylaştıran daha önemli işlemler dahil edilmelidir, çünkü bu işlemlerin yükü altında başarısızlık tanım gereği en büyük etkiye sahiptir.
- En az bir düzenlenebilir işlem dahil edilmelidir, böylece performans Bu tür işlemlerin diğer işlemlerden ayrıştırılması mümkündür.
- Tüm olası gereksinimler için çok sayıda sanal kullanıcı altında optimum yanıt süresi.
- Çeşitli kayıtların alınması için etkili zamanlar.
Önemli yük testi araçları şunlardır: LoadRunner Profesyonel, koşucuyu kazan ve JMeter.
Veritabanı Stres Testi Nedir?
Veritabanı Stres Testi veritabanı sistemini ağır yük altında bir noktada başarısızlığa uğratacak şekilde test etmek için kullanılan bir test yöntemidir. Bu, veritabanı sisteminin arıza noktasının belirlenmesine yardımcı olur. Kaynakların aşırı kullanımını önlemek için doğru planlama ve çaba gerektirir. Veri stres testi işkence testi veya yorulma testi olarak da bilinir.
Önemli stres testi araçları şunlardır: LoadRunner Profesyonel ve JMeter.
Veritabanı testi sırasında en sık karşılaşılan sorunlar
A significant amount of overhead could be involved to determine the state of the database transactions
Çözüm: Genel süreç planlaması ve zamanlaması, zaman ve maliyete dayalı sorunların ortaya çıkmayacağı şekilde organize edilmelidir.
New test data have to be designed after cleaning up of the old test data.
Çözüm: Test verilerinin oluşturulmasına yönelik bir ön plan ve metodoloji mevcut olmalıdır.
An SQL generator is required to transform SQL validators in order to ensure the SQL queries are apt for handling the required database test cases.
Çözüm: SQL sorgularının bakımı ve sürekli güncellenmesi, genel test sürecinin bir parçası olması gereken genel test sürecinin önemli bir parçasıdır. test stratejisi.
The above mentioned prerequisite ensure that the set-up of the database testing procedure could be costly as well as time consuming.
Çözüm: Kalite ve genel proje programı süresi arasında iyi bir denge olmalıdır.
Veritabanı Testiyle İlgili Mitler veya Yanılgılar
Database Testing requires plenty of expertise and it is a very tedious job
Gerçeklik: Yazılım Testinde etkili ve verimli Veritabanı Testi, genel uygulamaya uzun vadeli işlevsel istikrar sağlar, bu nedenle bunun arkasında çok çalışmak gerekir.
Database testing adds extra work bottleneck
Gerçeklik: Aksine, veritabanı testi, gizli sorunları keşfederek ve böylece proaktif olarak genel uygulamanın iyileştirilmesine yardımcı olarak genel çalışmaya daha fazla değer katar.
Database testing slows down the overall development process
Gerçeklik: Önemli miktarda veritabanı testi, veritabanı uygulamasının kalitesinin genel olarak iyileştirilmesine yardımcı olur.
Database testing could be excessively costly
Gerçeklik: Veritabanı testine yönelik herhangi bir harcama, uygulamanın uzun vadeli istikrarına ve sağlamlığına yol açan uzun vadeli bir yatırımdır. Dolayısıyla Veri Tabanı Testine yapılan harcamalar veya SQL Test gereklidir.
En İyi Uygulamalar
- Meta veriler ve işlevsel veriler de dahil olmak üzere tüm verilerin, gereksinim spesifikasyonu belgeleriyle eşlemelerine göre doğrulanması gerekir.
- Doğrulanması test verisi Geliştirme ekibi tarafından/geliştirme ekibine danışılarak oluşturulan geliştirme ekibinin doğrulanması gerekiyor.
- Çıkış verilerinin hem manuel hem de otomasyon prosedürlerini kullanarak doğrulanması.
- Gerekli test veri koşullarının oluşturulması için neden-sonuç grafiği tekniği, eşdeğerlik bölümleme tekniği ve sınır değeri analizi tekniği gibi çeşitli tekniklerin kullanılması.
- Gerekli veritabanı tabloları için referans bütünlüğünün doğrulama kurallarının da doğrulanması gerekir.
- Veritabanı tutarlılığının doğrulanması için varsayılan tablo değerlerinin seçimi çok önemli bir kavramdır Gerekli tüm oturum açma olayları için günlük olaylarının Veritabanına başarıyla eklenip eklenmediği
- Planlanan işler zamanında yürütülüyor mu?
- Veritabanının zamanında yedeğini alın.
Ayrıca kontrol edin- Veritabanı Testi Mülakat Soruları ve Cevapları