Test Driven Development
-
Upload
ilkin-balkanay -
Category
Documents
-
view
230 -
download
1
Transcript of Test Driven Development
Test Driven Developmentİlkin Ulaş BALKANAY @ilkinulas
Etohum Kafe Toplantısı21/03/2013
İçerik
○ TDD nedir? Faydaları nelerdir?
○ Nasıl uygulayabilirim? (Red-Green-Refactor)
○ İyi bir test hangi özelliklere sahip olmalıdır?
○ Hangi durumlarda test yazmasak da olur?
○ Workshop (Batak)
Test Driven Development
HA sunucularJava ThreadsSyncronizationTPS
Limited memorySpritesBitmapsFPS
Test Driven Development
Unit
Neden test yazmalıyım?
● İyi tasarım ve test edilebilir kod arasında bir sinerji vardır.
● Testler, kodun nasıl kullanılması gerektiğini gösteren
örnekler içerir.
● Korkmadan "refactoring" yapabilmemizi sağlar.
● Ne az ne fazla, "ÖZ" kod yazmamızı sağlar.
● Eklediğimiz yeni özelliğin, mevcut özellikleri
bozmadığından emin oluruz.
Neden test yazmalıyım?
İyi tasarım ve test edilebilir kod arasında bir sinerji vardır.● Çok fazla bağımlılık (loosely-coupled)
● Bir sürü parametresi olan metodlar (Single Responsibility)
● Framework'e çok sıkı bağlılık (Separation of concerns)
● "private" bir metodu test etme ihtiyacı (Single Responsibilty)
Neden test yazmalıyım?
● İyi tasarım ve test edilebilir kod arasında bir sinerji vardır.
● Testler, kodun nasıl kullanılması gerektiğini gösteren örnekler içerir.
● Korkmadan "refactoring" yapabilmemizi sağlar.
● Ne az ne fazla, "ÖZ" kod yazmamızı sağlar.
● Eklediğimiz yeni özelliğin, mevcut özellikleri
bozmadığından emin oluruz.
Neden test yazmalıyım?
● İyi tasarım ve test edilebilir kod arasında bir sinerji vardır.
● Testler, kodun nasıl kullanılması gerektiğini gösteren
örnekler içerir.
● Korkmadan "refactoring" yapabilmemizi sağlar.● Ne az ne fazla, "ÖZ" kod yazmamızı sağlar.
● Eklediğimiz yeni özelliğin, mevcut özellikleri
bozmadığından emin oluruz.
Neden test yazmalıyım?
● İyi tasarım ve test edilebilir kod arasında bir sinerji vardır.
● Testler, kodun nasıl kullanılması gerektiğini gösteren
örnekler içerir.
● Korkmadan "refactoring" yapabilmemizi sağlar.
● Ne az ne fazla, "ÖZ" kod yazmamızı sağlar.● Eklediğimiz yeni özelliğin, mevcut özellikleri
bozmadığından emin oluruz.
Neden test yazmalıyım?
● İyi tasarım ve test edilebilir kod arasında bir sinerji vardır.
● Testler, kodun nasıl kullanılması gerektiğini gösteren
örnekler içerir.
● Korkmadan "refactoring" yapabilmemizi sağlar.
● Ne az ne fazla, "ÖZ" kod yazmamızı sağlar.
● Eklediğimiz yeni özelliğin, mevcut özellikleri bozmadığından emin oluruz.
Red-Green-Refactor
Testlerin özellikleri
● Hızlı
● Otomatik - tek tuş, CI (Continuous Integration)
● Bağımsız
● İzole
● "Production" kodları kadar özenli yazılmalıdır.
● Testler sistemin parçasıdır, production kodları ile
beraber versiyonlanmalıdır.
Fazla abartmamak lazım
Aşağıdaki durumlarda test yazmaya gerek yok:
● getter & setter metodlar
● User Interface (GUI) kodları
● Kısa (2-3 satır), net metodlar
Test coverage
by Martin Fowler
Test coverage
Workshop
Teşekkü[email protected]