Bu soruya tam bir cevap çok uzun olacaktır. Ana noktalardan bahsetmeye çalışacağım.
Endişeleri ayırmak için aşağıdakilere yönelik testlere bakabilirsiniz:
A - Veritabanı tasarımını doğrulayın.
B - Program (lar) ın veritabanıyla doğru bir şekilde etkileşime girdiğini doğrulayın.
Veritabanı tasarımı doğrulaması, veritabanını tasarlayan kişiler tarafından gerçekleştirilmelidir. Geliştiriciler (birim testi yaparken) daha çok (B) kısmı ile ilgilenmelidir. İki test türü arasında gördüğüm temel fark kullanılan araçlardır. (A) için proje kodundan bağımsız bir ortam kullanırken, (B) üzerinde elbette projenin kodunu kullanırsınız. Aşağıdaki metinde her ikisini de karıştıracağım.
Belirli sorularınızı cevaplamak için:
Sütun etki alanı değer kuralları
Her sütunun ilişkili bir veri türü vardır. Her sütun, doğru veri türünü temsil ettiğini kanıtlamak için iş kurallarına göre doğrulanmalıdır. Sütun veri türü iş gereksinimleriyle uyumlu değilse veya kod, veritabanında tanımlanma biçiminden farklı bir veri türü kullanıyorsa sorunlar oluşabilir.
Örneğin:
Sütun küçük int olarak tanımlanmışsa, metni depolayamamalısınız. Bu, özellikle sütunlar isteğe bağlı olduğunda önemli bir testtir, çünkü birisi gerçekten içine bazı veriler girene kadar fark edilmeyebilir.
İşletmenin gerçekleşmesini gerektirdiği bir sütunda negatif bir değer saklayabilir misiniz?
Sütun varsayılan değer kuralları
Bazı sütunlar, ekleme sırasında bir değer sağlamazsa, veritabanının varsayılan değeri alacağı DDL'de (Veri Tanımı Dili) varsayılan bir değer belirtimi ile ilişkilidir. Bu değer geçilmez ve veritabanının depoladığı sonuç değeri gözlenerek test edilebilir. Bu sınama, Null olabilecek sütunların denetlenmesini de içerebilir. Sütun üzerinde benzersiz bir dizin oluşturulmadıkça DDL'den doğrulanabildiğinden bu nadiren bir test gerektirir.
Değer varlığı kuralları
Bunu anladığım gibi, eklenen veya güncellenen verilerin veritabanında beklendiği gibi gösterildiğini doğrularsınız.
Satır değeri kuralları
Bunun tam olarak ne anlama geldiği konusunda net değilim.
Boyut kuralları
Her sütunun, DDL'de nasıl tanımlandığına bağlı olarak veritabanında bir boyutu vardır. gereksinimlere uyan herhangi bir değerin (GUI formuna girilen veya bir hesaplama çıktısı olarak ortaya çıkan) sütunda doğru saklanacağından emin olmak istersiniz. Örneğin, Küçük Tamsayı veri türü 5 milyarlık bir değeri depolamanıza izin vermez. Ayrıca, VARCHAR2 (30) olarak tanımlanan bir ad 40 karakter içermez, bu nedenle iş kuralları burada, özellikle sütun verileri toplamak için kullanıldığında çok açık olmalıdır. Bu gibi durumlarda ne olduğunu test etmek istersiniz.
nasıl / nereden başlayacağınıza dair yönergeler
Bunu yapmanın bir yolu bir test planı oluşturmaktır. Spesifikasyonların (gereksinimler belgeleri ve Kullanım Örnekleri gibi) ve yazılımın doğru sürümünü kullandığınızdan emin olmak istiyorsunuz. Ayrıca bu testleri Birim Testi (varsa) tarafından yapılan testlerle koordine etmeniz gerekir. Tekrar yapmanıza gerek olmayan yinelenen testler bulabilirsiniz. Gereksinim duyduğunuzda belirli bir testi tekrarlayabilmeniz için testten önce veritabanının bir kopyasını almak istiyorsunuz. DBA size bu konuda yardımcı olabilir. Ayrıca, bu testleri nasıl belgelendirdiklerini ve test kapsamını onlarla nasıl doğruladıklarını ekibinize danışmanız gerekir. Veritabanınızı mantıksal parçalara bölebilir ve her mantıksal parçayı ayrı ayrı test etmeye başlayabilirsiniz. Sınama işlemi, veritabanının DDL'sini inceleyerek ve sütunların işletme tarafından gerektiği şekilde doğru tanımlandığını doğrulayarak başlayabilir. Testlerin çoğunu gerçekleştirmek için uygulamanın başka bir aracını değil yazılımını kullanıyor olmalısınız. Örneğin, aşağıdakileri sorun:
Sütunun tanımlı türde olması gerekiyor mu (Int olarak Ad oluşturmanın anlamı yoktur).
Boyut iş gereksinimleriyle uyumlu mu?
İşletme gereksinimlerindeki tüm sütunlar veritabanında mı bulunuyor?
Boş sütunlar gerçekten isteğe bağlı mı?
vb.
Daha sonra, yukarıdakileri test etmek için test senaryoları tasarlayabilirsiniz. Testlerin çoğunu yapmak için GUI'yi kullanabilirsiniz.
Bahsetmediğiniz başka önemli veritabanı testleri de vardır. Bunlar:
1 - Birincil anahtarların işletme açısından gerçekten benzersiz olduğunu test etmek.
2 - Benzersiz dizinlerin (PK dışında) gerçekten iş açısından benzersiz olduğunu test etmek.
3 - Yabancı Anahtar kısıtlamalarının test edilmesi çalışması.
4 - Bir satır silindiğinde ne olacağını ve ilgili satırlar üzerindeki etkisini test etme.
5 - CHEKC, varsa Tetikleyiciler gibi özel veritabanı yapılarına ilişkin diğer testler.
6 - Tablo normalleştirmesini düzeltin ve normalleştirilmiş sütunlar doğru değerleri tutar.
Yukarıdakiler tam bir liste değildir, ancak başlamanız gerekir.