database testing complete guide why
Pratik İpuçları ve Örneklerle Veritabanı Testi İçin Eksiksiz Kılavuz:
Bilgisayar uygulamaları, Android gibi teknolojiler ve ayrıca birçok Smartphone uygulamasıyla bugünlerde daha karmaşık. Ön uçlar ne kadar karmaşıksa, arka uçlar o kadar karmaşık hale gelir.
Bu nedenle, veritabanı testi hakkında bilgi edinmek ve güvenlik ve kaliteli veritabanlarını sağlamak için Veritabanlarını etkili bir şekilde doğrulayabilmek çok daha önemlidir.
Bu eğiticide, Veri Testi hakkında her şeyi öğreneceksiniz - neden, nasıl ve neyi test edeceksiniz?
Veritabanı, bir Yazılım Uygulamasının kaçınılmaz parçalarından biridir.
Web, masaüstü veya mobil, istemci-sunucu, eşler arası, kurumsal veya bireysel işletme olması fark etmez; Veritabanı, arka uçta her yerde gereklidir.
Benzer şekilde, Sağlık Hizmeti, Finans, Kiralama, Perakende, Posta uygulaması veya bir uzay gemisini kontrol etme; a Veritabanı her zaman sahnenin arkasındadır.
Uygulama karmaşıklığı arttıkça daha güçlü ve güvenli bir Veritabanına duyulan ihtiyaç ortaya çıkar. Aynı şekilde işlem sıklığı yüksek olan uygulamalar için ( Örneğin, Bankacılık veya Finans uygulaması), tam özellikli bir DB Aracının gerekliliği birleşti.
Günümüzde, geleneksel veritabanlarının üstesinden gelemeyeceği kadar büyük ve karmaşık büyük verilerimiz var.
Bir kaç tane var Veritabanı araçları piyasada mevcuttur Örneğin, MS-Access, MS SQL Server, SQL Server, Oracle, Oracle Financial, MySQL, PostgreSQL, DB2, Toad, Admirer, vb. Bu araçlar maliyet, sağlamlık, özellikler ve güvenlik açısından farklılık gösterir. Bunların her biri kendi yararları ve dezavantajları vardır.
Ne öğreneceksin:
- Veritabanını Neden Test Etmelisiniz?
- Ne Test Edilmeli (Veritabanı Test Kontrol Listesi)
- Veritabanı Nasıl Test Edilir (Adım Adım İşlem)
Veritabanını Neden Test Etmelisiniz?
Aşağıda, bir DB'nin aşağıdaki yönlerinin neden doğrulanması gerektiğini göreceğiz:
# 1) Veri Eşleme
Yazılım sistemlerinde, veriler genellikle UI'den (kullanıcı arabirimi) arka uç DB'ye ve tersi yönde gidip gelir. Dolayısıyla, izlenecek bazı yönler şunlardır:
- UI / ön uç formlarındaki alanların, DB tablosundaki karşılık gelen alanlarla tutarlı bir şekilde eşlenip eşleşmediğini kontrol edin. Tipik olarak bu eşleştirme bilgileri, gereksinim belgelerinde tanımlanır.
- Bir uygulamanın ön ucunda belirli bir eylem gerçekleştirildiğinde, arka uçta karşılık gelen bir CRUD (Oluştur, Geri 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 etmelidir.
# 2) ACID Özelliklerinin Doğrulanması
Atomiklik, Tutarlılık, İzolasyon ve Dayanıklılık. Bir DB'nin gerçekleştirdiği her işlem bu dört özelliğe uymak zorundadır.
- Atomiklik bir işlemin başarısız olduğu veya başarılı olduğu anlamına gelir. Bu, işlemin tek bir kısmı başarısız olsa bile, tüm işlemin başarısız olduğu anlamına gelir. Genellikle buna 'ya hep ya hiç' kuralı denir.
- Tutarlılık : Bir işlem her zaman geçerli bir DB durumu ile sonuçlanır
- İzolasyon : Birden fazla işlem varsa ve hepsi bir kerede yürütülüyorsa, DB'nin sonucu / durumu, birbiri ardına yürütülmüş gibi aynı olmalıdır.
- Dayanıklılık : Bir işlem yapıldıktan ve gerçekleştirildikten sonra, güç kaybı veya çökme gibi hiçbir dış faktör onu değiştiremez
Önerilen okuma = >> MySQL İşlem Eğitimi
# 3) Veri Bütünlüğü
Herhangi biri için CRUD İşlemleri , paylaşılan verilerin güncellenmiş ve en son değerleri / durumu tüm formlarda ve ekranlarda görünmelidir. Değer bir ekranda güncellenmemeli ve başka bir ekranda daha eski bir değer göstermemelidir.
Uygulama yürütülürken, son kullanıcı, esas olarak DB Aracı tarafından kolaylaştırılan 'CRUD' işlemlerini kullanır .
C: Oluştur - Kullanıcı herhangi bir yeni işlemi 'Kaydet' yaptığında, 'Oluştur' işlemi gerçekleştirilir.
R: Al - Kullanıcı kaydedilmiş herhangi bir işlemi 'Ara' veya 'Görüntüle' olduğunda, 'Geri Al' işlemi gerçekleştirilir.
U: Güncelleme - Kullanıcı mevcut bir kaydı 'Düzenle' veya 'Değiştir' durumunda, DB'nin 'Güncelleme' işlemi gerçekleştirilir.
D: Sil - Bir kullanıcı sistemden herhangi bir kaydı ‘Kaldırdığında’, DB’nin ‘Silme’ işlemi gerçekleştirilir.
Son kullanıcı tarafından gerçekleştirilen herhangi bir veritabanı işlemi her zaman yukarıdaki dörtten biridir.
Bu nedenle, DB test durumlarınızı, tutarlı bir şekilde aynı olup olmadığını görmek için göründüğü tüm yerlerdeki verileri kontrol etmeyi içerecek şekilde tasarlayın.
# 4) İş Kuralı Uygunluğu
Veritabanlarında daha fazla karmaşıklık, ilişkisel kısıtlamalar, tetikleyiciler, depolanmış prosedürler vb. Gibi daha karmaşık bileşenler anlamına gelir. Bu nedenle, test uzmanlarının bu karmaşık nesneleri doğrulamak için uygun SQL sorguları bulması gerekecektir.
Ne Test Edilmeli (Veritabanı Test Kontrol Listesi)
# 1) İşlemler
İşlemleri test ederken, ACID özelliklerini karşıladıklarından emin olmak önemlidir.
Yaygın olarak kullanılan ifadeler şunlardır:
- İŞLEM İŞLEMİNE BAŞLA #
- İŞLEM İŞLEMİNİ SONLANDIRMA #
Rollback ifadesi, veritabanının tutarlı bir durumda kalmasını sağlar.
- GERİ DÖNME İŞLEMİ #
Bu ifadeler yürütüldükten sonra, değişikliklerin yansıtıldığından emin olmak için bir Seçim kullanın.
- TABLENAME'DEN SEÇ *
# 2) Veritabanı Şemaları
Bir Veritabanı Şeması, verilerin bir DB içinde nasıl düzenleneceğinin resmi bir tanımından başka bir şey değildir. Test etmek için:
- Veritabanının çalıştığı yere göre Gereksinimleri belirleyin. Örnek Gereksinimler:
- Diğer alanlar oluşturulmadan önce oluşturulacak birincil anahtarlar.
- Yabancı anahtarlar, kolay erişim ve arama için tamamen indekslenmelidir.
- Belirli karakterlerle başlayan veya biten alan adları.
- Belirli değerlerin eklenebileceği veya eklenemeyeceği bir kısıtlamaya sahip alanlar.
- Alaka düzeyine göre aşağıdaki yöntemlerden birini kullanın:
- SQL Sorgusu DESC
şemayı doğrulamak için.
- Tek tek alanların adlarını ve değerlerini doğrulamak için normal ifadeler
- SchemaCrawler gibi araçlar
# 3) Tetikleyiciler
Belirli bir masada belirli bir olay meydana geldiğinde, bir kod parçasının (bir tetikleyicinin) yürütülmesi için otomatik talimat verilebilir.
Örneğin, yeni bir öğrenci bir okula katıldı. Öğrenci 2 ders alıyor: matematik ve fen. Öğrenci, 'öğrenci tablosu' na eklenir. Bir Tetikleyici, öğrenciyi öğrenci tablosuna ekledikten sonra ilgili konu tablolarına ekleyebilir.
Test etmenin yaygın yöntemi, önce Tetikleyiciye gömülü SQL sorgusunu bağımsız olarak yürütmek ve sonucu kaydetmektir. Tetikleyiciyi bir bütün olarak yürüterek bunu takip edin. Sonuçları karşılaştırın.
Bunlar hem Kara kutu hem de Beyaz kutu test aşamalarında test edilir.
sahte e-posta nasıl alınır
- Beyaz kutu testi : Stub'lar ve Sürücüler, tetikleyicinin çağrılmasına neden olacak verileri eklemek veya güncellemek veya silmek için kullanılır. Temel fikir, ön uç (UI) ile entegrasyon yapılmadan önce bile DB'yi tek başına test etmektir.
- Kara kutu testi :
için) UI ve DB'den bu yana, entegrasyon artık mevcuttur; Tetikleyicinin çağrılacağı şekilde ön uçtan veri Ekleyebilir / Silebilir / Güncelleyebiliriz. Bunu takiben, Tetikleyicinin amaçlanan işlemi gerçekleştirmede başarılı olup olmadığını görmek için DB verilerini almak için Select deyimleri kullanılabilir.
b) Bunu test etmenin ikinci yolu, Tetikleyiciyi çağıracak verileri doğrudan yüklemek ve amaçlandığı gibi çalışıp çalışmadığını görmektir.
# 4) Saklanan Prosedürler
Depolanan Prosedürler, kullanıcı tanımlı işlevlere aşağı yukarı benzerdir. Bunlar Çağrı Prosedürü / Yürütme Prosedürü ifadeleriyle çağrılabilir ve çıktı genellikle sonuç kümeleri biçimindedir.
Bunlar RDBMS'de saklanır ve uygulamalar için kullanılabilir.
Bunlar ayrıca şu durumlarda da test edilir:
- Beyaz kutu testi: Stub'lar, saklı yordamları çağırmak için kullanılır ve ardından sonuçlar beklenen değerlere göre doğrulanır.
- Kara kutu testi: Uygulamanın ön ucundan (UI) bir işlem gerçekleştirin ve saklı yordamın yürütülmesini ve sonuçlarını kontrol edin.
# 5) Alan Kısıtlamaları
Varsayılan değer, Benzersiz değer ve Yabancı anahtar:
- Veritabanı nesnesi koşulunu uygulayan bir ön uç işlemi gerçekleştirin
- Sonuçları bir SQL Sorgusu ile doğrulayın.
Belirli bir alan için varsayılan değeri kontrol etmek oldukça basittir. İş kuralı doğrulamasının bir parçasıdır. Manuel olarak yapabilir veya QTP gibi araçlar kullanabilirsiniz. Manuel olarak, ön uçtan alanın varsayılan değerinden farklı bir değer katacak bir eylem gerçekleştirebilir ve bunun bir hatayla sonuçlanıp sonuçlanmadığını görebilirsiniz.
Aşağıda örnek bir VBScript kodu verilmiştir:
Function VBScriptRegularexpressionvlaidation(pattern , string_to_match) Set newregexp = new RegExp newregexp.Pattern = “
” newregexp.Ignorecase = True newregexp.Global = True VBScriptRegularexpressionvlaidation = newregexp.Test(string_to_match) End Function Msgbox VBScriptRegularexpressionvlaidation(pattern , string_to_match) Yukarıdaki kodun sonucu, varsayılan değer varsa Doğru, yoksa Yanlış şeklindedir.
Benzersiz değerin kontrol edilmesi, tam olarak varsayılan değerler için yaptığımız şekilde yapılabilir. Kullanıcı arayüzünden bu kuralı ihlal edecek değerler girmeyi deneyin ve bir hata görüntülenip görüntülenmediğine bakın.
Otomasyon VB Komut Dosyası kodu şunlar olabilir:
Function VBScriptRegularexpressionvlaidation(pattern , string_to_match) Set newregexp = new RegExp newregexp.Pattern = “
” newregexp.Ignorecase = True newregexp.Global = True VBScriptRegularexpressionvlaidation = newregexp.Test(string_to_match) End Function Msgbox VBScriptRegularexpressionvlaidation(pattern , string_to_match) İçinYabancı anahtarkısıtlama doğrulaması, kısıtlamayı ihlal eden verileri doğrudan giren veri yüklerini kullanır ve uygulamanın bunları kısıtlayıp kısıtlamadığını kontrol eder. Arka uç veri yüklemesinin yanı sıra, ön uç UI işlemlerini de kısıtlamaları ihlal edecek şekilde gerçekleştirin ve ilgili hatanın görüntülenip görüntülenmediğine bakın.
Veri Test Faaliyetleri
Veritabanı Test Edicisi Test Faaliyetlerini Takip Etmeye Odaklanmalıdır:
# 1) Veri Eşlemeyi Sağlayın:
Veri Haritalama, veri tabanındaki kilit noktalardan biridir ve her yazılım testçisi tarafından titizlikle test edilmelidir.
AUT ve DB'nin farklı formları veya ekranları arasındaki eşlemenin yalnızca doğru değil, aynı zamanda tasarım belgelerine (SRS / BRS) veya koda göre yapıldığından emin olun. Temel olarak, her ön uç alanı arasındaki eşlemeyi karşılık gelen arka uç veritabanı alanıyla doğrulamanız gerekir.
Tüm CRUD işlemleri için, kullanıcı uygulamanın GUI'sinden 'Kaydet', 'Güncelle', 'Ara' veya 'Sil' i tıkladığında ilgili tabloların ve kayıtların güncellendiğini doğrulayın.
Doğrulamanız gerekenler:
- Tablo eşleme, sütun eşleme ve Veri türü eşleme.
- Arama Verisi Eşleme.
- Kullanıcı arayüzündeki her kullanıcı işlemi için doğru CRUD işlemi başlatılır.
- CRUD işlemi başarılı.
# 2) İşlemlerin ACID Özelliklerini Sağlayın:
DB İşlemlerinin ACID özellikleri ' KİME tomicity ',' C devamlılık ',' ben çözüm 've' D urability ’. Veritabanı testi faaliyeti sırasında bu dört özelliğin uygun şekilde test edilmesi gerekir. Her bir işlemin veritabanının ACID özelliklerini karşıladığını doğrulamanız gerekir.
Aşağıdaki SQL kodu üzerinden basit bir örnek alalım:
CREATE TABLE acidtest (A INTEGER, B INTEGER, CHECK (A + B = 100));
ACID test tablosunun iki sütunu olacaktır - A ve B. A ve B'deki değerlerin toplamının her zaman 100 olması gerektiğine dair bir bütünlük kısıtlaması vardır.
Atomiklik testi Bu tabloda gerçekleştirilen herhangi bir işlemin tamamının veya hiçbirinin olmamasını sağlar, yani işlemin herhangi bir adımı başarısız olursa hiçbir kayıt güncellenmez.
Tutarlılık testi A veya B sütunundaki değer her güncellendiğinde, toplamın her zaman 100 olarak kalmasını sağlar. Toplam tutar 100'den farklıysa, A veya B'de ekleme / silme / güncellemeye izin vermez.
İzolasyon testi İki işlem aynı anda gerçekleşiyorsa ve ACID test tablosunun verilerini değiştirmeye çalışıyorsa, bu işlemlerin ayrı olarak yürütülmesini sağlayacaktır.
Dayanıklılık testi bu tablo üzerinden bir işlem yapıldığında, güç kaybı, çökme veya hatalar durumunda bile işlemin böyle kalmasını sağlayacaktır.
Uygulamanız dağıtılmış veritabanını kullanıyorsa, bu alan daha titiz, kapsamlı ve keskin testler gerektirir.
# 3) Veri Bütünlüğünü Sağlayın
Farklı uygulama modüllerinin (yani ekranlar veya formlar) aynı verileri farklı şekillerde kullandığını ve veriler üzerinde tüm CRUD işlemlerini gerçekleştirdiğini düşünün.
Bu durumda, en son veri durumunun her yere yansıtıldığından emin olun. Sistem, güncellenmiş ve en son değerleri veya bu tür paylaşılan verilerin durumunu tüm formlarda ve ekranlarda göstermelidir. Buna Veri Bütünlüğü denir.
Veritabanı Veri Bütünlüğünü doğrulamak için test senaryoları:
- Referans tablosu kayıtlarını güncellemek için tüm Tetikleyicilerin yerinde olup olmadığını kontrol edin.
- Her tablonun ana sütunlarında herhangi bir yanlış / geçersiz veri olup olmadığını kontrol edin.
- Tablolara yanlış veri eklemeye çalışın ve herhangi bir arıza olup olmadığını gözlemleyin.
- Ebeveynini yerleştirmeden önce bir çocuk yerleştirmeye çalışırsanız ne olacağını kontrol edin (Birincil ve yabancı anahtarlarla oynamayı deneyin).
- Başka herhangi bir tablodaki veriler tarafından hala başvurulan bir kaydı silerseniz, herhangi bir arıza olup olmadığını test edin.
- Çoğaltılmış sunucuların ve veritabanlarının senkronize olup olmadığını kontrol edin.
# 4) Uygulanan İşletme Kurallarının Doğruluğunu Sağlayın:
Günümüzde Veritabanları sadece kayıtları saklamak için tasarlanmamıştır. Aslında Veritabanları, geliştiricilere iş mantığını DB düzeyinde uygulamak için yeterli destek sağlayan son derece güçlü araçlara dönüşmüştür.
Güçlü özelliklerin bazı basit örnekleri, 'Referans Bütünlüğü', İlişkisel kısıtlamalar, Tetikleyiciler ve depolanan prosedürlerdir.
Dolayısıyla, geliştiriciler DB'ler tarafından sunulan bunları ve diğer birçok özelliği kullanarak iş mantığını DB düzeyinde uygular. Test uzmanı, uygulanan iş mantığının doğru olduğundan ve doğru çalıştığından emin olmalıdır.
Yukarıdaki noktalar, DB'yi test etmenin en önemli dört 'Ne Yapılması' nı açıklamaktadır. Şimdi 'Nasıl Yapılır' kısmına geçelim.
Veritabanı Nasıl Test Edilir (Adım Adım İşlem)
Genel test süreci test veritabanı, diğer uygulamalardan çok farklı değildir.
Temel adımlar şunlardır:
Aşama 1) Çevreyi hazırlayın
Adım 2) Bir test yapın
Aşama 3) Test sonucunu kontrol edin
Adım 4) Beklenen sonuçlara göre doğrulayın
Adım 5) Bulguları ilgili paydaşlara rapor edinTestleri geliştirmek için genellikle SQL sorguları kullanılır. En sık kullanılan komut 'Seç' dir.
Nereden * seçin
Select dışında, SQL'de 3 önemli komut türü vardır:
- DDL: Veri tanımlama dili
- DML: Veri işleme dili
- DCL: Veri kontrol dili
En sık kullanılan ifadeler için sözdizimini görelim.
Veri Tanımlama dili Tabloları (ve dizinleri) işlemek için CREATE, ALTER, RENAME, DROP ve TRUNCATE kullanır.
Veri işleme dili Kayıt eklemek, güncellemek ve silmek için ifadeler içerir.
Veri kontrol dili: Verilere erişim ve manipülasyon için kullanıcılara yetki vermekle ilgilenir. Grant ve Revoke, kullanılan iki ifadedir.
İzin sözdizimi:
Seçme / güncelleme izni ver
Açık
İçin;Sözdizimini iptal edin:
Revokeselect / update
açık
kimden;Bazı Pratik İpuçları
# 1) Sorguları kendiniz yazın:
Veritabanını doğru bir şekilde test etmek için, test uzmanı SQL ve DML (Veri İşleme Dili) ifadeleri hakkında çok iyi bilgiye sahip olmalıdır. Test uzmanı ayrıca AUT'nin dahili DB yapısını bilmelidir.
Daha iyi kapsam için GUI ve veri doğrulamayı ilgili tablolarda birleştirebilirsiniz. SQL sunucusunu kullanıyorsanız, sorgu yazmak, bunları yürütmek ve sonuçları almak için SQL Query Analyzer'ı kullanabilirsiniz.
Bu, uygulama küçük veya orta düzeyde karmaşık olduğunda bir veritabanını test etmenin en iyi ve sağlam yoludur.
Uygulama çok karmaşıksa, test edenin gerekli tüm SQL sorgularını yazması zor veya imkansız olabilir. Karmaşık sorgular için geliştiriciden yardım alırsınız. Bu yöntemi test etmede size güven verdiği ve ayrıca SQL becerilerinizi geliştirdiği için her zaman tavsiye ederim.
# 2) Her tablodaki verileri inceleyin:
CRUD işlemlerinin sonuçlarını kullanarak veri doğrulaması yapabilirsiniz. Bu, veritabanı entegrasyonunu bildiğiniz zaman uygulama kullanıcı arayüzü kullanılarak manuel olarak yapılabilir. Ancak, farklı veritabanı tablolarında çok büyük veriler olduğunda bu sıkıcı ve külfetli bir görev olabilir.
Manuel Veri Testi için Veritabanı test edicisi, veritabanı tablo yapısı hakkında iyi bir bilgiye sahip olmalıdır.
# 3) Geliştiricilerden soru alın:
Bu, Veritabanını test etmenin en basit yoludur. GUI'den herhangi bir CRUD işlemini gerçekleştirin ve geliştiriciden elde edilen ilgili SQL sorgularını yürüterek etkilerini doğrulayın. Ne iyi bir SQL bilgisi gerektirir ne de uygulamanın DB yapısı hakkında iyi bir bilgi gerektirir.
Ancak bu yöntemin dikkatli kullanılması gerekiyor. Geliştirici tarafından verilen sorgu anlamsal olarak yanlışsa veya kullanıcının gereksinimlerini doğru bir şekilde karşılamıyorsa? İşlem, verileri doğrulamakta başarısız olacaktır.
# 4) Veritabanı Otomasyon Test araçlarından yararlanın:
Veri Test süreci için kullanılabilen birkaç araç vardır. İhtiyaçlarınıza göre doğru aracı seçmeli ve onu en iyi şekilde kullanmalısınız.
=> İşte kontrol etmeniz gereken EN İYİ DB Test Araçlarının listesi
Sonuç
Bir veritabanında test edilecek tüm bu özellikler, faktörler ve süreçlerle, test uzmanlarının temel Veritabanı konseptlerinde teknik olarak yetkin olmaları için artan bir talep vardır. Bir veritabanını test etmenin yeni darboğazlar oluşturduğuna ve çok fazla ek harcama olduğuna dair bazı olumsuz inanışlara rağmen - bu, önemli ölçüde ilgi ve talep çeken bir test alanıdır.
Önerilen okuma = >> Veritabanı Güvenlik Testi nedir
Umarım bu eğitim, bunun neden böyle olduğuna odaklanmaya yardımcı olmuştur ve ayrıca size bir Veritabanını test etmeye neyin girdiği konusunda temel ayrıntıları sağlamıştır.
Lütfen geri bildiriminizi bize bildirin ve ayrıca DB testi üzerinde çalışıyorsanız kişisel deneyimlerinizi paylaşın.
Önerilen Kaynaklar
- JMeter ile Veritabanı Testi
- 40'tan Fazla En İyi Veritabanı Test Aracı - Popüler Veri Test Çözümleri
- XML'den Veritabanı Testine Basit Bir Yaklaşım
- ETL Test Veri Ambarı Test Eğitimi (Tam Kılavuz)
- Veri Taşıma Testi Eğitimi: Eksiksiz Bir Kılavuz
- Karmaşık Veri Modelleri Oluşturmak için En İyi 10 Veritabanı Tasarım Aracı
- Örneklerle Veri Ambarı Test Eğitimi | ETL Test Kılavuzu
- Oracle Database Nasıl Test Edilir
^
- SQL Sorgusu DESC