SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
Unit Testing
Responsable
#4
Unique
#5
Atomique
#1
Les bonnes pratiques des projets Agiles
5
Descriptif
#3
Consistent
#2
A propos
Denis Voituron
Ingénieur civil (Mons)
Foundateur de BMind
Développeur VB3, VB.Net, C#
Principal .Net Architect
Créateur DevApps.be
Blogger
Agenda
1. Concepts et définition
2. Pourquoi tester ?
3. Quoi tester ?
4. Comment tester ?
Les cinq bonnes pratiques des Unit Tests
5. Démonstration
Scrum
Cadre de travail pour répondre à des
problèmes changeants, tout en livrant
des produits de qualité.
1. Transparence
• Tous les processus doivent être visibles des participants.
• Définition d’un standard commun (ex. définir « Terminé »).
2. Inspection
• L’équipe doit fréquemment inspecter l’avancement et les artéfacts Scrum.
3. Adaptation
• Ajuster, dès que possible, les dérives détectées.
Participants
Product Owner Scrum MasterDevelopment Team
Product Backlog
(Carnet de produit)
Incrément
(Produit à chaque Sprint)
Événements – Users Stories
http://scrum-poster.com
“En tant que [personne], je voudrais [faire quelque chose], ainsi [bénéfice]”
Événements – Sprint Planning
http://scrum-poster.com
Événements – Sprint
http://scrum-poster.com
Événements – Daily Scrum
http://scrum-poster.com
Événements – Sprint Review
http://scrum-poster.com
Événements
http://scrum-poster.com
Incrément
Événements
http://scrum-poster.com
Unit Tests
Concepts
• Procédure permettant de vérifier le
bon fonctionnement d'une partie
précise d'un logiciel Unit Testing
Le code fonctionne-il
correctement seul ?
Integration Testing
Le code fonctionne-il
correctement ensemble ?
User Acceptance Testing
Le système rencontre les besoins
des utilisateurs finaux ?
Mise en production
Comment mettre en Production dans les années 2000
Fonce, on verra après !
Agile
Planifier les tests sur la route Agile
• Définir une stratégie de test
• Définir le cadre des tests
• Réouvrir fréquemment les tests
• Identifier les risques
• Récupérer des retours fréquents
https://www.3pillarglobal.com/insights/5-rules-to-the-road-for-test-planning-in-agile
Pourquoi ?
1. Trouver les erreurs rapidement
Ecrire les tests en même temps, ou même avant la fonction à tester
2. Sécurise la maintenance
Lors d'une modification d'un programme les tests unitaires signalent les
éventuelles régressions
3. Documentation
Il est très utile de lire les tests pour comprendre comment s'utilise une
méthode
Quoi ?
Test Project
Test Fixture
Test Test Test Test
Test Fixture
Test Test Test Test
Un par assembly, package
Un par classe
Un par unit
(pas nécessairement par méthode)
Quoi ?
Business
Entity
Data
Layer
Data
Access
Layer
User
Interface
Unit Testing tests one layer
Integration Testing tests across layers.A Mock allows a
dependency to be
imitated so the Unit test
can be isolated.
Réactions
Bonnes Pratiques
Cinq Bonnes pratiques
#1. Consistent
Toujours retourner la même
valeur, à condition que le
code soit identique.
DateTime currentDate = DateTime.Now;
int value = new Random().Next();
Cinq Bonnes pratiques
#2. Atomique
Ne tester qu’un
petit morceau
de fonctionnalité.
Cinq Bonnes pratiques
#3. Responsabilité unique
Doit être responsable que
d'un seul scénario.
void TestMethod()
{
Assert.IsTrue(behavior1);
Assert.IsTrue(behavior2);
}
void TestMethodCheckBehavior1()
{
Assert.IsTrue(behavior1);
}
void TestMethodCheckBehavior2()
{
Assert.IsTrue(behavior2);
}
Cinq Bonnes pratiques
#4. Auto Descriptif
Doit être facile à lire
et à comprendre
• Variable Names
• Method Names
• Class Names
void CanMakeReservation()
{
...
}
void TotalBillEqualsSumOfMenuItemPrices()
{
...
}
Auto Descriptif
Cinq Bonnes pratiques
#5. Pas de conditions ou de boucles
Il ne peut pas y avoir d’incertitude.
void TestBeforeOrAfter()
{
if (before)
{
Assert.IsTrue(behavior1);
}
else if (after)
{
Assert.IsTrue(behavior2);
}
}
void TestBefore()
{
Assert.IsTrue(behavior1);
}
void TestAfter()
{
Assert.IsTrue(behavior2);
}
Demo
• Concepts et Définition
• Pourquoi Tester ?
• Quoi Tester ?
• Comment Tester ?
• Consistent
• Atomique
• Responsabilité unique
• Auto Descriptif
• Pas de conditions ou de boucles
Unit Testing

Contenu connexe

Tendances

How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with CypressApplitools
 
How to go about testing in React?
How to go about testing in React? How to go about testing in React?
How to go about testing in React? Lisa Gagarina
 
Bytecode Manipulation with a Java Agent and Byte Buddy
Bytecode Manipulation with a Java Agent and Byte BuddyBytecode Manipulation with a Java Agent and Byte Buddy
Bytecode Manipulation with a Java Agent and Byte BuddyKoichi Sakata
 
Agile QA and Testing process
Agile QA and Testing processAgile QA and Testing process
Agile QA and Testing processGloria Stoilova
 
Unit Test Lab - Why Write Unit Tests?
Unit Test Lab - Why Write Unit Tests?Unit Test Lab - Why Write Unit Tests?
Unit Test Lab - Why Write Unit Tests?Danny van Kasteel
 
Karatê DSL - Automatizando testes de API de forma simples - GUTS RS - Junho
Karatê DSL - Automatizando testes de API de forma simples - GUTS RS - JunhoKaratê DSL - Automatizando testes de API de forma simples - GUTS RS - Junho
Karatê DSL - Automatizando testes de API de forma simples - GUTS RS - JunhoSamuel Lucas
 
DevOps!! 도데체 왜, 어떻게 할까??
DevOps!! 도데체 왜, 어떻게 할까??DevOps!! 도데체 왜, 어떻게 할까??
DevOps!! 도데체 왜, 어떻게 할까??Joseph Kim
 
Understand regression testing
Understand regression testingUnderstand regression testing
Understand regression testinggaoliang641
 
An Introduction to Unit Testing
An Introduction to Unit TestingAn Introduction to Unit Testing
An Introduction to Unit TestingJoe Tremblay
 
Generic Test Automation Architecture
Generic Test Automation ArchitectureGeneric Test Automation Architecture
Generic Test Automation ArchitectureTestingCR
 
테스터가 말하는 테스트코드 작성 팁과 사례
테스터가 말하는 테스트코드 작성 팁과 사례테스터가 말하는 테스트코드 작성 팁과 사례
테스터가 말하는 테스트코드 작성 팁과 사례SangIn Choung
 
Why you should switch to Cypress for modern web testing?
Why you should switch to Cypress for modern web testing?Why you should switch to Cypress for modern web testing?
Why you should switch to Cypress for modern web testing?Shivam Bharadwaj
 
TDD (Test Driven Design)
TDD (Test Driven Design)TDD (Test Driven Design)
TDD (Test Driven Design)nedirtv
 
Realtime selenium interview questions
Realtime selenium interview questionsRealtime selenium interview questions
Realtime selenium interview questionsKuldeep Pawar
 

Tendances (20)

How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with Cypress
 
How to go about testing in React?
How to go about testing in React? How to go about testing in React?
How to go about testing in React?
 
Bytecode Manipulation with a Java Agent and Byte Buddy
Bytecode Manipulation with a Java Agent and Byte BuddyBytecode Manipulation with a Java Agent and Byte Buddy
Bytecode Manipulation with a Java Agent and Byte Buddy
 
Agile QA and Testing process
Agile QA and Testing processAgile QA and Testing process
Agile QA and Testing process
 
Unit Test Lab - Why Write Unit Tests?
Unit Test Lab - Why Write Unit Tests?Unit Test Lab - Why Write Unit Tests?
Unit Test Lab - Why Write Unit Tests?
 
Test NG Framework Complete Walk Through
Test NG Framework Complete Walk ThroughTest NG Framework Complete Walk Through
Test NG Framework Complete Walk Through
 
Software testing
Software testing   Software testing
Software testing
 
Karatê DSL - Automatizando testes de API de forma simples - GUTS RS - Junho
Karatê DSL - Automatizando testes de API de forma simples - GUTS RS - JunhoKaratê DSL - Automatizando testes de API de forma simples - GUTS RS - Junho
Karatê DSL - Automatizando testes de API de forma simples - GUTS RS - Junho
 
DevOps!! 도데체 왜, 어떻게 할까??
DevOps!! 도데체 왜, 어떻게 할까??DevOps!! 도데체 왜, 어떻게 할까??
DevOps!! 도데체 왜, 어떻게 할까??
 
Understand regression testing
Understand regression testingUnderstand regression testing
Understand regression testing
 
An Introduction to Unit Testing
An Introduction to Unit TestingAn Introduction to Unit Testing
An Introduction to Unit Testing
 
Generic Test Automation Architecture
Generic Test Automation ArchitectureGeneric Test Automation Architecture
Generic Test Automation Architecture
 
테스터가 말하는 테스트코드 작성 팁과 사례
테스터가 말하는 테스트코드 작성 팁과 사례테스터가 말하는 테스트코드 작성 팁과 사례
테스터가 말하는 테스트코드 작성 팁과 사례
 
Why you should switch to Cypress for modern web testing?
Why you should switch to Cypress for modern web testing?Why you should switch to Cypress for modern web testing?
Why you should switch to Cypress for modern web testing?
 
A prentation on github
A prentation on githubA prentation on github
A prentation on github
 
Gitlab ci-cd
Gitlab ci-cdGitlab ci-cd
Gitlab ci-cd
 
UNIT TESTING
UNIT TESTINGUNIT TESTING
UNIT TESTING
 
CICD with Jenkins
CICD with JenkinsCICD with Jenkins
CICD with Jenkins
 
TDD (Test Driven Design)
TDD (Test Driven Design)TDD (Test Driven Design)
TDD (Test Driven Design)
 
Realtime selenium interview questions
Realtime selenium interview questionsRealtime selenium interview questions
Realtime selenium interview questions
 

Similaire à Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile

Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2Christophe Rochefolle
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringneuros
 
Avis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsAvis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsCloudNetCare
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outilsAgile Tour 2009 Québec
 
Strategie de test à agile tour bordeaux
Strategie de test à agile tour bordeauxStrategie de test à agile tour bordeaux
Strategie de test à agile tour bordeauxNicolas Fédou
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transcolaurent_opnworks
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 
Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29Elapse Technologies
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221Frédéric Delorme
 
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
 
Intégration continue
Intégration continueIntégration continue
Intégration continueKlee Group
 
testUnitaire (1).pptx
testUnitaire (1).pptxtestUnitaire (1).pptx
testUnitaire (1).pptxManalAg
 
Azure DevOps Tests Plan
Azure DevOps Tests PlanAzure DevOps Tests Plan
Azure DevOps Tests PlanDenis Voituron
 

Similaire à Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile (20)

Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
 
Flex Unit Testing
Flex Unit TestingFlex Unit Testing
Flex Unit Testing
 
Avis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsAvis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests Logiciels
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outils
 
Anatomie du test
Anatomie du testAnatomie du test
Anatomie du test
 
Strategie de test à agile tour bordeaux
Strategie de test à agile tour bordeauxStrategie de test à agile tour bordeaux
Strategie de test à agile tour bordeaux
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Université du soir - TDD
Université du soir - TDDUniversité du soir - TDD
Université du soir - TDD
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 
Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221
 
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
 
Bbl sur les tests
Bbl sur les testsBbl sur les tests
Bbl sur les tests
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 
testUnitaire (1).pptx
testUnitaire (1).pptxtestUnitaire (1).pptx
testUnitaire (1).pptx
 
Azure DevOps Tests Plan
Azure DevOps Tests PlanAzure DevOps Tests Plan
Azure DevOps Tests Plan
 
Normandy JUG integration Continue
Normandy JUG integration ContinueNormandy JUG integration Continue
Normandy JUG integration Continue
 

Plus de Denis Voituron

DevDay 2021 - Codez comme un ninja
DevDay 2021 - Codez comme un ninjaDevDay 2021 - Codez comme un ninja
DevDay 2021 - Codez comme un ninjaDenis Voituron
 
.Net passé, présent et futur
.Net passé, présent et futur.Net passé, présent et futur
.Net passé, présent et futurDenis Voituron
 
MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"
MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"
MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"Denis Voituron
 
Azure Pipelines - Et si on arrêtait de mettre en production avec des Disquettes
Azure Pipelines - Et si on arrêtait de mettre en production avec des DisquettesAzure Pipelines - Et si on arrêtait de mettre en production avec des Disquettes
Azure Pipelines - Et si on arrêtait de mettre en production avec des DisquettesDenis Voituron
 
GitHub et Microsoft Azure DevOps - Le mariage parfait
GitHub et Microsoft Azure DevOps - Le mariage parfaitGitHub et Microsoft Azure DevOps - Le mariage parfait
GitHub et Microsoft Azure DevOps - Le mariage parfaitDenis Voituron
 
Les méthodes agiles dans TFS
Les méthodes agiles dans TFSLes méthodes agiles dans TFS
Les méthodes agiles dans TFSDenis Voituron
 
Awareness Oniryx - Mai 2018
Awareness Oniryx - Mai 2018Awareness Oniryx - Mai 2018
Awareness Oniryx - Mai 2018Denis Voituron
 
A la découverte de TypeScript
A la découverte de TypeScriptA la découverte de TypeScript
A la découverte de TypeScriptDenis Voituron
 
Procédures CLR pour SQL Server : avantages et inconvénients
Procédures CLR pour SQL Server : avantages et inconvénientsProcédures CLR pour SQL Server : avantages et inconvénients
Procédures CLR pour SQL Server : avantages et inconvénientsDenis Voituron
 
Microsoft Experieces 2016 - Retour d’expériences sur TFS Online
Microsoft Experieces 2016 - Retour d’expériences sur TFS OnlineMicrosoft Experieces 2016 - Retour d’expériences sur TFS Online
Microsoft Experieces 2016 - Retour d’expériences sur TFS OnlineDenis Voituron
 
Développer avec un Simple Object Mapping Toolkit pour SQL Server
Développer avec un Simple Object Mapping Toolkit pour SQL ServerDévelopper avec un Simple Object Mapping Toolkit pour SQL Server
Développer avec un Simple Object Mapping Toolkit pour SQL ServerDenis Voituron
 
DevFM #20 : SqlDatabaseCommand, un Simple Object Mapping Toolkit
DevFM #20 : SqlDatabaseCommand, un Simple Object Mapping ToolkitDevFM #20 : SqlDatabaseCommand, un Simple Object Mapping Toolkit
DevFM #20 : SqlDatabaseCommand, un Simple Object Mapping ToolkitDenis Voituron
 
Présentation et bonnes pratiques du pattern MVVM - MIC Belgique
Présentation et bonnes pratiques du pattern MVVM - MIC BelgiquePrésentation et bonnes pratiques du pattern MVVM - MIC Belgique
Présentation et bonnes pratiques du pattern MVVM - MIC BelgiqueDenis Voituron
 
Presentation MIC SummerCamp 2015 WaterStock
Presentation MIC SummerCamp 2015 WaterStockPresentation MIC SummerCamp 2015 WaterStock
Presentation MIC SummerCamp 2015 WaterStockDenis Voituron
 
Visual Studio 2015: Increase your Productivity
Visual Studio 2015: Increase your ProductivityVisual Studio 2015: Increase your Productivity
Visual Studio 2015: Increase your ProductivityDenis Voituron
 

Plus de Denis Voituron (20)

Go lean, Go green
Go lean, Go greenGo lean, Go green
Go lean, Go green
 
DevDay 2021 - Codez comme un ninja
DevDay 2021 - Codez comme un ninjaDevDay 2021 - Codez comme un ninja
DevDay 2021 - Codez comme un ninja
 
.Net passé, présent et futur
.Net passé, présent et futur.Net passé, présent et futur
.Net passé, présent et futur
 
MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"
MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"
MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"
 
Azure Pipelines - Et si on arrêtait de mettre en production avec des Disquettes
Azure Pipelines - Et si on arrêtait de mettre en production avec des DisquettesAzure Pipelines - Et si on arrêtait de mettre en production avec des Disquettes
Azure Pipelines - Et si on arrêtait de mettre en production avec des Disquettes
 
GitHub et Microsoft Azure DevOps - Le mariage parfait
GitHub et Microsoft Azure DevOps - Le mariage parfaitGitHub et Microsoft Azure DevOps - Le mariage parfait
GitHub et Microsoft Azure DevOps - Le mariage parfait
 
Azure for Dev
Azure for DevAzure for Dev
Azure for Dev
 
DevDay 2018 - Blazor
DevDay 2018 - BlazorDevDay 2018 - Blazor
DevDay 2018 - Blazor
 
Les méthodes agiles dans TFS
Les méthodes agiles dans TFSLes méthodes agiles dans TFS
Les méthodes agiles dans TFS
 
Awareness Oniryx - Mai 2018
Awareness Oniryx - Mai 2018Awareness Oniryx - Mai 2018
Awareness Oniryx - Mai 2018
 
A la découverte de TypeScript
A la découverte de TypeScriptA la découverte de TypeScript
A la découverte de TypeScript
 
Le futur de .NET
Le futur de .NETLe futur de .NET
Le futur de .NET
 
Procédures CLR pour SQL Server : avantages et inconvénients
Procédures CLR pour SQL Server : avantages et inconvénientsProcédures CLR pour SQL Server : avantages et inconvénients
Procédures CLR pour SQL Server : avantages et inconvénients
 
Microsoft Experieces 2016 - Retour d’expériences sur TFS Online
Microsoft Experieces 2016 - Retour d’expériences sur TFS OnlineMicrosoft Experieces 2016 - Retour d’expériences sur TFS Online
Microsoft Experieces 2016 - Retour d’expériences sur TFS Online
 
Développer avec un Simple Object Mapping Toolkit pour SQL Server
Développer avec un Simple Object Mapping Toolkit pour SQL ServerDévelopper avec un Simple Object Mapping Toolkit pour SQL Server
Développer avec un Simple Object Mapping Toolkit pour SQL Server
 
DevFM #20 : SqlDatabaseCommand, un Simple Object Mapping Toolkit
DevFM #20 : SqlDatabaseCommand, un Simple Object Mapping ToolkitDevFM #20 : SqlDatabaseCommand, un Simple Object Mapping Toolkit
DevFM #20 : SqlDatabaseCommand, un Simple Object Mapping Toolkit
 
Présentation et bonnes pratiques du pattern MVVM - MIC Belgique
Présentation et bonnes pratiques du pattern MVVM - MIC BelgiquePrésentation et bonnes pratiques du pattern MVVM - MIC Belgique
Présentation et bonnes pratiques du pattern MVVM - MIC Belgique
 
Presentation MIC SummerCamp 2015 WaterStock
Presentation MIC SummerCamp 2015 WaterStockPresentation MIC SummerCamp 2015 WaterStock
Presentation MIC SummerCamp 2015 WaterStock
 
Scrum Guide
Scrum GuideScrum Guide
Scrum Guide
 
Visual Studio 2015: Increase your Productivity
Visual Studio 2015: Increase your ProductivityVisual Studio 2015: Increase your Productivity
Visual Studio 2015: Increase your Productivity
 

Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile

  • 1. Unit Testing Responsable #4 Unique #5 Atomique #1 Les bonnes pratiques des projets Agiles 5 Descriptif #3 Consistent #2
  • 2. A propos Denis Voituron Ingénieur civil (Mons) Foundateur de BMind Développeur VB3, VB.Net, C# Principal .Net Architect Créateur DevApps.be Blogger
  • 3. Agenda 1. Concepts et définition 2. Pourquoi tester ? 3. Quoi tester ? 4. Comment tester ? Les cinq bonnes pratiques des Unit Tests 5. Démonstration
  • 4. Scrum Cadre de travail pour répondre à des problèmes changeants, tout en livrant des produits de qualité. 1. Transparence • Tous les processus doivent être visibles des participants. • Définition d’un standard commun (ex. définir « Terminé »). 2. Inspection • L’équipe doit fréquemment inspecter l’avancement et les artéfacts Scrum. 3. Adaptation • Ajuster, dès que possible, les dérives détectées.
  • 5. Participants Product Owner Scrum MasterDevelopment Team Product Backlog (Carnet de produit) Incrément (Produit à chaque Sprint)
  • 6. Événements – Users Stories http://scrum-poster.com “En tant que [personne], je voudrais [faire quelque chose], ainsi [bénéfice]”
  • 7. Événements – Sprint Planning http://scrum-poster.com
  • 9. Événements – Daily Scrum http://scrum-poster.com
  • 10. Événements – Sprint Review http://scrum-poster.com
  • 14. Concepts • Procédure permettant de vérifier le bon fonctionnement d'une partie précise d'un logiciel Unit Testing Le code fonctionne-il correctement seul ? Integration Testing Le code fonctionne-il correctement ensemble ? User Acceptance Testing Le système rencontre les besoins des utilisateurs finaux ?
  • 15. Mise en production Comment mettre en Production dans les années 2000 Fonce, on verra après !
  • 16. Agile Planifier les tests sur la route Agile • Définir une stratégie de test • Définir le cadre des tests • Réouvrir fréquemment les tests • Identifier les risques • Récupérer des retours fréquents https://www.3pillarglobal.com/insights/5-rules-to-the-road-for-test-planning-in-agile
  • 17. Pourquoi ? 1. Trouver les erreurs rapidement Ecrire les tests en même temps, ou même avant la fonction à tester 2. Sécurise la maintenance Lors d'une modification d'un programme les tests unitaires signalent les éventuelles régressions 3. Documentation Il est très utile de lire les tests pour comprendre comment s'utilise une méthode
  • 18. Quoi ? Test Project Test Fixture Test Test Test Test Test Fixture Test Test Test Test Un par assembly, package Un par classe Un par unit (pas nécessairement par méthode)
  • 19. Quoi ? Business Entity Data Layer Data Access Layer User Interface Unit Testing tests one layer Integration Testing tests across layers.A Mock allows a dependency to be imitated so the Unit test can be isolated.
  • 22. Cinq Bonnes pratiques #1. Consistent Toujours retourner la même valeur, à condition que le code soit identique. DateTime currentDate = DateTime.Now; int value = new Random().Next();
  • 23. Cinq Bonnes pratiques #2. Atomique Ne tester qu’un petit morceau de fonctionnalité.
  • 24. Cinq Bonnes pratiques #3. Responsabilité unique Doit être responsable que d'un seul scénario. void TestMethod() { Assert.IsTrue(behavior1); Assert.IsTrue(behavior2); } void TestMethodCheckBehavior1() { Assert.IsTrue(behavior1); } void TestMethodCheckBehavior2() { Assert.IsTrue(behavior2); }
  • 25. Cinq Bonnes pratiques #4. Auto Descriptif Doit être facile à lire et à comprendre • Variable Names • Method Names • Class Names void CanMakeReservation() { ... } void TotalBillEqualsSumOfMenuItemPrices() { ... } Auto Descriptif
  • 26. Cinq Bonnes pratiques #5. Pas de conditions ou de boucles Il ne peut pas y avoir d’incertitude. void TestBeforeOrAfter() { if (before) { Assert.IsTrue(behavior1); } else if (after) { Assert.IsTrue(behavior2); } } void TestBefore() { Assert.IsTrue(behavior1); } void TestAfter() { Assert.IsTrue(behavior2); }
  • 27. Demo
  • 28. • Concepts et Définition • Pourquoi Tester ? • Quoi Tester ? • Comment Tester ? • Consistent • Atomique • Responsabilité unique • Auto Descriptif • Pas de conditions ou de boucles Unit Testing