Veritabanı Testi - Hızlı Kılavuz
Veritabanı testi, veri geçerliliği, veri bütünlüğü testi, veritabanıyla ilgili performans kontrolü ve veritabanındaki prosedürlerin, tetikleyicilerin ve işlevlerin test edilmesini içerir.
Misal
Kullanıcılar için günlük işlem ayrıntılarını yakalayan ve ayrıntıları veritabanında depolayan bir uygulama düşünün. Veritabanı testi bakış açısından, aşağıdaki kontroller yapılmalıdır -
Uygulamadan alınan işlem bilgileri veri tabanında saklanmalı ve kullanıcıya doğru bilgi vermelidir.
Veritabanına yüklenirken bilgi kaybolmamalıdır.
Yalnızca tamamlanan işlemler saklanmalı ve tamamlanmamış tüm işlemler uygulama tarafından iptal edilmelidir.
Veritabanına erişim yetkisi korunmalıdır. Kullanıcı bilgilerine onaylanmamış veya yetkisiz erişim sağlanmamalıdır.
Neden Veritabanı Testi Yapmanız Gerekiyor?
Veritabanı testinin yapılmasının birçok nedeni vardır. Arka uç sistemi verileri depolamaktan sorumlu olduğundan ve çok amaçlı erişim sağlandığından, veritabanında veri bütünlüğü, doğrulama ve veri tutarlılığı kontrolü yapmaya ihtiyaç vardır.
Aşağıda, Veritabanı testi için bazı yaygın nedenler verilmiştir -
Geliştiriciler veritabanı arka ucuna yapılan çağrıların karmaşıklığını kolaylaştırmak için View ve Stored Prosedürler.
Bunlar Stored prosedürler ve Viewsmüşteri ayrıntılarını (ad, iletişim bilgileri vb.) ve satış verilerini eklemek gibi kritik görevleri içerir. Bu görevlerin çeşitli düzeylerde test edilmesi gerekir.
Black-box testingön uçta yapılması önemlidir, ancak sorunu izole etmeyi zorlaştırır. Arka uç sistemindeki testler, verilerin sağlamlığını artırır. Bu nedenle veritabanı testi arka uç sistemde yapılır.
Bir veritabanında, veriler birden çok uygulamadan gelir ve veritabanında zararlı veya yanlış verilerin depolanma olasılığı vardır. Bu nedenle, veritabanı bileşenlerinin düzenli olarak kontrol edilmesine ihtiyaç vardır. Ayrıca veri bütünlüğü ve tutarlılığı düzenli olarak kontrol edilmelidir.
Veritabanı Testi - Ön Uç Testi
Veritabanı testi, ön uç kullanıcı arayüzü testinden farklıdır. Aşağıdaki tablo temel farklılıkları vurgulamaktadır -
Veritabanı Testi | UI Testi |
---|---|
Veritabanı testi, veri doğrulama ve bütünlük testi veya arka uç testi olarak bilinir. |
UI testi veya ön uç testi, Uygulama testi veya GUI testi olarak da adlandırılır. |
Veritabanı testi, kullanıcılar tarafından görülemeyen arka uç bileşenlerin test edilmesini içerir. Bu, veritabanı bileşenlerini ve My SQL, Oracle gibi DBMS sistemlerini içerir. |
UI testi, bir uygulamanın işlevlerini ve formlar, grafikler, menüler, raporlar vb. Gibi bileşenlerini kontrol etmeyi içerir. Bu bileşenler, VB.net, C #, Delphi vb. Gibi ön uç geliştirme araçları kullanılarak oluşturulur. |
Veritabanı testi, depolanan prosedürleri, görünümleri, veritabanındaki şemaları, tabloları, dizinleri, anahtarları, tetikleyicileri, veri doğrulamalarını ve veri tutarlılığı kontrolünü kontrol etmeyi içerir. |
UI testi, uygulamanın, düğmelerin, formların ve alanların, takvim ve resimlerin, bir sayfadan diğerine gezinmenin ve uygulamanın genel işlevselliğinin kontrol edilmesini içerir. |
DB testi gerçekleştirmek için, bir test uzmanının prosedürler ve işlevler, görünümler, dizinler, anahtarlar ve iyi uygulamalı SQL gibi veritabanı kavramına ilişkin kapsamlı bilgiye ihtiyacı vardır. |
UI testi yapmak için, bir test uzmanının iş gereksinimlerini, uygulama işlevsel bilgisini, kodlamayı vb. İyi anlaması gerekir. |
Veriler, web uygulamaları, Intranet uygulamaları ve çeşitli diğer uygulamalar üzerinden birden çok heterojen veri kaynağından gelir. |
Veriler, uygulamalara manuel olarak girilir. Ön uç uygulamaların işlevsel testini içerir. |
Bir veritabanının işlevine ve yapısına bağlı olarak, DB testi üç kategoriye ayrılabilir -
Structural Database Testing - Tablo ve sütun testi, şema testi, depolanan prosedürler ve görünüm testleri, tetikleyicileri kontrol etme vb. İle ilgilenir.
Functional Testing- Veritabanının işlevselliğini kullanıcı açısından kontrol etmeyi içerir. En yaygın İşlevsel test türü Beyaz kutu ve kara kutu testidir.
Nonfunctional Testing - Yük testi, veritabanında risk testi, stres testi, minimum sistem gereksinimleri ve veritabanının performansı ile ilgilenir.
Yapısal Veritabanı Testi
Yapısal veritabanı testi, son kullanıcılara açık olmayan veritabanı bileşenlerinin doğrulanmasını içerir. Verileri depolamak için kullanılan ve son kullanıcılar tarafından değiştirilmeyen deponun tüm bileşenlerini içerir. SQL saklı yordamlarına ve diğer kavramlara hakim olan veritabanı yöneticileri normalde bu testi gerçekleştirir.
Yapısal Test ile ilgili olarak test edilen ortak bileşenler tartışılmıştır -
Şema / Haritalama Testi
Veritabanı nesne eşlemesi ile ön uç uygulama nesnelerinin doğrulanmasını içerir.
Şema Testinde -
Bazen, son kullanıcı uygulama nesnelerinin doğru şekilde eşlenmemesi veya veritabanı nesneleriyle uyumlu olmaması olur. Bu nedenle, veritabanları ile ilişkili çeşitli şema formatlarının doğrulanmasının kontrol edilmesi gerekir.
Veritabanında tablo, görünüm, sütun vb. Eşlenmemiş nesnelerin bulunması gerekir.
Piyasada, şemalarda nesne haritalaması yapmak için kullanılabilecek çeşitli araçlar vardır.
Example - Microsoft SQL Server'da, bir test uzmanı veritabanındaki şemaları kontrol etmek ve doğrulamak için basit sorgular yazabilir.
Test uzmanı bir tablo yapısında değişiklik yapmak isterse, tüm stored bu tabloya sahip prosedürler bu değişiklikle uyumludur.
Saklanan Prosedürler ve Görünümlerin Testi
Bu testte, bir test cihazı, depolanan prosedürlerin ve görünümlerin manuel olarak yürütülmesinin gerekli sonucu vermesini sağlar.
Test cihazı şunları sağlar:
Gerekli tetikleyicilerin beklendiği gibi yürütülmesini sağlarsa.
Geliştirme ekibi prosedürlerdeki uygulamalara girdi ileterek tüm döngüleri ve koşulları kapsamışsa.
Veritabanında kullanılmayan saklı yordamlar varsa.
Veri, veritabanındaki gerekli tablolardan alındığında TRIM işlemleri düzgün bir şekilde uygulanır.
Test edilen uygulamanın gereksinimlerine göre saklı yordam modüllerinin genel entegrasyonunun doğrulanması.
İstisna ve hata işleme mekanizmaları takip edilir.
Depolanan prosedür testleri gerçekleştirmek için kullanılan en yaygın araçlar şunlardır: LINQ, SP Test tool, vb.
Tetik Testi
Tetik testinde, bir test uzmanının aşağıdakileri sağlaması gerekir:
Tetikleyicilerin kodlama aşamasında kodlama kurallarına uyulup uyulmadığı.
Yürütülen tetikleyicilerin gerekli koşulları karşıladığını görün.
Tetikleyicinin, yürütüldükten sonra verileri doğru şekilde güncelleyip güncellemediği.
Güncelleme / Ekleme / Silme işlevinin doğrulanması, test altındaki uygulama işlevselliğini tetikler.
Tablolar ve Sütun testi
Bu testte kapsanan temel alanlar şunlardır:
Veritabanındaki veri türlerini ön uç uygulamadaki alan değerlerine doğrulama.
Veritabanındaki veri alanının uzunluğunu uygulamadaki veri türlerinin uzunluğuna göre doğrulama.
Veritabanında uygulama alanı nesnelerinden herhangi bir eşlenmemiş tablo veya sütun olup olmadığının kontrol edilmesi.
Veritabanı tablolarının ve sütunlarının adlandırma kuralları, iş gereksinimine uygun olup olmadıkları doğrulanır.
Veritabanındaki Anahtarların ve Dizinlerin doğrulanması, yani tablolardaki birincil ve yabancı anahtarlar ihtiyaca göre tanımlanır.
Birincil anahtarların ve bunlara karşılık gelen yabancı anahtarların iki tabloda aynı olup olmadığını kontrol edin.
Anahtarların Unique ve NOT NULL özelliklerinin korunduğunu kontrol edin.
Anahtarların ve dizinlerin uzunluğu ve veri türü ihtiyaca göre korunur.
Veritabanı Sunucusu Kontrolü
Veritabanı Sunucusu kontrolü, doğrulamayı içerir -
Veritabanı sunucusu, iş gereksinimine göre beklenen sayıda işlemi halledebilirse.
Veritabanı sunucularının yapılandırma ayrıntıları iş gereksinimlerini karşılıyorsa.
Kullanıcı yetkisi gereksinime göre korunursa.
Fonksiyonel test
Fonksiyonel testler, son kullanıcı bakış açısı akılda tutularak gerçekleştirilir; son kullanıcılar tarafından yürütülen gerekli işlem ve işlemlerin iş şartnamelerine uygun olup olmadığı.
Kara Kutu Testi
Kara Kutu Testi, işlevselliği kontrol etmek için veritabanının entegrasyonunun doğrulanmasını içerir. Test senaryoları basittir ve işlevden gelen verileri ve giden verileri doğrulamak için kullanılır.
Veritabanının işlevselliğini test etmek için neden-sonuç grafiği tekniği, eşdeğerlik bölümleme ve sınır-değer analizi gibi çeşitli teknikler kullanılmaktadır.
Onun advantages aşağıdaki gibidir -
- Oldukça basittir ve gelişimin erken aşamalarında gerçekleştirilir.
- Test senaryoları geliştirmenin maliyeti, beyaz kutu testine kıyasla daha düşüktür.
Dezavantajları aşağıdaki gibidir -
- Birkaç hata tespit edilemez
- Ne kadar programın test edilmesi gerektiği bilinmemektedir.
Beyaz Kutu Testi
Beyaz Kutu Testi, veritabanının dahili yapısıyla ilgilenir ve spesifikasyon ayrıntıları kullanıcılardan gizlenir. Veritabanı yeniden düzenlemesini destekleyecek olan veritabanı tetikleyicilerinin ve mantıksal görünümlerin test edilmesini içerir.
Veritabanı işlevlerinin, tetikleyicilerin, görünümlerin, SQL sorgularının vb. Modül testlerini gerçekleştirir. Bu tür testler veritabanı tablolarını, veri modellerini, veritabanı şemasını vb. Doğrular. Bilgi bütünlüğünün kurallarını kontrol eder. Veritabanı tutarlılığını kontrol etmek için varsayılan tablo değerlerini seçer.
Beyaz kutu testi yapmak için kullanılan en yaygın teknikler durum kapsamı, karar kapsamı, ifade kapsamı vb.
Kodlama hataları beyaz kutu testinde tespit edilebilir, böylece veritabanındaki dahili hatalar ortadan kaldırılabilir. Beyaz kutu testinin sınırlaması, SQL ifadelerinin kapsanmamasıdır.
İşlevsel Olmayan Test
İşlevsel olmayan testler, yük testi, stres testi, iş spesifikasyonunu karşılamak için minimum sistem gereksinimlerinin kontrol edilmesini, veritabanının risk bulmasını ve performans optimizasyonunu içerir.
Yük Testi
Yük testinin birincil hedefi, çalışan işlemlerin çoğunun veritabanı üzerinde performans etkisinin olup olmadığını kontrol etmektir.
Yük testinde, test cihazı şunları kontrol eder:
- Birden çok uzak kullanıcı için işlemleri yürütmek için yanıt süresi.
- Veritabanının belirli kayıtları getirmek için harcadığı süre.
Examples of load testing in different testing types -
- Veritabanı sisteminin performansını görmek için en çok kullanılan işlemi tekrar tekrar çalıştırmak.
- İnternetten bir dizi büyük dosya indirme.
- Bir bilgisayarda veya sunucuda aynı anda birden fazla uygulama çalıştırmak.
Stres testi
Sistem kesme noktasını belirlemek için stres testi yapılır. Bu testte uygulama, sistemin bir noktada başarısız olacağı şekilde yüklenir. Bu nokta denirbreakpoint veritabanı sistemi.
Veritabanı işlemlerinin durumunu belirlemek önemli miktarda çaba gerektirir. Zaman ve maliyete dayalı sorunlardan kaçınmak için uygun planlama gereklidir.
En yaygın kullanılan stres testi araçları LoadRunner ve WinRunner.
Bir alalım exampleStres Testi. Bir CRM uygulaması, aynı anda maksimum 50000 kullanıcı yükünü alabilir. Yükü 51000'e çıkardığınızı ve kayıtları güncelleme veya bir giriş ekleme gibi bazı işlemler yaptığınızı varsayalım. İşlemi yaptığınız anda, uygulama veritabanı sistemi ile senkronize olabilir. Dolayısıyla, bir sonraki test 52000 kullanıcı yükü ile gerçekleştirmektir. Bazen, Stres Testi de denir.Fatigue Testing.
Veritabanı testi gerçekleştirme süreci, diğer uygulamaların test edilmesine benzer. DB testi, aşağıda verilen temel süreçlerle açıklanabilir.
- Ortamı kurun
- Bir test yapın
- Test sonucunu kontrol edin
- Beklenen sonuçlara göre doğrulayın
- Bulguları ilgili paydaşlara rapor edin
Test senaryolarını geliştirmek için çeşitli SQL ifadeleri kullanılır. DB testini gerçekleştirmek için kullanılan en yaygın SQL ifadesiSelectBeyan. Bunun dışında çeşitli DDL, DML, DCL ifadeleri de kullanılabilir.
Example - Oluştur, Ekle, Seç, Güncelle vb.
Veritabanı Test Aşamaları
DB testi meşakkatli bir süreç değildir ve test süreçlerine göre veritabanı testi yaşam döngüsünde çeşitli aşamaları içerir.
Veritabanı testindeki temel aşamalar şunlardır:
- Başlangıç durumunu kontrol etme
- Test sürüşü
- Beklenen sonuca göre sonuç doğrulama
- Sonuçların oluşturulması
First stageDB Testinde, test sürecine başlamadan önce veritabanının başlangıç durumunu kontrol etmektir. Ardından, tanımlanmış test senaryoları için veritabanı davranışı test edilir. Elde edilen sonuçlara göre test senaryoları özelleştirilir.
Başarılı veritabanı testi için, aşağıda verilen iş akışı her bir test tarafından yürütülür.
Cleaning up the database - Veritabanında test edilebilir veri varsa boşaltılmalıdır.
Set up Fixture - Bu, verilerin veritabanına girilmesini ve veritabanının mevcut durumunu kontrol etmeyi içerir.
Perform test, verify results and generate results- Test çalıştırılır ve çıktı doğrulanır. Çıktı beklenen sonuçlara göre ise, sonraki adım, sonuçları ihtiyaca göre üretmektir. Aksi takdirde, veri tabanındaki hataları bulmak için test tekrarlanır.
Bu bölüm, Veritabanı Testi gerçekleştirmek için kullanılan en yaygın teknikleri açıklamaktadır.
Veritabanı Şeması Testi
Daha önce de belirtildiği gibi, Şemadaki her nesnenin test edilmesini içerir.
Veritabanlarını ve cihazları doğrulama
- Veritabanının adını doğrulama
- Veri cihazını, günlük cihazını ve döküm cihazını doğrulama
- Her bir veritabanı için yeterli alan ayrılıp ayrılmadığını doğrulama
- Veritabanı seçeneği ayarını doğrulama
Tablolar, sütunlar, sütun türleri kuralları kontrolü
Gerçek ve uygulanan ayar arasındaki farkları bulmak için aşağıda verilen öğeleri doğrulayın.
Veritabanındaki tüm tabloların adı
Her tablo için sütun adları
Her tablo için sütun türleri
NULL değer kontrol edildi ya da değil
Bir varsayılanın doğru tablo sütunlarına bağlı olup olmadığı
Tablo adlarını düzeltmek ve ayrıcalıklara erişmek için kural tanımları
Anahtar ve Dizinler
Her tablodaki Anahtarı ve dizinleri doğrulayın -
Her tablo için birincil anahtar
Her tablo için yabancı anahtarlar
Bir yabancı anahtar sütunu ile diğer tablodaki bir sütun arasındaki veri türleri Endeksler, kümelenmiş veya kümelenmemiş benzersiz veya benzersiz değil
Depolanan Prosedür Testleri
Bir saklı yordamın tanımlanıp tanımlanmadığını ve çıktı sonuçlarının karşılaştırılıp karşılaştırılmadığını kontrol etmeyi içerir. Depolanan Prosedür testinde aşağıdaki noktalar kontrol edilir -
Saklanan prosedür adı
Parametre adları, parametre türleri vb.
Output- Çıktının çok sayıda kayıt içerip içermediği. Sıfır satır etkilenir veya yalnızca birkaç kayıt çıkarılır.
Depolanan Yordamın işlevi nedir ve bir saklı yordamın ne yapmaması gerekir?
Saklanan bir prosedürün doğru verileri alıp almadığını kontrol etmek için örnek giriş sorgularını iletme.
Stored Procedure Parameters- Sınır verileri ve geçerli verilerle depolanan prosedürü çağırın. Her parametreyi bir kez geçersiz hale getirin ve bir prosedür çalıştırın.
Return values- Saklanan yordam tarafından döndürülen değerleri kontrol edin. Bir arıza durumunda sıfırdan farklı bir değer döndürülmelidir.
Error messages check- Depolanan yordamın başarısız olacağı ve her hata mesajını en az bir kez oluşturacağı şekilde değişiklikler yapın. Önceden tanımlanmış bir hata mesajı olmadığında istisna senaryolarını kontrol edin.
Tetik Testleri
Tetikleyici testinde, test cihazı aşağıdaki görevleri gerçekleştirmelidir -
- Tetikleyici adının doğru olduğundan emin olun.
- Belirli bir tablo sütunu için oluşturulmuşsa tetikleyiciyi doğrulayın.
- Tetikleyicinin güncelleme doğrulaması.
- Geçerli bir veriyle bir kaydı güncelleyin.
- Geçersiz veriler içeren bir kaydı güncelleyin ve her tetikleyici hatasını giderin.
- Başka bir tablodaki bir satır tarafından hala başvurulan bir kaydı güncelleyin.
- Bir hata oluştuğunda işlemlerin geri alınmasını sağlayın.
- Bir tetikleyicinin işlemleri geri almasının beklenmediği durumları öğrenin.
Sunucu Kurulum Komut Dosyaları
İki tür test yapılmalıdır -
- Veritabanını sıfırdan kurmak ve
- Mevcut bir veritabanı kurmak için.
SQL Server Entegrasyon Testleri
Bileşen testi tamamlandıktan sonra entegrasyon testleri yapılmalıdır.
Çakışmaları ve uyumsuzlukları bulmak için farklı tablolardaki kayıtları seçmek, eklemek, güncellemek ve silmek için depolanan prosedürler yoğun bir şekilde çağrılmalıdır.
Şema ve tetikleyiciler arasındaki herhangi bir çelişki.
Depolanan yordamlar ve şema arasındaki herhangi bir çelişki.
Depolanan yordamlar ve tetikleyiciler arasındaki herhangi bir çelişki.
Fonksiyonel Test Yöntemi
Veritabanını işlevselliğe göre modüllere bölerek işlevsel test gerçekleştirilebilir. İşlevler aşağıdaki iki türdendir -
Type 1- Tip 1 testinde projenin özelliklerini öğrenin. Her ana özellik için, bu işlevi uygulamaktan ve bunları işlevsel bir gruba yerleştirmekten sorumlu olan şemayı, tetikleyicileri ve saklı yordamları bulun. Sonra her grubu birlikte test edin.
Type 2- Tip 2 testinde, arka uçtaki fonksiyonel grupların sınırı belirgin değildir. Veri akışını kontrol edebilir ve verileri nerede kontrol edebileceğinizi görebilirsiniz. Ön uçtan başlayın.
Aşağıdaki süreç gerçekleşir -
Bir hizmetin bir talebi olduğunda veya verileri kaydettiğinde, bazı depolanmış prosedürler çağrılır.
Prosedürler bazı tabloları güncelleyecektir.
Bu saklanan prosedürler, teste başlanacak yer olacak ve bu tablolar test sonuçlarını kontrol edecek yer olacaktır.
Stres testi
Stres Testi, ana veritabanı işlevlerinin ve bunlara karşılık gelen saklı yordamların bir listesini almayı içerir. Stres Testi için aşağıda verilen adımları izleyin -
Bu işlevleri denemek için test komut dosyaları yazın ve her işlev tam döngüde en az bir kez kontrol edilmelidir.
Belirli bir süre boyunca test komut dosyalarını tekrar tekrar gerçekleştirin.
Herhangi bir kilitlenmeyi, bellek yetersizliğini, veri bozulmasını vb. Kontrol etmek için günlük dosyalarını doğrulama.
Kıyaslama Testi
Veritabanınızda herhangi bir veri sorunu veya hata yoksa, sistem performansı kontrol edilebilir. Aşağıda verilen parametreleri kontrol ederek kıyaslama testinde zayıf bir sistem performansı bulunabilir -
- Sistem düzeyinde performans
- En çok kullanılan işlevleri / özellikleri belirleyin
- Zamanlama - işlevleri gerçekleştirmek için maksimum süre, minimum süre ve ortalama süre
- Erişim hacmi
Bir Veritabanını Ön Uç ile Test Etme
Arka uç hataları bazen ön uç testi yapılarak da bulunabilir. Ön uç testi ile hataları tespit etmek için aşağıda verilen basit adımları takip edebilirsiniz.
Ön uçtan sorguları yazın ve aramaları yapın.
Mevcut bir kaydı alın, bazı alanlardaki değerleri değiştirin ve kaydı kaydedin. (UPDATE deyimini içerir veya depolanan prosedürleri ve güncelleme tetikleyicilerini günceller.)
Ön uç pencereye yeni bir menü öğesi ekleyin. Bilgileri doldurun ve kaydı kaydedin. (INSERT ifadelerini veya yerleştirme saklı yordamlarını ve silme tetikleyicilerini içerir.)
Mevcut bir kaydı alın, SİL veya KALDIR düğmesine tıklayın ve silme işlemini onaylayın. (DELETE deyimini veya saklı yordamları ve silme tetikleyicilerini silme işlemlerini içerir.)
Bu test olaylarını geçersiz verilerle tekrarlayın ve veritabanının nasıl yanıt verdiğini görün.
Bu bölümde, çeşitli test yöntemlerine göre bazı yaygın veritabanı test senaryolarını göreceğiz.
Yapılandırılmış Veritabanı Testi
Yapılandırılmış Veritabanı Testine ilişkin yaygın veritabanı senaryoları aşağıda verilmiştir -
Veritabanının adını doğrulamak, veri cihazını, günlük cihazını ve döküm cihazını doğrulamak, her bir veritabanı için yeterli alan tahsis edilip edilmediğini doğrulamak ve veritabanı seçeneği ayarını doğrulamak.
Veritabanındaki tüm tabloların isimleri, her tablo için sütun isimleri, her tablo için sütun türleri, boş değer kontrolü ya da değil. Her tablodaki Anahtarı ve dizinleri doğrulayın: Her tablo için birincil anahtar, her tablo için yabancı anahtarlar.
Bir yabancı anahtar sütunu ile diğer tablodaki bir sütun arasındaki veri türleri Endeksler, kümelenmiş veya kümelenmemiş benzersiz veya benzersiz değil.
Fonksiyonel Veritabanı Testi
İle ilgili Ortak Veritabanı Testi senaryoları Functional Database Testing -
Bu işlevi uygulamaktan ve bunları işlevsel bir grup haline getirmekten sorumlu şemayı, tetikleyicileri ve depolanan prosedürleri bulmak ve ardından her grup birlikte test edilebilir.
Veri akışını kontrol edin ve verileri nerede kontrol edebileceğinizi görün. Ön uçtan başlayın.
İşlevsel Olmayan Veritabanı Testi
İle ilgili Ortak Veritabanı Testi senaryoları Non-Functional Database Testing -
Ana işlevleri denemek için test komut dosyaları yazın ve her işlev tam döngüde en az bir kez kontrol edilmelidir.
Belirli bir süre boyunca test komut dosyalarını tekrar tekrar gerçekleştirin.
Herhangi bir kilitlenme, bellek yetersizliği, veri bozulması vb. Kontrol etmek için günlük dosyalarını doğrulama.
Bir ön uçtan sorgular yazın ve aramaları yayınlayın. Mevcut bir kaydı alın, bazı alanlardaki değerleri değiştirin ve kaydı kaydedin. (UPDATE deyimini veya depolanan prosedürleri güncellemeyi, tetikleyicileri güncellemeyi içerir.)
Ön uç pencereye yeni bir menü öğesi ekleyin. Bilgileri doldurun ve kaydı kaydedin. (INSERT ifadelerini veya yerleştirme saklı yordamları, silme tetikleyicilerini içerir.)
Mevcut bir kaydı alın, SİL veya KALDIR düğmesine tıklayın ve silme işlemini onaylayın. (DELETE ifadesini veya saklı yordamları silme, silme tetikleyicilerini içerir.)
Bu test olaylarını geçersiz verilerle tekrarlayın ve veritabanının nasıl yanıt verdiğini görün.
Schemas, tables, stored procedures, ve Triggersbir veritabanının anahtar nesneleridir. Bu veri tabanı nesneleri için DB test türlerini ve test senaryolarını zaten paylaştık.
Şemalar
Bir veritabanı şeması, veritabanı yönetim sistemi tarafından desteklenen bir formatta bir veritabanı sisteminin yapısını tanımlar. Şema, bir veritabanının nasıl yapılandırıldığını ifade eder (İlişkisel Veritabanları durumunda veritabanı tablolarından oluşur).
Veritabanı şeması, bir veritabanına uygulanan bütünlük kısıtlamaları adı verilen bir formül kümesidir. Bu bütünlük kısıtlamaları, şemanın bölümleri arasında uyumluluğu sağlar.
İlişkisel bir veritabanında, şema tablolar, alanlar, görünümler, dizinler, paketler, prosedürler, işlevler, tetikleyiciler, türler, somutlaştırılmış görünümler, eşanlamlılar, veritabanı bağlantıları ve diğer öğelerden oluşur.
Şemalar genellikle bir veri sözlüğünde saklanır. Bir şema, metin veritabanı dilinde tanımlanmasına rağmen, terim genellikle veritabanı yapısının grafiksel bir tasvirine atıfta bulunmak için kullanılır. Diğer bir deyişle şema, veritabanındaki nesneleri tanımlayan veritabanı yapısıdır.
Bir veri ambarında kullanılan yaygın Şema türleri şunlardır:
- Yıldız Şeması
- Kar Taneleri Şeması
- Galaxy Şeması
Veritabanındaki Tablolar
İlişkisel bir veritabanında, bilgileri satırlar ve sütunlar halinde düzenlemek için bir tablo kullanılır.
Example - Müşteri tablosu, müşteri kimliği, adresler, telefon numaraları vb. Gibi bilgileri bir dizi sütun halinde içerir.
Her bir veri parçası tablodaki bir alandır. Bir sütun, tüm müşterilerin telefon numaraları gibi tek bir alandaki tüm girişlerden oluşur. Alanlar, her biri bir satır içeren eksiksiz bilgi kümeleri (belirli bir müşteri hakkındaki bilgi kümesi gibi) olan kayıtlar olarak düzenlenir.
Saklanan Prosedürler
Depolanan yordam, veritabanında derlenmiş bir biçimde depolanan bir dizi SQL deyimidir ve birden çok program bunu paylaşabilir. Depolanan prosedürlerin kullanılması, veri bütünlüğünü korumada, veri kontrol erişiminde ve üretkenliği artırmada yardımcı olabilir.
Tetikleyiciler
Veritabanı tetikleyicisi, bir veritabanındaki belirli bir tablo veya görünümdeki belirli olaylara yanıt olarak yürütülen koddur. Tetik, çoğunlukla veri tabanındaki bilgilerin bütünlüğünü korumak için kullanılır.
Veri Bütünlüğü bir veritabanında önemlidir. Ekleme, güncelleme ve silme işlemlerinden önce veri doğrulamasını içerir. Referans tablosu kayıtlarını doğrulamak için tetikleyiciler yerinde olmalıdır.
Veri Bütünlüğünü kontrol etmek için aşağıdaki işlemleri yapmanız gerekir -
Her tablodaki ana sütunları kontrol etmeniz ve herhangi bir yanlış veri olup olmadığını doğrulamanız gerekir. (Ad alanındaki karakterler, negatif yüzde vb.)
Tutarsız verileri bulun ve bunları ilgili tablolara ekleyin ve herhangi bir arıza olup olmadığına bakın.
Üst öğesinin verilerini eklemeden önce bir alt veri ekleyin. Hala başka bir tablodaki veriler tarafından başvurulan bir kaydı silmeyi deneyin.
Bir tablodaki bir veri güncellenirse, diğer ilgili verilerin de güncellenip güncellenmediğini kontrol edin. Çoğaltılmış sunucuların veya veritabanlarının senkronize olduğundan ve tutarlı bilgiler içerdiğinden emin olmanız gerekir.
Bir veritabanında veri haritalama, her test uzmanı tarafından doğrulanması gereken temel kavramlardan biridir. Genellikle test uzmanlarının, ilgili arka uç veritabanı alanı ile kullanıcı arayüzü ön uç alan eşlemesini doğrulaması gerekir.
Bu bilgiler, Yazılım gereksinimi belirtimi veya iş gereksinimi belirtimi SRS / BRS belgesinde verilmiştir. Eşleme sağlanmadıysa, kodlama bölümünü kontrol etmeniz gerekir.
Ön uç uygulamasında herhangi bir işlem yaptığınızda, buna karşılık gelen bir CRUD eylemi başlatılır ve test cihazı, başlatılan her eylemin başarılı olup olmadığını kontrol etmek zorundadır.
Veri Haritalamanın Temel Yönleri
Aşağıda, Veri Haritalamanın temel yönleri verilmiştir -
UI / Ön uç formlarındaki alanları kontrol etmek ve ilgili DB tablosu ile tutarlı bir şekilde eşleştirmek için. Bu eşleştirme bilgisi, yukarıda belirtildiği gibi gereksinim belgelerinde tanımlanmıştır.
Bir uygulamanın ön ucunda gerçekleştirilen herhangi bir eylem için, arka uçta karşılık gelen bir CRUD 'Oluştur, Al, Güncelle ve Sil' eylemi başlatılır.
Bir test uzmanı, doğru eylemin başlatılıp başlatılmadığını ve çağrılan eylemin kendi başına başarılı olup olmadığını kontrol etmek zorunda kalacaktır.
Veri Eşleme Testindeki Adımlar
Aşağıda, Veri Eşleme Testi için izlenen adımlar verilmiştir -
Step 1 - Önce her komut dosyasında sözdizimi hatası olup olmadığını kontrol edin.
Step 2 - Sonraki adım, tablo eşleştirmesi, sütun eşlemesi ve veri türü eşlemesini kontrol etmektir.
Step 3 - Arama veri eşlemesini doğrulayın.
Step 4 - Kayıtlar hedef tablolarda bulunmadığında her komut dosyasını çalıştırın.
Step 5 - Kayıtlar hedef tablolarda zaten mevcut olduğunda her komut dosyasını çalıştırın.
Daha fazla yanıt süresi ve düşük performansa sahip bir uygulama çok büyük sorunlara yol açabilir. Veritabanı Yük Testi, veritabanı uygulamalarınızı son kullanıcılar için dağıtmadan önce herhangi bir performans sorununu bulmak için kullanılır.
Veritabanı Yük Testi, performans, güvenilirlik ve ölçeklenebilirlik için veritabanı uygulaması tasarlamanıza yardımcı olur. Veritabanı uygulamalarının Yük Testi, Veritabanı uygulamanızın performansını ve ölçeklenebilirliğini değişen kullanıcı yükleriyle test etmeyi içerir.
Veritabanı Yükü testi, hedef Veritabanı uygulaması için gerçek hayattaki kullanıcı yükünün simülasyonunu içerir. Veritabanı uygulamanızın, birden çok kullanıcı aynı anda ona ulaştığında nasıl davranacağını belirlemenize yardımcı olur.
Yük Testi
Yük Testinin birincil hedefi, çalışan işlemlerin çoğunun veritabanı üzerinde performans etkisinin olup olmadığını kontrol etmektir. Yük testinde aşağıdaki hususları kontrol etmeniz gerekir -
Birden çok uzak kullanıcı için işlemlerin yürütülmesine ilişkin yanıt süresi kontrol edilmelidir.
Normal işlemlerde, bu tip pf işlemleri için veri tabanının performansını kontrol etmek için bir düzenlenebilir işlem eklemelisiniz.
Normal işlemlerde, bu tür işlemler için veri tabanının performansını kontrol etmek için bir düzenleme dışı işlem eklemelisiniz.
Veritabanının belirli kayıtları getirmek için harcadığı süre kontrol edilmelidir.
Stres testi
Sistemi tanımlamak için stres testi yapılır breakpoint. Burada uygulama, sistemin bir noktada başarısız olacağı şekilde yüklenir. Bu nokta, veritabanı sisteminin kesme noktası olarak adlandırılır. Stres testi olarak da bilinirFatigue Testing.
Veritabanı işlemlerinin durumunu belirlemek önemli miktarda çaba gerektirir. Zamana ve maliyete dayalı sorunlardan kaçınmak için uygun planlama gereklidir.
En yaygın stres testi araçları: LoadRunner ve WinRunner.
Satıcılar tarafından, Test verilerini oluşturmak, Test verilerini yönetmek ve Yük Testi ve Regresyon Testi gibi veritabanı testleri gerçekleştirmek için kullanılabilen çeşitli araçlar vardır.
Aşağıda, kullanılan birkaç yaygın araç verilmiştir.
Sr.No | Kategori tanımı | Örnekler |
---|---|---|
1 | Load Testing Tools Bu araçlar, veritabanınıza yüksek kullanım yükleri koymak için kullanılır, bu da sisteminizin ortamının iş ihtiyaçlarınızı karşılayıp karşılamayacağını belirlemenizi sağlar. |
Web Performansı Rad Görünümü Merkür |
2 | Data Security Tools Bu araçlar, bilgi güvenliği düzenlemelerine göre uyum ve standartları uygulamak için kullanılır. |
IBM Optim Data Privacy |
3 | Test Data generator tools Bir test uzmanı, bir veritabanı sistemi için test verilerini oluşturmak üzere bu araçları kullanır. Bunlar çoğunlukla büyük miktarda veriniz olduğunda ve DB Testini gerçekleştirmek için örneğe ihtiyacınız olduğunda gereklidir. Yaygın olarak Yük ve Stres testi için kullanılır. |
Veri Fabrikası DTM Veri Oluşturucu Turbo Verileri |
4 | Test Data Management Tool Bu araçlar, test verileri için sürüm kontrolünü sürdürmek için kullanılır. Beklenen sonuçları tanımlamanız ve ardından bunu testlerin gerçek sonuçlarıyla karşılaştırmanız gerekir. |
IBM Optim Test Veri Yönetimi |
5 | Tools to perform Unit Testing Bu araçlar, veritabanınızda regresyon testi yapmak için kullanılır. |
SQLUnit TSQLUnit DBFit DBUnit |
Organizasyonel büyümenin en önemli kısmı verileridir. Sistem arızası durumunda, verileri geri yüklemeye ihtiyaç vardır. Yedekleme, herhangi bir veri kaybı durumunda verilerinizi geri yüklemenize yardımcı olan veritabanının tam bir kopyasıdır.
Müşteri numarası, müşteri isimleri, kredi ve borçlar, süre vb. Gibi müşterileri ile ilgili verilere sahip olan bir finans şirketi düşünün. Böyle bir kuruluş, bir veri hatası durumunda bu kadar önemli bilgileri kaybetme baskısıyla nasıl başa çıkabilir?
Bu, verileri yedeklemenizin nedenidir, böylece bir diskte, disk denetleyicisinde vb. Herhangi bir arıza olması durumunda, yedeklemeyi veritabanına geri yüklemek için güvenebilirsiniz.
Veri Yedekleme Türleri
Kullanılabilecek iki tür yedekleme vardır -
Physical Backups - Fiziksel yedekleme, İşletim Sistemi yardımcı programlarını kullanarak Veritas Net Back, IBM Tivoli Manager veya kullanıcı yöneticisi yedeklemeleri gibi üçüncü kişi yedekleme araçlarını kullanarak yedeklemeyi içerir.
Logical Backups - Veritabanının mantıksal yedeklemesi, tablolar, dizinler, prosedürler vb. Gibi mantıksal nesnelerin yedeklerini almayı içerir.
Example - Veri yedeklemesi almak için yaygın olarak kullanılan araçlardan biri, Oracle Recovery Manager (RMAN) bu, veritabanı yedeklemesi almak için bir Oracle yardımcı programıdır.
RMAN iki bileşenden oluşur -
Target database hangi yedeklemenin gerekli olduğu.
RMAN istemci, veri yedeklemesi almak için komutları çalıştırmak için kullanılır.
BACKUP VALIDATEveritabanı dosyalarının geçerli bir yedeklemesini yapıp yapamayacağınızı test etmek için kullanılır. Sağlar -
- Veritabanının fiziksel veya mantıksal nesneleri için yedekleme yapılıyorsa.
- Paha biçilmez veriler için düzenli yedeklemeler ayarlanmışsa.
- Yedekleme aracı bir kuruluşun yedekleme gereksinimlerini karşılıyorsa.
Database recovery testingveritabanının kurtarılmasını sağlamak için kullanılır. Kurtarma testi, uygulamanın düzgün çalışıp çalışmadığını bulmanızı ve kurtarma yönteminiz doğru şekilde kurulmamışsa kaybedilecek olan paha biçilmez verileri almayı kontrol etmenizi sağlar.
Ayrıca, veri kurtarma işleminin test aşamasından sorunsuz bir şekilde geçmesini sağlamak için birkaç kritik sürecin sorunsuz çalışıp çalışmadığını da kontrol edersiniz.
Veritabanı kurtarma için aşağıdaki kontrolleri gerçekleştirebilirsiniz -
Yedekleme yazılımındaki herhangi bir hata veya hata ve bu sorunları daha erken bir aşamada çözmeniz gerekir.
Acil bir durumda ne yapacağınızı bilmeniz için kurtarma testini yapmanız gerekir.
Etkili bir kurtarma stratejisi planlayabilmek için kurtarma testi ihtiyaçlarını kontrol etmeniz gerekir.
Belgeleri nasıl kurtarabileceğinizi de bilmelisiniz.
Kurtarma testlerini projenin erken aşamasında çalıştırmanız gerekir. Bu, sistemden her tür hatayı kaldırmanıza ve atmanıza olanak tanır. İşte test sırasında dikkate alınması gereken bazı önemli noktaların bir listesi -
Veritabanı sisteminde değişikliklerin veya değişikliklerin meydana geldiği zaman aralığı.
Kurtarma planınızın uygulanmasını istediğiniz dönem.
Veri tabanı sistemindeki verilerin hassasiyeti. Veriler ne kadar kritikse, yazılımı o kadar düzenli olarak test etmeniz gerekecektir.
Veritabanı Yedekleme ve Kurtarma Testinde Genel Adımlar
Veritabanı kurtarma testinde, herhangi bir felaket ve iş ortamında öngörülemeyen diğer olaylar durumunda sistemin veya verilerin gerçekten kurtarılıp kurtarılamayacağını kontrol etmek için testi gerçek ortamda çalıştırmanız gerekir.
Aşağıda, Veritabanı Kurtarma Testinde gerçekleştirilen yaygın eylemler verilmiştir -
- Veritabanı sisteminin test edilmesi
- SQL dosyalarının test edilmesi
- Kısmi dosyaların test edilmesi
- Veri yedeklemesinin test edilmesi
- Yedekleme aracının test edilmesi
- Günlük yedeklerini test etme
Veritabanı güvenlik testleri, güvenlik mekanizmalarındaki boşlukları bulmak ve ayrıca veritabanı sisteminin açıklarını veya zayıflıklarını bulmak için yapılır.
Veritabanı güvenliği testinin ana hedefi, bir sistemdeki güvenlik açıklarını bulmak ve verilerinin ve kaynaklarının olası davetsiz misafirlerden korunup korunmadığını belirlemektir. Güvenlik testi, düzenli olarak gerçekleştirildiğinde potansiyel güvenlik açıklarını etkili bir şekilde tanımlamanın bir yolunu tanımlar.
Aşağıda, veritabanı güvenlik testi gerçekleştirmenin birincil hedefleri verilmiştir -
- Authentication
- Authorization
- Confidentiality
- Availability
- Integrity
- Resilience
Veritabanı Sistemindeki Tehdit Türleri
SQL Enjeksiyonu
Bu, veritabanı sistemine kötü amaçlı SQL ifadelerinin eklendiği ve veritabanı sisteminden kritik bilgileri almak için yürütüldüğü bir veritabanı sisteminde en yaygın saldırı türüdür. Bu saldırı, kullanıcı uygulamalarının uygulanmasındaki boşluklardan yararlanır. Bunu önlemek için, kullanıcı giriş alanları dikkatlice kullanılmalıdır.
Veritabanında Ayrıcalık Yükseltme
Bu saldırıda, bir kullanıcının zaten veritabanı sistemine erişimi vardır ve bu erişimi yalnızca veritabanı sisteminde bazı yetkisiz faaliyetler gerçekleştirebilmek için daha yüksek bir seviyeye yükseltmeye çalışır.
Hizmet Reddi
Bu tür bir saldırıda, bir saldırgan bir veritabanı sistemini veya uygulama kaynağını meşru kullanıcıları için kullanılamaz hale getirir. Uygulamalar ayrıca, uygulamayı ve bazen tüm makineyi kullanılamaz hale getirecek şekilde saldırıya uğrayabilir.
Verilere Yetkisiz Erişim
Diğer bir saldırı türü, bir uygulama veya veritabanı sistemi içindeki verilere yetkisiz erişim sağlamaktır. Yetkisiz erişim şunları içerir:
- Kullanıcı tabanlı uygulamalar aracılığıyla verilere yetkisiz erişim
- Başkalarının erişimini izleyerek yetkisiz erişim
- Yeniden kullanılabilir istemci kimlik doğrulama bilgilerine yetkisiz erişim
Kimlik Sahtekarlığı
Kimlik Sahtekarlığı'nda bir bilgisayar korsanı, ağ ana bilgisayarlarına karşı saldırılar başlatmak, verileri çalmak veya veritabanı sistemine erişim kontrollerini atlamak için bir kullanıcının veya cihazın kimlik bilgilerini kullanır. Bu saldırının önlenmesi, BT altyapısı ve ağ düzeyinde azaltma gerektirir.
Veri Manipülasyonu
Bir veri işleme saldırısında, bir bilgisayar korsanı, bir miktar avantaj elde etmek veya veritabanı sahiplerinin imajına zarar vermek için verileri değiştirir.
Veritabanı Güvenliği Test Teknikleri
Penetrasyon testi
Sızma testi, bir bilgisayar sistemine güvenlik açıkları bulma amacıyla yapılan, potansiyel olarak ona, işlevselliğine ve verilerine erişim sağlayan bir saldırıdır.
Risk Bulma
Risk Bulma, kaybın türü ve güvenlik açığının oluşma olasılığı ile ilgili riski değerlendirme ve karar verme sürecidir. Bu, organizasyon içinde çeşitli görüşmeler, tartışmalar ve analizlerle belirlenir.
SQL Enjeksiyon Testi
Uygulama alanlarında kullanıcı girişlerinin kontrol edilmesini içerir. Örneğin, ',' veya ';' gibi özel bir karakter girmek bir kullanıcı uygulamasındaki herhangi bir metin kutusuna izin verilmemelidir. Bir veritabanı hatası oluştuğunda, kullanıcı girdisinin daha sonra uygulama tarafından çalıştırılan bazı sorgulara eklendiği anlamına gelir. Böyle bir durumda, uygulama SQL enjeksiyonuna karşı savunmasızdır.
Saldırganlar, sunucu veritabanından önemli bilgilere erişebildiğinden, bu saldırılar veriler için büyük bir tehdittir. Web uygulamanıza SQL enjeksiyon giriş noktalarını kontrol etmek için, bazı kullanıcı girdilerini kabul ederek veritabanında doğrudan MySQL sorgularının yürütüldüğü kod tabanınızdan kodu bulun.
Parantez, Virgül ve Tırnak işaretleri için SQL Enjeksiyon Testi gerçekleştirilebilir.
Şifre Kırma
Bu, veritabanı sistem testi yaparken en önemli kontroldür. Bilgisayar korsanları, kritik bilgilere erişmek için bir parola kırma aracı kullanabilir veya ortak bir kullanıcı adı / parolayı tahmin edebilir. Bu yaygın şifreler internette kolayca bulunabilir ve ayrıca şifre kırma araçları ücretsiz olarak mevcuttur.
Bu nedenle, sistemde şifre politikasının korunup korunmadığını test sırasında kontrol etmek gerekir. Herhangi bir bankacılık ve finans uygulaması durumunda, tüm kritik bilgi veritabanı sistemlerinde katı bir parola politikası belirleme ihtiyacı vardır.
Veritabanı Sisteminin Güvenlik Denetimi
Güvenlik denetimi, gerekli standartlara uyulup uyulmadığını belirlemek için şirketin güvenlik politikalarını düzenli bir zaman aralığında değerlendirme sürecidir. Güvenlik politikasını tanımlamak için iş gereksinimine göre çeşitli güvenlik standartları takip edilebilir ve ardından belirlenen politikaların bu standartlara göre değerlendirilmesi yapılabilir.
En yaygın güvenlik standartlarına örnek olarak ISO 27001, BS15999 vb. Verilebilir.
Veritabanı Güvenliği Test Araçları
Piyasada işletim sistemi ve uygulama kontrolünü test etmek için kullanılabilen çeşitli sistem test araçları bulunmaktadır. En yaygın araçlardan bazıları aşağıda tartışılmaktadır.
Zed Attack Proxy
Web uygulamalarındaki güvenlik açıklarını bulmak için bir sızma testi aracıdır. Geniş bir güvenlik deneyimi yelpazesine sahip kişiler tarafından kullanılmak üzere tasarlanmıştır ve bu nedenle, sızma testinde yeni olan geliştiriciler ve işlevsel test uzmanları için idealdir. Yaygın olarak Windows, Linux, Mac OS için kullanılır.
Paros
Çerezler ve form alanları dahil olmak üzere sunucu ve istemci arasındaki tüm HTTP ve HTTPS verileri, bu tarayıcılar kullanılarak yakalanabilir ve değiştirilebilir. Çapraz platform, Java JRE / JDK 1.4.2 veya üstü için kullanılır.
Sosyal Mühendis Araç Seti
Açık kaynak kodlu bir araçtır ve sistem öğesi yerine insan unsurları saldırıya uğrar. Saldırı kodunu içeren e-postalar, java uygulamaları vb. Göndermenizi sağlar. Linux, Apple Mac OS X ve Microsoft Windows için tercih edilmektedir.
Skipfish
Bu araç, sitelerini güvenlik açıklarına karşı taramak için kullanılır. Araç tarafından oluşturulan raporların, profesyonel web uygulaması güvenlik değerlendirmeleri için bir temel oluşturması amaçlanmıştır. Linux, FreeBSD, MacOS X ve Windows için tercih edilir.
Vega
Web uygulamalarında SQL enjeksiyonu, siteler arası komut dosyası oluşturma (XSS) ve diğer güvenlik açıklarının örneklerini bulmak için kullanılan açık kaynaklı, çok platformlu bir web güvenlik aracıdır. Java, Linux ve Windows için tercih edilir.
Wapiti
Wapiti, web uygulamasının web sayfalarını tarayan ve veri enjekte edebileceği komut dosyalarını ve formları kontrol eden açık kaynaklı ve web tabanlı bir araçtır. Python ile oluşturulmuştur ve Dosya işleme hatalarını, Veritabanı, XSS, LDAP ve CRLF enjeksiyonlarını, Komut yürütme tespitini tespit edebilir.
Web Bokböceği
Java ile yazılmıştır ve HTTP / HTTPS protokolleri aracılığıyla iletişim kuran uygulamaları analiz etmek için kullanılır. Bu araç, öncelikle kendileri kod yazabilen geliştiriciler için tasarlanmıştır. Bu araç işletim sistemine bağlı değildir.
Veritabanı testini başarılı bir şekilde gerçekleştirmek için bir test uzmanı, teknik ve işlevsel gereksinimler gibi gereksinimleri tüm kaynaklardan toplamalıdır. Birkaç gereksinimin yüksek düzeyde olma olasılığı vardır, bu nedenle bu gereksinimleri küçük parçalara ayırma ihtiyacı vardır. Veritabanını test etmek karmaşık bir görevdir ve test uzmanları bu testi yaparken birçok zorlukla karşılaşır. En yaygın veritabanı testi zorlukları şunlardır:
Test kapsamı çok büyük
Bir test uzmanının veritabanı testinde test maddelerini tanımlaması gerekir, aksi takdirde neyi test edeceği ve neyi test etmeyeceği konusunda net bir anlayışa sahip olmayabilir. Bu nedenle, gereksinim konusunda netseniz, veritabanındaki kritik olmayan nesneleri test etmek için çok fazla zaman harcayabilirsiniz.
Test edilecek nesnelerin bir listesine sahip olduğunuzda, bir sonraki adım, testleri tasarlamak ve her test öğesi için testleri yürütmek için gereken çabayı tahmin etmektir. Tasarımlarına ve veri boyutlarına bağlı olarak, bazı veritabanı testlerinin yürütülmesi uzun sürebilir.
Veritabanı boyutu çok büyük olduğundan, test edilmesi gereken ve dışarıda bırakılması gereken nesneleri bulmak büyük bir zorluk haline gelir.
Ölçeği küçültülmüş test veritabanı
Normalde test uzmanlarına test etmek için geliştirme veritabanının bir kopyası verilir. Bu veritabanı, uygulamayı çalıştırmak için yeterli olan çok az veriye sahiptir. Bu nedenle geliştirme, hazırlık ve üretim veritabanı sistemini test etme ihtiyacı vardır.
Veritabanı yapısındaki değişiklikler
Bu, DB testindeki yaygın zorluklardan biridir. Bazen bir test tasarlar veya yürütürsünüz ve o sırada veritabanı yapısı değişmiştir. Bu, test sırasında veritabanında yapılan değişikliklerin farkında olmanız için gereklidir.
Veritabanı yapısı değiştiğinde, değişikliklerin etkisini analiz etmeli ve testleri değiştirmelisiniz. Ek olarak, birden fazla kullanıcı test veritabanını kullanıyorsa, test sonuçlarından emin olamazsınız, bu nedenle test veritabanının yalnızca test amacıyla kullanıldığından emin olmalısınız.
DB testindeki diğer bir zorluk, aynı anda birden fazla test çalıştırmanızdır. En azından performans testleri için bir seferde bir test çalıştırmalısınız. Veritabanınızın birden çok görevi yerine getirmesini ve yetersiz raporlama performansını istemezsiniz.
Karmaşık test planları
Veritabanı yapısı normalde karmaşıktır ve çok fazla veriye sahiptir, bu nedenle eksik veya aynı testleri tekrar tekrar yürütme olasılığınız vardır. Bu nedenle, bir test planı oluşturup buna göre ilerlemeye ve ilerlemeyi düzenli olarak kontrol etmeye ihtiyaç vardır.
İyi SQL bilgisi
Bir veritabanını test etmek için SQL sorguları ve gerekli veritabanı yönetim araçları hakkında iyi bilgiye sahip olmanız gerekir.
Veritabanı testi, veri geçerliliği, veri bütünlüğü testi, veritabanıyla ilgili performans kontrolü ve veritabanındaki Prosedürlerin, tetikleyicilerin ve işlevlerin test edilmesini içerir.
Veritabanı testinin yapılmasının birçok nedeni vardır. Arka uç sistemi verileri depolamaktan sorumlu olduğundan ve çok amaçlı erişim sağlandığından, veritabanında veri bütünlüğü, doğrulama ve veri tutarlılığı kontrolü yapmaya ihtiyaç vardır.
Veritabanı testi yapmanın yaygın nedenlerinden bazıları şunlardır:
Geliştiriciler veritabanı arka ucuna yapılan çağrıların karmaşıklığını kolaylaştırmak için View ve Stored Prosedürler.
Bunlar Stored prosedürler ve Viewsmüşteri ayrıntılarını (ad, iletişim bilgileri vb.) ve satış verilerini eklemek gibi kritik görevleri içerir. Bu görevlerin çeşitli düzeylerde test edilmesi gerekir.
Ön uçta gerçekleştirilen kara kutu testi önemlidir, ancak sorunu izole etmeyi zorlaştırır. Arka uç sistemindeki testler, verilerin sağlamlığını artırır. Bu nedenle veritabanı testi arka uç sistemde yapılır.
Bir veritabanında, veriler birden çok uygulamadan gelir ve veritabanında zararlı veya yanlış verilerin depolanma olasılığı vardır. Bu nedenle, veritabanı bileşenlerinin düzenli olarak kontrol edilmesine ihtiyaç vardır. Ayrıca veri bütünlüğü ve tutarlılığı düzenli olarak kontrol edilmelidir.
Veritabanı testi yaparken izlemeniz gereken adımlar aşağıdaki gibidir -
- Veritabanında bulunan veriler doğrulanmalıdır.
- Kısıtlamaların korunduğunu doğrulayın.
- Prosedürlerin performansı ve tetikleyicilerin yürütülmesi kontrol edilmelidir.
- Geri alma ve işlem taahhüdü kontrol edilmelidir.
Bir veritabanının işlevi ve yapısı temelinde, DB testi aşağıdaki kategorilere ayrılabilir -
Structural Database testing - Tablo ve sütun testi, şema testi, depolanan prosedürler ve görünüm testleri, tetikleyicileri kontrol etme vb. İle ilgilenir.
Functional Testing- Veritabanının işlevselliğini kullanıcı açısından kontrol etmeyi içerir. En yaygın İşlevsel test türü Beyaz kutu ve kara kutu testidir.
Nonfunctional Testing - Yük testi, veritabanında risk testi, stres testi, minimum sistem gereksinimi ve veritabanının wot performansını ele alır.
Depolanan prosedür testlerini gerçekleştirmek için kullanılan en yaygın araçlar LINQ, SP Test aracı vb.
Birleştirmeler, iki veya daha fazla tabloyu mantıksal bir şekilde bağlamak için kullanılır. Yaygın birleştirme türleri şunları içerir: İç birleştirme, Eşit olmayan, Dış birleştirme, Kendi kendine birleştirme ve Çapraz birleşim.
Tek bir masayı kendi içinde birleştirebilirsiniz. Bu durumda aynı tabloyu iki kez kullanıyorsunuz.
Step 1 - Veritabanına bağlanın
db_connect(query1 DRIVER {drivername};SERVER server_name;UID uidname;
PWD password;DBQ database_name );
Step 2 - Veritabanının sorgusunu yürütün -
db_excecute_query (write the required query that is to execute); Specify the appropriate condition
Step 3 - Kullanarak veritabanı bağlantısını kesin
db_disconnect(query);
Çıktı veritabanı kontrol noktalarını kullanarak, SQL manuel sorgu seçenekleri seçilmelidir. Burada seçme sorgusu yazılabilir.
İlk olarak, saklı yordamın gerekliliğini kontrol edin. Sonraki adım, saklı yordamda belirtilen tablolarla karşılaştırıldığında dizinlerin, birleşmelerin, silmelerin ve güncellemelerin doğru olup olmadığını kontrol etmektir.
Ardından, aşağıdaki görevleri gerçekleştirin -
Çağırma prosedürü adını, çağrı parametrelerini ve farklı girdi parametresi kümeleri için beklenen yanıtları doğrulayın.
Prosedürü TOAD veya MySQL veya Query Analyzer ile yürütün.
Farklı parametreler göndererek mevcut prosedürleri yeniden yürütün ve sonuçları beklenen değerlere göre kontrol edin.
Süreci tamamlayarak, testleri WinRunner ile otomatikleştirin.
Test cihazı, EXEC komutunu kullanarak veritabanındaki saklı yordamı çağırmalıdır. Herhangi bir parametre gerekliyse, bunların geçilmesi gerekir. Saklanan yordamın yürütülüp yürütülmediğini onaylamak için farklı parametre değerleri geçirilmelidir. Bu komutu çağırırken, veritabanının doğasını ve davranışını kontrol etmeli ve doğrulamalıdır.
Example - Saklanan prosedür bazı tabloyu doldurmak için yazılırsa, tablo değerleri kontrol edilmelidir.
Üç tür SQL deyimimiz var -
- Veri Manipülasyon Dili (DML)
- Veri Tanımlama Dili (DDL)
- Veri Kontrol Dili (DCL)
DDL ifadeleri, veritabanı yapısını veya şemasını tanımlamak için kullanılır. Bazı örnekler -
CREATE - veritabanında nesneler oluşturmak için
ALTER - veritabanının yapısını değiştirir
DROP - veritabanından nesneleri silin
İşleçler, bir SQL deyimindeki koşulları belirtmek ve bir deyimdeki birden çok koşul için bağlaç görevi görmek için kullanılır.
- Aritmetik operatörler
- Karşılaştırma / İlişkisel Operatörler
- Mantıksal operatörler
- Operatörleri Ayarla
- Koşulları reddetmek için kullanılan operatörler
Birleşim, iki veya daha fazla Select deyiminin sonuçlarını birleştirmek için kullanılır. Ancak yinelenen satırları ortadan kaldıracaktır. Birlik bir küme operatörüdür.
Unioniki veya daha fazla Select deyiminin sonuçlarını birleştirmek için kullanılır. Ancak yinelenen satırları ortadan kaldıracaktır
Union All işlem Union'a benzer, ancak yinelenen satırları da gösterir.
Tetikleyiciler, veritabanının Bütünlüğünü korumak için kullanılır. Tetikleyicinin çalıştırılıp çalıştırılmadığını kontrol etmek için denetim günlüklerini kontrol edebilirsiniz.
Tetikleyiciler talep üzerine çalıştırılamaz. Tanımlandıkları tabloda ilişkili bir eylem (ekleme, silme ve güncelleme) gerçekleştiğinde çağrılırlar. Tetikleyiciler, iş kurallarını, denetimi uygulamak ve ayrıca bilgi tutarlılığı kontrolleri için kullanılır.
İlk olarak, fonksiyonel gereksinimi alın. Ardından, tablo yapısını, Birleştirmeleri, İmleçleri ve Tetikleyicileri, kullanılan Depolanan yordamı ve diğer parametreleri anlayın. Daha sonra, bu nesnelere girdi olarak farklı değerlere sahip bir test durumu yazabilirsiniz.
DB testi, kullanıcılar tarafından görülemeyen arka uç bileşenlerin test edilmesini içerir. Veritabanı bileşenlerini ve MySQL ve Oracle gibi DBMS sistemlerini içerir.
Ön uç testi, bir uygulamanın işlevlerini ve formlar, grafikler, menüler, raporlar vb. Gibi bileşenlerini kontrol etmeyi içerir. Bu bileşenler, VB.net, C #, Delphi vb. Gibi ön uç geliştirme araçları kullanılarak oluşturulur.
Veritabanı testi gerçekleştirme süreci, diğer uygulamaların test edilmesine benzer. DB testi, aşağıdaki temel süreçlerle açıklanabilir -
- Ortamı kurma
- Bir test yapın
- Test sonucunu kontrol edin
- Beklenen sonuçlara göre doğrulama
- Bulguları ilgili paydaşlara rapor edin
Test senaryolarını geliştirmek için çeşitli SQL ifadeleri kullanılır. DB testi gerçekleştirmek için kullanılan en yaygın SQL ifadesi select ifadesidir. Bunun dışında çeşitli DDL, DML, DCL ifadeleri de kullanılabilir.
Example - Oluştur, Ekle, Seç, Güncelle vb.
Görünüm, kendi başına gerçekte var olmayan, bunun yerine bir veya daha fazla temel tablodan türetilen bir tablodur. Diğer bir deyişle, görünümü doğrudan temsil eden saklanan bir dosya yoktur, bunun yerine bir görünüm tanımı veri sözlüğünde depolanır.
Temel tabloların büyümesi ve yeniden yapılandırılması görünümlere yansıtılmaz. Böylece görünüm, kullanıcıları veri tabanındaki değişikliklerden izole edebilir. Bu nedenle mantıksal veri bağımsızlığını hesaba katar.
Kullanıcı görünümlerini ve bunların kavramsal şema ile eşleşmelerini belirtir.
Bir tabloyu herhangi bir bilgi kaybetmeden birden çok tabloya ayırma işlemidir. Normalleştirme, aşağıdaki hedeflere ulaşmak için yapılır -
- Artıklığı en aza indirmek için.
- Ekleme, silme ve anormallikleri en aza indirmek için.
İndeksleme, belirli verilerin ne kadar hızlı bulunabileceğini belirlemeye yönelik bir tekniktir. Sorgu performans optimizasyonu için kullanılır. İndeksleme aşağıdaki türlerde olabilir -
- İkili arama stili indeksleme
- B-Ağaç indeksleme
- Ters liste indeksleme
- Bellek yerleşik tablosu
- Tablo indeksleme
SQL, normalleştirilmiş ilişkisel veritabanı yapılarında veri erişim işlemleri için özel olarak tasarlanmış bir Yapılandırılmış Sorgu dilidir.
SQL ile diğer geleneksel programlama dilleri arasındaki temel fark, SQL deyimlerinin nasıl gerçekleştirileceğinden çok hangi veri işlemlerinin gerçekleştirilmesi gerektiğini belirlemesidir.
Saklanan prosedürler, kullanıcı tanımlı bir işlemi gerçekleştirmek için kullanılır. Depolanan bir yordam, bir dizi bileşik SQL deyimine sahip olabilir. Bir saklı yordam, SQL komutlarını yürütür ve sonucu istemciye döndürür.
PL / SQL, tüm veritabanı bilgisi erişim ifadeleri için imleçler kullanır. Dil, iki tür imleç kullanımını destekler - örtük ve açık.
Cold Backup- Yedek geri alma, örnek kapatıldığında veritabanı dosyalarının yedeklenmesi, günlüklerin yeniden yapılması ve kontrol dosyası olarak bilinir. Bu, genellikle diskten doğrudan banda bir dosya kopyasıdır. Tutarlı bir kopya garantilemek için örneği kapatmanız gerekir.
Soğuk yedekleme gerçekleştirilirse, veri dosyası kaybı durumunda kullanılabilen tek seçenek, tüm dosyaları en son yedeklemeden geri yüklemektir. Son yedeklemeden sonra gerçekleştirilen tüm değişiklikler.
Hot Backup- Bazı veritabanları dosyaların yedek kopyasını oluştururken kapanamaz, bu nedenle soğuk yedekleme mevcut bir seçenek değildir. Bu tür veritabanları için sıcak yedekleme kullanıyoruz.
SQL alt sorgusu, aynı anda iki veya daha fazla tabloyu sorgulamanın bir yoludur. Alt sorgunun kendisi, başka bir SQL SELECT ifadesinin WHERE yan tümcesinde bulunan ve parantez içine alınarak ayrılmış bir SQL SELECT ifadesidir. Bazı alt sorgular eşdeğer SQL birleştirme yapılarına sahiptir, ancak ilişkili alt sorgular bir birleştirme ile çoğaltılamaz
Böyle bir durumda, aşağıdaki yönleri test etmeniz gerekir -
- Birden çok değerli bağımlılıklar
- İşlevsel bağımlılıklar
- Aday anahtarlar
- Birincil anahtarlar
- Yabancı anahtarlar
Veritabanına gidip ilgili bir SQL sorgusu çalıştırabilirsiniz. WinRunner'da veritabanı kontrol noktası işlevini kullanabilirsiniz. Uygulama görüntüleme işlevi sağlıyorsa, aynısını ön uçtan doğrulayabilirsiniz.
Veriye dayalı test, uygulamanın birden çok test verisiyle test edileceği bir otomasyon test süreci olarak tanımlanır. Test cihazının sistemin önünde oturduğu ve ön uç arayüzden manuel olarak farklı yeni giriş değerleri girdiği yeniden test etmekten basit ve kolaydır.
Test senaryolarını yürüttükten ve önceden tespit edilmiş ve düzeltilmiş kusurları bulduğunuzda. Orijinal kusurun başarıyla giderildiğini doğrulamak için aynı testin farklı giriş değerleriyle yeniden yürütülmesine Yeniden test denir.
Yeniden test etme, küçük bir farkla Veriye Dayalı Test olarak da adlandırılır -
Retesting - Uygulama testi tamamen yeni veri kümesiyle yapılan manuel bir test sürecidir.
Data-driven Testing- Uygulamanın birden çok test verisi ile test edileceği bir Otomasyon test sürecidir. Test cihazının sistemin önünde oturduğu ve ön uç arayüzden manuel olarak farklı yeni giriş değerleri girdiği yeniden test etmekten basit ve kolaydır.
Dört tür veriye dayalı test vardır -
- Klavye aracılığıyla dinamik test verileri gönderimi
- .Txt, .doc düz dosyalar aracılığıyla Veriye Dayalı Testler
- Ön uç nesneler aracılığıyla Veriye Dayalı Testler
- Excel sayfası aracılığıyla Veriye Dayalı Testler
Performans testi, bir sistemin ağır bir iş yükü altında hız, hassasiyet ve kararlılık açısından nasıl performans gösterdiğini belirleyen bir yazılım test tekniğidir.
Veritabanı kurtarma testi yapılırken aşağıdaki kilit noktalar dikkate alınmalıdır -
Veritabanı sisteminde değişikliklerin veya değişikliklerin meydana geldiği zaman aralığı.
Kurtarma planınızın uygulanmasını istediğiniz dönem.
Veri tabanı sistemindeki verilerin hassasiyeti. Veriler ne kadar kritikse, yazılımı o kadar düzenli olarak test etmeniz gerekecektir.
Test verilerini oluşturmak için aşağıdaki araçlar kullanılır -
- Veri Fabrikası
- DTM Veri Oluşturucu
- Turbo Verileri
Kullanılabilecek iki tür yedekleme vardır -
Physical Backups- Fiziksel yedekleme, Veritas net back, IBM Tivoli Manager gibi üçüncü taraf yedekleme araçlarını veya işletim sistemi yardımcı programlarını kullanarak kullanıcı yöneticisi yedeklemelerini kullanarak yedeklemeyi içerir.
Logical Backups - Veritabanının mantıksal yedeklemesi, tablolar, dizinler, prosedürler vb. Gibi mantıksal nesnelerin yedeklenmesini içerir.
Veri yedeklemesi almak için yaygın bir araç, veritabanı yedeklemesi almak için bir Oracle yardımcı programı olan Oracle Recovery Manager'dır (RMAN).
Veritabanı kurtarma testinde aşağıdaki eylemler gerçekleştirilir -
- Veritabanı sisteminin test edilmesi
- SQL dosyalarının test edilmesi
- Kısmi dosyaların test edilmesi
- Veri yedeklemesinin test edilmesi
- Yedekleme aracının test edilmesi
- Günlük yedeklerini test etme
Veritabanı güvenlik testleri, güvenlik mekanizmalarındaki döngü deliklerini bulmak ve ayrıca veritabanı sisteminin güvenlik açıklarını veya zayıflıklarını bulmak için yapılır.
Aşağıdaki yönleri kontrol etmek için veritabanı güvenlik testi yapılır -
- Authentication
- Authorization
- Confidentiality
- Availability
- Integrity
- Resilience
SQL Enjeksiyon tehdidi, kötü amaçlı SQL ifadelerinin veritabanı sistemine eklendiği ve veritabanı sisteminden kritik bilgileri almak için yürütüldüğü bir veritabanı sistemindeki en yaygın saldırı türüdür. Bu saldırı, kullanıcı uygulamalarının uygulanmasındaki boşluklardan yararlanır. Bu kullanıcı girişlerini önlemek için alanlar dikkatlice ele alınmalıdır.
Veritabanı güvenlik testi yapmak için aşağıdaki araçlar kullanılabilir: Zed Attack Proxy, Paros, Social Engineer Toolkit, Skipfish, Vega, Wapiti ve Web Scarab.
Veritabanı testi yapılırken karşılaşılan genel zorluklar şunlardır:
- Test kapsamı çok büyük
- Ölçeği küçültülmüş test veritabanı
- Veritabanı yapısındaki değişiklikler
- Karmaşık Test Planları
- İyi SQL bilgisi