SlideShare a Scribd company logo
1 of 9
İsim&Soyisim : Serdar SÖNMEZ
Proje Konusu : Unit Testing(Birim Testi)
Universite : Uluslararası Kıbrıs Üniversitesi
Hata Ayıklama
• Proğramcılığın kaçınılmaz uğraşlarından birisi
hata ayıklamaktır.
• İçinde bilgisayar yazılımı içeren her cihaz
yazılım hataları içerebilir.
• Yazılım hatalarına örnek verecek olursak,kol
saati gibi basit elektronik cihazlardan uzay
aracı gibi büyük sistemlere kadar örnek
verebiliriz.
Hata Nedenleri
Yazılım hatalarının çok çeşitli nedenleri vardır.
Bunlardan bazılarını örnek verecek olursak;
• Programdan istenenler açık bir şekilde ortaya
konmamış olabilir.
• Programcı programdan istenenleri yanlış anlamış
olabilir.
• Programcının varsayımları yanlış çıkabilir.Örneğin
pi sayısının 3.14 alması yeterli olduğu varsayılmış
olabilir.
• Programcı kodu yazarken dikkatsizlik yapılmış
olabilir.
Hata Farkedildiği Zaman
Yazılım hatasının ne zaman farkına varıldığıda
çeşitlilik gösterir.
• Kod yazılırken
• Kod incelenirken
• Program kullanımdayken
Kod Yazım Aşaması
Kod yazılırken;
• Programı yazan kişi tarafından,
• Pair programming yöntemi
uygulandığında, takım arkadaşı tarafından,
• Derleyici tarafından,
• Programın programcı tarafından oluşturulması
sırasında Birim Testleri
tarafından
Birim Testi(Unit Testing)
• Bir bilgisayar programında yapılan işlemlerin en küçük birimden
başlayarak belirli testler doğrultusunda tutarlılık,doğruluk ve
verimlilik ölçme sistemidir.
• Bir uygulamanın içerisindeki bir fonksiyonu veya bir sınıfın (class)
içerisindeki bir metodu test etmek için yazılır.
• O metodu veya fonksiyonu dışarıdan tamamen soyutlayarak(alacağı
parametreler hazırlanarak veya etkileşime geçeceği fonksiyonların
dönüş değerleri yine dışardan etkilenmeyecek şekilde belirlenerek)
çalıştırıp beklenen sonucu üretip üretmediğini kontrol etmek için
yazılmış testlerdir.
• Yani bilinen bir girdiye karşılık, beklenen sonucu üreten program
parçaları birim testi geçer.
• Mikro ölçekte yapılan bu testte, özel fonksiyonlar veya kod
modülleri test edilir.
Birim Test’in Sağladıkları
• Ne yazık ki bunun tersi doğru değildir: birim testlerinin olması, kodun
hatasız olduğunu kanıtlamaz; ama hata oranını çok büyük ölçüde azaltır.
• Kodların anlaşılmasını kolaylaştırır.
• Birim test yaparken temel amaç yazdığınız kodun her satırının başka bir
kod tarafından otomatik olarak test edilmesidir.
• Koddaki hata oranını azaltıp,kod kalitesinin artmasını sağlar.
• Birim Test sadece uç programlama yapılırken değil aynı zamanda her
programcının yazdığı kodların verimliliği ve uzun vadede çıkabilecek
gereksiz geriye dönüşleri engeller.
• Birim testleri ayrıca kodun rahatça ve güvenle geliştirilebilmesini de
sağlarlar. Kod üzerinde değişiklik yapmak, örneğin yeni olanaklar
eklemek, doğal olarak o kodun eski olanaklarının artık hatalı hale
gelmelerine neden olabilir. Birim testleri kullanarak, bu tür aksaklıkların
önüne geçebiliriz.
• Birim test yazmak yazılan kodları programcı gözüyle
çalıştırmaktır.
Örneğin;
• Bir controller olsun diyelim. Bu controller'ın
içinde kullanıcı bilgilerini veritabanına kaydeden
bir metod olsun.
• Biz bu metoda parametre olarak (POST, GET vs.
isteği ile) kullanıcı bilgilerini verip, metot
çalıştıktan sonra da beklenen çıktıyı,
• Değerler yanlışsa ilgili ilgili hata mesajı verilmiş
mi?
• Değerler doğruysa doğru sayfaya yönlenmiş mi?
vermiş mi diye kontrol edersek birim
test çalıştırmış oluruz.
[CodeXample]
[TestFixture()]
NUnitTest
{
}
[Test()]
public void Bolme()
{
try{
int a=100;
int b=0;
int c = a/b;
}
catch(DivideByZeroException ex)
{
}
}

More Related Content

Viewers also liked

7.internal and
7.internal and7.internal and
7.internal andlibfsb
 
Presenting 101: The Fundamentals of Marketing and Promotion -- Developing and...
Presenting 101: The Fundamentals of Marketing and Promotion -- Developing and...Presenting 101: The Fundamentals of Marketing and Promotion -- Developing and...
Presenting 101: The Fundamentals of Marketing and Promotion -- Developing and...NikkiEstes
 
Want to Eat More Veggies?
Want to Eat More Veggies?Want to Eat More Veggies?
Want to Eat More Veggies?Nancy Otero
 
13 outsourcing as
13 outsourcing as13 outsourcing as
13 outsourcing aslibfsb
 
1.return on
1.return on1.return on
1.return onlibfsb
 
1.north european
1.north european1.north european
1.north europeanlibfsb
 

Viewers also liked (7)

7.internal and
7.internal and7.internal and
7.internal and
 
Presenting 101: The Fundamentals of Marketing and Promotion -- Developing and...
Presenting 101: The Fundamentals of Marketing and Promotion -- Developing and...Presenting 101: The Fundamentals of Marketing and Promotion -- Developing and...
Presenting 101: The Fundamentals of Marketing and Promotion -- Developing and...
 
Want to Eat More Veggies?
Want to Eat More Veggies?Want to Eat More Veggies?
Want to Eat More Veggies?
 
13 outsourcing as
13 outsourcing as13 outsourcing as
13 outsourcing as
 
55
5555
55
 
1.return on
1.return on1.return on
1.return on
 
1.north european
1.north european1.north european
1.north european
 

Similar to Unit testing

Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıAhmet Gürel
 
Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2Mesut Günes
 
C ders-notlari-necati-ergin
C ders-notlari-necati-erginC ders-notlari-necati-ergin
C ders-notlari-necati-erginIbrahim Kizir
 
GDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme TeknikleriGDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme TeknikleriLemi Orhan Ergin
 
Yazilim projeleri maliyet tahmini ve cocomo modeli
Yazilim projeleri maliyet tahmini ve cocomo modeliYazilim projeleri maliyet tahmini ve cocomo modeli
Yazilim projeleri maliyet tahmini ve cocomo modeliZafer Düzen
 
In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...
In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...
In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...Vahid Garousi
 
Test Driven Development
Test Driven Development Test Driven Development
Test Driven Development Nezir Yürekli
 
Kodlamaya hazırlık
Kodlamaya hazırlıkKodlamaya hazırlık
Kodlamaya hazırlıkErol Dizdar
 
Mühendislik problemlerinin bilgisayar ortamında sayısal analiz yöntemleriyle...
Mühendislik problemlerinin  bilgisayar ortamında sayısal analiz yöntemleriyle...Mühendislik problemlerinin  bilgisayar ortamında sayısal analiz yöntemleriyle...
Mühendislik problemlerinin bilgisayar ortamında sayısal analiz yöntemleriyle...Abdurrahman Tunç
 
Nesne tabanlı programlamaya giriş
Nesne tabanlı programlamaya girişNesne tabanlı programlamaya giriş
Nesne tabanlı programlamaya girişErol Dizdar
 
Açık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeAçık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeSerkan Kaba
 
Gömülü sistemler pic
Gömülü sistemler   picGömülü sistemler   pic
Gömülü sistemler picpatan_mustafa
 

Similar to Unit testing (20)

Sunum tdd
Sunum tddSunum tdd
Sunum tdd
 
Bilgi sis..
Bilgi sis..Bilgi sis..
Bilgi sis..
 
Teste bakıs v01
Teste bakıs v01Teste bakıs v01
Teste bakıs v01
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim Dökümanı
 
Software/Yazılım Test
Software/Yazılım TestSoftware/Yazılım Test
Software/Yazılım Test
 
Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2
 
Selenium sunum
Selenium sunumSelenium sunum
Selenium sunum
 
C ders-notlari-necati-ergin
C ders-notlari-necati-erginC ders-notlari-necati-ergin
C ders-notlari-necati-ergin
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
 
GDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme TeknikleriGDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme Teknikleri
 
Yazilim projeleri maliyet tahmini ve cocomo modeli
Yazilim projeleri maliyet tahmini ve cocomo modeliYazilim projeleri maliyet tahmini ve cocomo modeli
Yazilim projeleri maliyet tahmini ve cocomo modeli
 
In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...
In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...
In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...
 
Test Driven Development
Test Driven Development Test Driven Development
Test Driven Development
 
Kodlamaya hazırlık
Kodlamaya hazırlıkKodlamaya hazırlık
Kodlamaya hazırlık
 
Mühendislik problemlerinin bilgisayar ortamında sayısal analiz yöntemleriyle...
Mühendislik problemlerinin  bilgisayar ortamında sayısal analiz yöntemleriyle...Mühendislik problemlerinin  bilgisayar ortamında sayısal analiz yöntemleriyle...
Mühendislik problemlerinin bilgisayar ortamında sayısal analiz yöntemleriyle...
 
Basit kodlar
Basit kodlarBasit kodlar
Basit kodlar
 
Nesne tabanlı programlamaya giriş
Nesne tabanlı programlamaya girişNesne tabanlı programlamaya giriş
Nesne tabanlı programlamaya giriş
 
Açık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeAçık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım Geliştirme
 
Gömülü sistemler pic
Gömülü sistemler   picGömülü sistemler   pic
Gömülü sistemler pic
 
Nasil Yazilimci Olunur.pdf
Nasil Yazilimci Olunur.pdfNasil Yazilimci Olunur.pdf
Nasil Yazilimci Olunur.pdf
 

Unit testing

  • 1. İsim&Soyisim : Serdar SÖNMEZ Proje Konusu : Unit Testing(Birim Testi) Universite : Uluslararası Kıbrıs Üniversitesi
  • 2. Hata Ayıklama • Proğramcılığın kaçınılmaz uğraşlarından birisi hata ayıklamaktır. • İçinde bilgisayar yazılımı içeren her cihaz yazılım hataları içerebilir. • Yazılım hatalarına örnek verecek olursak,kol saati gibi basit elektronik cihazlardan uzay aracı gibi büyük sistemlere kadar örnek verebiliriz.
  • 3. Hata Nedenleri Yazılım hatalarının çok çeşitli nedenleri vardır. Bunlardan bazılarını örnek verecek olursak; • Programdan istenenler açık bir şekilde ortaya konmamış olabilir. • Programcı programdan istenenleri yanlış anlamış olabilir. • Programcının varsayımları yanlış çıkabilir.Örneğin pi sayısının 3.14 alması yeterli olduğu varsayılmış olabilir. • Programcı kodu yazarken dikkatsizlik yapılmış olabilir.
  • 4. Hata Farkedildiği Zaman Yazılım hatasının ne zaman farkına varıldığıda çeşitlilik gösterir. • Kod yazılırken • Kod incelenirken • Program kullanımdayken
  • 5. Kod Yazım Aşaması Kod yazılırken; • Programı yazan kişi tarafından, • Pair programming yöntemi uygulandığında, takım arkadaşı tarafından, • Derleyici tarafından, • Programın programcı tarafından oluşturulması sırasında Birim Testleri tarafından
  • 6. Birim Testi(Unit Testing) • Bir bilgisayar programında yapılan işlemlerin en küçük birimden başlayarak belirli testler doğrultusunda tutarlılık,doğruluk ve verimlilik ölçme sistemidir. • Bir uygulamanın içerisindeki bir fonksiyonu veya bir sınıfın (class) içerisindeki bir metodu test etmek için yazılır. • O metodu veya fonksiyonu dışarıdan tamamen soyutlayarak(alacağı parametreler hazırlanarak veya etkileşime geçeceği fonksiyonların dönüş değerleri yine dışardan etkilenmeyecek şekilde belirlenerek) çalıştırıp beklenen sonucu üretip üretmediğini kontrol etmek için yazılmış testlerdir. • Yani bilinen bir girdiye karşılık, beklenen sonucu üreten program parçaları birim testi geçer. • Mikro ölçekte yapılan bu testte, özel fonksiyonlar veya kod modülleri test edilir.
  • 7. Birim Test’in Sağladıkları • Ne yazık ki bunun tersi doğru değildir: birim testlerinin olması, kodun hatasız olduğunu kanıtlamaz; ama hata oranını çok büyük ölçüde azaltır. • Kodların anlaşılmasını kolaylaştırır. • Birim test yaparken temel amaç yazdığınız kodun her satırının başka bir kod tarafından otomatik olarak test edilmesidir. • Koddaki hata oranını azaltıp,kod kalitesinin artmasını sağlar. • Birim Test sadece uç programlama yapılırken değil aynı zamanda her programcının yazdığı kodların verimliliği ve uzun vadede çıkabilecek gereksiz geriye dönüşleri engeller. • Birim testleri ayrıca kodun rahatça ve güvenle geliştirilebilmesini de sağlarlar. Kod üzerinde değişiklik yapmak, örneğin yeni olanaklar eklemek, doğal olarak o kodun eski olanaklarının artık hatalı hale gelmelerine neden olabilir. Birim testleri kullanarak, bu tür aksaklıkların önüne geçebiliriz. • Birim test yazmak yazılan kodları programcı gözüyle çalıştırmaktır.
  • 8. Örneğin; • Bir controller olsun diyelim. Bu controller'ın içinde kullanıcı bilgilerini veritabanına kaydeden bir metod olsun. • Biz bu metoda parametre olarak (POST, GET vs. isteği ile) kullanıcı bilgilerini verip, metot çalıştıktan sonra da beklenen çıktıyı, • Değerler yanlışsa ilgili ilgili hata mesajı verilmiş mi? • Değerler doğruysa doğru sayfaya yönlenmiş mi? vermiş mi diye kontrol edersek birim test çalıştırmış oluruz.
  • 9. [CodeXample] [TestFixture()] NUnitTest { } [Test()] public void Bolme() { try{ int a=100; int b=0; int c = a/b; } catch(DivideByZeroException ex) { } }