SlideShare una empresa de Scribd logo
1 de 14
Tasteful
Testons notre application avant de la développer
Le TDD
Test Driven Development
(Développement Piloté par les Tests)
ou
Tuatha De Danann
L’utilisation « prénatale »
Principe Fondateur
Prenaquoi ?
• Ecriture des tests en premier
• Avantages
• Testabilité
• Qualité
• Maintenabilité
Le cycle
• Créer un test
• Faire compiler le test
• Echouer au test
• Simuler/Implémenter/Trianguler le test
• Passer le test
• Remanier le code
Créer le test
[TestMethod]
public void TodoToTodoDTO()
{
var todo = new Todo { Name = ‘’A faire’’ };
var todoDTO = TodoFactory.CreateDTO(todo);
Assert.AreEqual(todo.Name, todoDTO.Name)
}
OK
Faire compiler le test
public class Todo
{
public string Name { get; set; }
}
public class TodoDTO
{
public string Name { get; set; }
}
OK
OK
Echouer au test
public static class TodoFactory
{
public static TodoDTO CreateDTO(Todo todo)
{
throw new NotImplementedException();
}
}
OK
OK
OK
Implementer le test
• Simulation : retour d’une constante par exemple
• Implémentation : code réel
• Triangulation : plusieurs exemples qu’on généralise
OK
OK
OK
Implementer le test
public static class TodoFactory
{
public static TodoDTO CreateDTO(Todo todo)
{
return new TodoDTO { Name = todo.Name };
}
}
OK
OK
OK
OK
Passer le test
[TestMethod]
public void TodoToTodoDTO()
{
var todo = new Todo { Name = ‘’A faire’’ };
var todoDTO = TodoFactory.CreateDTO(todo);
Assert.AreEqual(todo.Name, todoDTO.Name)
}
OK
OK
OK
OK
OK
Remanier le code
• Don't Repeat Yourself
• Définir des interfaces
• Assurer la testabilité
OK
OK
OK
OK
OK
OK
Compléments
• Rester simple !
• Une idée des timings ?
• Créer/Implémenter/Passer le test : 5 min
• Remanier le code : 10 min
• Mock et stubs à la rescousse
0 Bug
Votre Nouvelle Mission

Más contenido relacionado

Similar a Tasteful

testUnitaire (1).pptx
testUnitaire (1).pptxtestUnitaire (1).pptx
testUnitaire (1).pptxManalAg
 
Comment écrire du code testable ?
Comment écrire du code testable ?Comment écrire du code testable ?
Comment écrire du code testable ?Fou Cha
 
Unit testing and TDD
Unit testing and TDDUnit testing and TDD
Unit testing and TDDDavid Bottiau
 
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...Cyrille Grandval
 
7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitaires7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitairesPascal Laurin
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringneuros
 
Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Ippon
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application javaAntoine Rey
 
Marathon De L Industrialisation
Marathon De L IndustrialisationMarathon De L Industrialisation
Marathon De L IndustrialisationPHPPRO
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowMathias Kluba
 
TDD avec ou sans mock
TDD avec ou sans mockTDD avec ou sans mock
TDD avec ou sans mockYannick Ameur
 
Accélérer les tests d’acceptation avec un DSL et du refactoring
Accélérer les tests d’acceptation avec un DSL et du refactoringAccélérer les tests d’acceptation avec un DSL et du refactoring
Accélérer les tests d’acceptation avec un DSL et du refactoringLaurent PY
 
Intro sur les tests unitaires
Intro sur les tests unitairesIntro sur les tests unitaires
Intro sur les tests unitairesPHPPRO
 
Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017Jean-Michel Doudoux
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifkemenaran
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDXavier NOPRE
 

Similar a Tasteful (20)

testUnitaire (1).pptx
testUnitaire (1).pptxtestUnitaire (1).pptx
testUnitaire (1).pptx
 
Comment écrire du code testable ?
Comment écrire du code testable ?Comment écrire du code testable ?
Comment écrire du code testable ?
 
Bbl sur les tests
Bbl sur les testsBbl sur les tests
Bbl sur les tests
 
Unit testing and TDD
Unit testing and TDDUnit testing and TDD
Unit testing and TDD
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
 
7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitaires7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitaires
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 
Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon
 
J Unit
J UnitJ Unit
J Unit
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application java
 
Marathon De L Industrialisation
Marathon De L IndustrialisationMarathon De L Industrialisation
Marathon De L Industrialisation
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - Specflow
 
TDD avec ou sans mock
TDD avec ou sans mockTDD avec ou sans mock
TDD avec ou sans mock
 
Accélérer les tests d’acceptation avec un DSL et du refactoring
Accélérer les tests d’acceptation avec un DSL et du refactoringAccélérer les tests d’acceptation avec un DSL et du refactoring
Accélérer les tests d’acceptation avec un DSL et du refactoring
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
Intro sur les tests unitaires
Intro sur les tests unitairesIntro sur les tests unitaires
Intro sur les tests unitaires
 
Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDD
 

Tasteful

  • 1. Tasteful Testons notre application avant de la développer
  • 2. Le TDD Test Driven Development (Développement Piloté par les Tests) ou Tuatha De Danann
  • 3. L’utilisation « prénatale » Principe Fondateur
  • 4. Prenaquoi ? • Ecriture des tests en premier • Avantages • Testabilité • Qualité • Maintenabilité
  • 5. Le cycle • Créer un test • Faire compiler le test • Echouer au test • Simuler/Implémenter/Trianguler le test • Passer le test • Remanier le code
  • 6. Créer le test [TestMethod] public void TodoToTodoDTO() { var todo = new Todo { Name = ‘’A faire’’ }; var todoDTO = TodoFactory.CreateDTO(todo); Assert.AreEqual(todo.Name, todoDTO.Name) } OK
  • 7. Faire compiler le test public class Todo { public string Name { get; set; } } public class TodoDTO { public string Name { get; set; } } OK OK
  • 8. Echouer au test public static class TodoFactory { public static TodoDTO CreateDTO(Todo todo) { throw new NotImplementedException(); } } OK OK OK
  • 9. Implementer le test • Simulation : retour d’une constante par exemple • Implémentation : code réel • Triangulation : plusieurs exemples qu’on généralise OK OK OK
  • 10. Implementer le test public static class TodoFactory { public static TodoDTO CreateDTO(Todo todo) { return new TodoDTO { Name = todo.Name }; } } OK OK OK OK
  • 11. Passer le test [TestMethod] public void TodoToTodoDTO() { var todo = new Todo { Name = ‘’A faire’’ }; var todoDTO = TodoFactory.CreateDTO(todo); Assert.AreEqual(todo.Name, todoDTO.Name) } OK OK OK OK OK
  • 12. Remanier le code • Don't Repeat Yourself • Définir des interfaces • Assurer la testabilité OK OK OK OK OK OK
  • 13. Compléments • Rester simple ! • Une idée des timings ? • Créer/Implémenter/Passer le test : 5 min • Remanier le code : 10 min • Mock et stubs à la rescousse