Test Güdümlü Yazilim

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Test Güdümlü Yazilim - Presentation Transcript

    1. .com Kurumsal Java.com Özcan Acar © 2009
    2. Test Güdümlü Yazılım Test Driven Development (TDD) Özcan Acar acar@unitedinter.net http://www.ozcanacar.com http://www.kurumsaljava.com Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    3. Özcan Acar Hakkında public class OezcanAcar { public static void main(String[] args) { Acar oezcan = new Acar(); oezcan.setBirthday(\"18.07.1974\"); oezcan.setBirthplace(\"Izmir\"); oezcan.setJob(\"Bilgisayar Mühendisi\"); oezcan.setPassion(\"Java EE\"); } } Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    4. Özcan Acar Hakkında Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    5. Java Tasarım Şablonları ve Yazılım Mimarileri Tasarım şablonu nedir? Interface / Abstract sınıf nedir? Oluşturucu Tasarım Şablonları Factory, Abstract Factory, Builder, Prototype, Singleton Yapısal Tasarım Şablonları Adapter, Bridge, Facade, Decorator, Composite, Flyweight, Proxy Davranışsal Tasarım Şablonları Command, Memento, Strategy, Iterator, State, Observer, Visitor Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    6. Extreme Programming Çevik süreç nedir? Çevik manifesto Extreme Programming nedir? XP değerleri ve prensipleri Çevik proje planlaması Çevik süreçlerde iletişim Çevik tasarım Sürekli entegrasyon Test güdümlü yazılım Yazılım metrikleri Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    7. Sunumun Đçeriği TDD nedir? TDD nasıl uygulanır? TDD avantajları Pratik TDD uygulaması Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    8. Test Güdümlü Yazılım Test Driven Development (TDD) Tasarım Test Test Đmplementasyon Đmplementasyon Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    9. Test Güdümlü Yazılım Test Driven Development (TDD) 1. Hemen bir test oluştur Test ekle 2. Testleri çalıştır ve en son eklenen testin çalışmadığını gör Testi çalıştır [ Test çalışır durumda ] 3. Testin çalışması için ufak bir [ Hata oluştu ] değişiklik yap Gerekli değişiklikleri yap 4. Testleri çalıştır ve hepsinin hatasız çalışır durumda olduğunu gör Testi çalıştır [ Test çalışır durumda, [ Hata oluştu ] yazılıma devam edilir ] 5. Aynı ve benzer kodları yok [ Test çalışır durumda, et. yazılım son bulur] Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    10. Test Güdümlü Yazılım Test Driven Development (TDD) Şelale Tarzı (Waterfall) Design oluştur Kodla Test et Çevik Yazılım Tarzı (Agile Development) Yeniden yapılandır Test ekle Kodla (refactoring, design) Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    11. Test Güdümlü Yazılım Test Driven Development (TDD) JUnit testleri programcıyı, sınıfların nasıl kullanıldıklarını düşünmeye zorlar. Kullanıcı gözüyle sınıflara bakıldığı taktirde, daha basit ve kullanışlı yapılandırılmaları kolaylaşır. Programcı JUnit testlerini hazırlarken, sistemin nasıl çalışması gerektiğini hayal etmek zorundadır. TDD ile sadece gerekli sınıflar ve metotlar oluşturulur. TDD, programcının “belki ilerde kullanılır, bu metodu eklemekte fayda var” tarzı düşünmesini engeller. Böylece TDD proje maliyetini düşürür, çünkü sadece gerekli sınıf ve metotlar için zaman harcanır. TDD ile test kapsama alanı (test coverage) geniş olur. Hemen hemen her satır kod test metotları tarafından çalıştırılır. JUnit testlerinden yola çıkarak oluşturulan sınıflar daha sağlam bir yapıda olurlar. Programcı JUnit testlerini oluştururken, oluşturduğu sınıfların kullanılış tarzı, olabilecek hatalar ve performansı hakkında düşünür ve buna göre sınıfı yapılandırır. Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    12. Test Güdümlü Yazılım Test Driven Development (TDD) JUnit testleri koda olan güveni artırır. Kod üzerinde yapılan değişiklikler yan etkilere sebep verebilir. JUnit testleri olmadan oluşabilecek yan etkilerin tespiti çok zordur. JUnit testleri ile kodun yeniden yapılandırılması (refactoring) kolaylaşır, çünkü oluşabilecek hatalar JUnit testleri ile lokalize edilebilir. JUnit testleri sistemin nasıl çalıştığını gösteren dokumentasyon olarak düşünülebilir. Programcılar JUnit testlerini inceleyerek, sistemin nasıl çalıştığını çok kısa bir zaman içinde öğrenebilirler. TDD tarzı programlama programcının debugger ile hata arama zamanını kısaltır yada tamamen ortadan kaldırır. Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    13. Gereksinimlerden Testler Doğar Bir müşterimiz DVD film alım-satım ve kiralama işiyle uğraşmaktadır. Bizi sahip olduğu filmleri yönetebileceği bir programın hazırlanması için görevlendirir. Programdan beklentileri (gereksinimler) şu şekildedir. • Filmler alfabetik sıraya göre listelenir. Listeye yeni film eklenebilir • Film isimleri değiştirilebilir. • Film ismine yada oyuncu ismine göre arama yapılabilir. Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    14. Görev Listesi Müşteri filmleri alfabetik olarak bir listenin içinde görmek istemektedir. Bunun yanı sıra listeye yeni film eklenebilmelidir. Böyle bir gereksinim için geleneksel yöntemler kullanılacak olursa, aşağıdaki şekilde bir görev listesi çıkartılabilir. Programcı bu görevleri baz alarak yazılım yapacaktır. • Filmlerin konduğu bir liste oluştur. ArrayList yada Vector olabilir. Filmlerin alfabetik sırası önemli. • Filmlerin listelenebileceği bir arayüz oluştur. • Yeni bir film eklemek için arayüze “Film Ekle” butonu ekle. Filmler bu buton üzerinden listeye eklenir. Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    15. Test Listesi Şimdi aynı gereksinimleri baz alarak TDD için gerekli testleri oluşturalım ve görev listesi ve test listesi arasındaki farkı inceleyelim. • Boş bir listenin büyüklüğü (size) 0 olmalı. • Listeye bir film eklendiğinde listenin büyüklüğü 1 olmalı. • Listeye iki film eklendiğinde listenin büyüklüğü 2 olmalı. • BBB ve AAA ismini taşıyan iki film listeye eklendiğinde AAA ismini taşıyan film listede BBB isimli filmden önce yer almalıdır. Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    16. Görev ile Test Kıyaslaması Görev listesi bize sadece ne yapılması gerektiği hakkında bilgi veriyor. Nasıl yapılması gerektiği bilgisini görev listesinden edinemiyoruz. Ayrıca bu liste yazılımda ne kadar ilerlediğimizi gösterecek özellikte değildir, yani hangi görevi tamamladıktan sonra programın % kaçını tamamlamış olacağız, bu konuda fikir sahibi olamıyoruz, çünkü görev tanımlamaları detaylı bir şekilde ne yapılması gerektiğini ihtiva etmiyor ve somut değiller. Testler ilk bakışta ne yapılması gerektiğini ifade edebilen, daha somut ve işletilebilir yapıdadır. Bu yüzden somut testlerden yola çıkarak programı oluşturmak daha mantıklı ve doğal olanıdır Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    17. Test Đmplementasyonu Boş bir listenin büyüklüğü (size) 0 olmalı. Listeye bir film eklendiğinde listenin büyüklüğü 1 olmalı. Listeye iki film eklendiğinde listenin büyüklüğü 2 olmalı. BBB ve AAA ismini taşıyan iki film listeye eklendiğinde AAA ismini taşıyan film listede BBB isimli filmden önce yer almalıdır. Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    18. Test Đmplementasyonu TDD Demo Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    19. Kaynak: KurumsalJava.com Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    20. KurumsalJavaAkademisi.com Kurumsal Java.com Kurumsal Java.com Özcan Acar © 2009 © 2009
    21. Son Đlginiz için teşekkür ederim. Kurumsal Java.com Özcan Acar © 2009
    SlideShare Zeitgeist 2009

    + Özcan AcarÖzcan Acar Nominate

    custom

    296 views, 0 favs, 0 embeds more stats

    Test Güdümlü Yazilim

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 296
      • 296 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 2
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories