Öncelikle bu konuları yeni keşfetmiş/alışkanlık haline getirmeye çalışan biri olarak ,özellikle test konusunda yazı yazmak istiyorum .Buna ek olarak havada uçuşan tdd,unit testing gibi kavramlardan önce ,ilk olarak temeline inmek istiyorum. .Yazılım geliştirme aşamasında hatasız bir şekilde kullanıcıya bir ürünü teslim etmek veya bir sorunu kusursuzca çözmek isteriz ancak bu imkansız fakat sorunları en aza indirmek mümkündür.
TEST NEDİR ?
Bir kimsenin, bir topluluğun ya da bir şeyin doğal ya da sonradan kazanılmış yeteneklerini, bilgi ve becerilerini ölçmeye ve anlamaya yarayan sınama. Sözlük tanımını geçip işin matematiğine geçelim 🙂
MATEMATİK KISMI
Matematik içerisinde ufak bir örnek düşünelim .Klasik bir deyiş olan , türevin tersi integral,integralin tersi türev mantığını kullanalım.
x^2 nin integrali = ∫x^2dx=x^3/3 +C, x^3/3nin türevi ise d/dx x^3/3 = x^2 sonucu çıkar yani yaptığımız bir işlemin tersini yaparak yaptığımız işlemi kontrol edebiliriz.Şimdi ise biraz elimizi kirletip kod yazalım.
1 2 3 4 5 6 7 8 9 10 11 |
def square(x): return x*x; def test(x): if square(x)< 0: print("hata var") else: print("hata yok") test(3); |
Ufak bir kare alma fonksiyonu ve onun testini basit bir şekilde yazdık,Bir sayının karesi negatif olamayacağı için.Bundan dolayı girilen değerleri bu şekilde kontrol edebiliriz.Bir örnek daha yapalım burada amacımız , 1 den 4 e kadar sayılar toplamı 2 yi ,aşmayacak bir fonksiyon yazalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<html> <head> </head> <body> <script> function calculate(a,b){ return a+b; } function test(x,y){ if(calculate(x,y)==2){ console.log("test calisiyor"); }else{ console.log("hata var"); } } for (x = 0; x < 4; x++) { for (y= 0; y < 4; y++) { test(x,y); } } </script> </body> </html> |
Gördüğümüz gibi hatalı veriler karşımızda çıktı ve test sayesinde hatalı değerleri görmüş olduk.
YAZILIM GELİŞTİRME İÇERİSİNDE TESTİNG
İşin matematiği ve ana yapısını kavradıysak gelelim ,havada uçuşan test tiplerini ,tdd ,unit testing,test kavramları açıklayalım .
TEST TİPLERİ
1.Otomatik 2.Manuel
MANUEL TEST
Aslında yukarıda kendi elimizle yazdığımız kodlar aslında manuel test hazırladık.Bu şekilde zaten manuel test yazıyoruz.
OTOMATİK TEST
Otomatik test zaten araçları kullanıyoruz,örneğin Selenium ,testbone gibi araçlar zaten hayatımızı kurtarıcı hale getiriyor.
TDD NEDİR?
Tes,t driven development(test güdümlü geliştirme) ,Kent Beck tarafından ortaya atılan bir tekniktir.Kısacası 1.Test yaz,2.Testleri çalıştır, 3.Biraz kod yaz,4.Testleri yaz ve kodu tekrar düzenle,5.ve bunu sonsuz defa yaparsak bu tdd dir 🙂
Temel seviyede olayı kavradık ,bundan sonra test tekniklerini canlı bir şekilde kodlayacağız.Aşağıdaki kaynakçalarda güzel makalelerde işinize kodlayacaktır.Mutlaka geri dönüşlerinizi bekliyorum ,herkese iyi çalışmalar.
KAYNAKÇALAR
- https://www.dubluve.net/2012/09/27/test-driven-development-test-gudumlu-gelistirme/
- http://www.kurumsaljava.com/2012/09/17/veresiye-satan-yazilimci/
- https://medium.com/@cengizhandumlu.35/unit-testing-nedir-ve-nas%C4%B1l-yaz%C4%B1l%C4%B1r-446073767e60
- https://www.tutorialspoint.com/software_testing/software_testing_types.htm