SlideShare une entreprise Scribd logo
1  sur  37
Techniques avancées de refactoring
Parce qu’on a tous un jour rêvé de devenir un Ninja
Agile Testing Day
@NicholasSuter
Consultant / manager / couteau suisse
Visual Studio and Development
Technologies .NET / C#
http://www.nicholassuter.com/
http://blog.cellenza.com/author/nsuter/
Pourquoi parler de refactoring aujourd’hui ?
Tester une nouvelle
application conçue pour
être testable, c’est facile.
Oui, mais… et l’existant ?
1. Description du champ de bataille
2. Détecter et identifier l’ennemi
3. Techniques de combat et armement
Legacy
Le code des autres
Du code non-
supporté
Tout code déjà
écrit
Code without
automated tests
Michael Feathers in Working Effectively with Legacy Code
Styles d’architecture
1990 2000 2010
Styles d’architecture
Et parfois…
Refactoring
Refactoring
Le refactoring consiste à améliorer du code
existant sans modifier son comportement.
SOLID
Single responsibility
Open for extension, closed for modification
Liskov substitution
Interface segregation
Dependency inversion
Clean Code
Le code propre est :
Simple Expressif Lisible Organisé Testé
Clean Code
Bonnes pratiques
KISS YAGNI DRY
Keep it simple and stupid You aren’t going to need it Don’t repeat yourself
1. Description du champ de bataille
2. Détecter et identifier l’ennemi
3. Techniques de combat et armement
Cartographier
Cartographier
Mesurer la qualité du code
Parfois, l’estimation au doigt
mouillé n’est pas suffisante.
Mesurer la qualité du code
Nombre de
lignes de code
Complexité
cyclomatique
Taux de
couverture
Volume de
commentaires
Ratio de
méthodes
trop longues
Nombre de
classes par
librairie
Nombre de
méthodes par
classe
Indice de
spécialisation
Indice
d’instabilité
Coefficient
d’abstraction
Distance de
bonne
conception
Taux de
duplication
Mesurer la qualité du code
Code smells
Les code smells sont un indicateur de problèmes de
design applicatif.
« Les code smells sont des symptômes de problèmes
plus profonds. »
Martin Fowler
Code smells
Les Gros
Les méthodes
trop longues
Les classes
trop grosses
La liste de
paramètres
interminable
L’abus de
primitives
La
dissémination
de données
Code smells
Les Dispensables
Les
commentaires
Le code mort
Le code
dupliqué
Les classes
fainéantes
La généricité
spéculative
Code smells
Les Abus de la Programmation Orientée Objet
Les switchs et
if/else if/else
if/else
Les champs
facultatifs
L’héritage
abusif
Le manque
d’homogénéité
Code smells
Les Problèmes de Couplage
Feature Envy
Intimité
inappropriée
Enchaînements
excessifs
Man in the
middle
1. Description du champ de bataille
2. Détecter et identifier l’ennemi
3. Techniques de combat et armement
L’Arme Fatale
Cleaning the deck
• Renommage
• Déplacements de
blocs de code
Refactorings
Amélioration de la lisibilité et de la localisation du code
Rename
Move to…
• Move up
• Move down
Extract
variable
Inline variable
Refactorings
Découpage et organisation du code
Découpage de
grosses interfaces
en petites
interfaces ciblées
Extraction de
méthode
Extraction de
classe
Refactorings
Abstraction
Encapsuler un
champ
Remplacer les
conditionnelles par
du polymorphisme
Remplacer un code
de type par un
pattern State ou
Strategy
Extraction
d’interface
Ajout de
paramètre
Fakes, mocks et stubs
Mock : permet également de
compter le nombre d'appels aux
méthodes
Mock
Stub
Fake
Stub : on lui injecte du
comportement dynamiquement
Fake : faux objet généré
manuellement simulant un objet réel
à l'aide de valeurs codées en dur.
IContract
Golden Master
Golden Master
Golden Master
Input Output
Unit tests
When [Input], then
[Output]
Demo
Kata !
Bien armer ses soldats
Roslyn Code Cracker
Bibliographie
Conclusion
• Ne négligez pas la théorie
• Maîtrisez les outils
• Ne soyez pas effrayés par la difficulté
• Gardez le bon état d’esprit
Des questions

Contenu connexe

Tendances

Pizza party 30-09-2011 bdd-cucumber
Pizza party 30-09-2011 bdd-cucumberPizza party 30-09-2011 bdd-cucumber
Pizza party 30-09-2011 bdd-cucumberHervé Leclerc
 
La revue de code : facile !
La revue de code : facile !La revue de code : facile !
La revue de code : facile !Lucian Precup
 
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
 
Industrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHPIndustrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHPhalleck45
 
Tests automatisés java script
Tests automatisés java scriptTests automatisés java script
Tests automatisés java scriptPascal Laurin
 
[Agile Testing Day] Introduction
[Agile Testing Day] Introduction[Agile Testing Day] Introduction
[Agile Testing Day] IntroductionCellenza
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineGeeks Anonymes
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !Lucian Precup
 
Essential skills for the agile developer
Essential skills for the agile developerEssential skills for the agile developer
Essential skills for the agile developerAlice Barralon
 
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
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & MétiersCellenza
 
Test Driven Development, propulsé par les Legos!
Test Driven Development, propulsé par les Legos!Test Driven Development, propulsé par les Legos!
Test Driven Development, propulsé par les Legos!Agile Montréal
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework Introductionlaurent bristiel
 
L'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoringL'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoringPascal Laurin
 
Ratez vos revue de code en 5 lecons devoxx fr 2016
Ratez vos revue de code en 5 lecons   devoxx fr 2016Ratez vos revue de code en 5 lecons   devoxx fr 2016
Ratez vos revue de code en 5 lecons devoxx fr 2016Michel Domenjoud
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileDenis Voituron
 
BDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilitéBDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilitéCARA_Lyon
 
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Jean-Pierre Lambert
 
Automatisations des tests fonctionnels avec Robot Framework
Automatisations des tests fonctionnels avec Robot FrameworkAutomatisations des tests fonctionnels avec Robot Framework
Automatisations des tests fonctionnels avec Robot Frameworklaurent bristiel
 

Tendances (20)

Pizza party 30-09-2011 bdd-cucumber
Pizza party 30-09-2011 bdd-cucumberPizza party 30-09-2011 bdd-cucumber
Pizza party 30-09-2011 bdd-cucumber
 
La revue de code : facile !
La revue de code : facile !La revue de code : facile !
La revue de code : facile !
 
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
 
Industrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHPIndustrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHP
 
Tests automatisés java script
Tests automatisés java scriptTests automatisés java script
Tests automatisés java script
 
[Agile Testing Day] Introduction
[Agile Testing Day] Introduction[Agile Testing Day] Introduction
[Agile Testing Day] Introduction
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !
 
Essential skills for the agile developer
Essential skills for the agile developerEssential skills for the agile developer
Essential skills for the agile developer
 
Université du soir - TDD
Université du soir - TDDUniversité du soir - TDD
Université du soir - TDD
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers
 
Test Driven Development, propulsé par les Legos!
Test Driven Development, propulsé par les Legos!Test Driven Development, propulsé par les Legos!
Test Driven Development, propulsé par les Legos!
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework Introduction
 
L'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoringL'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoring
 
Ratez vos revue de code en 5 lecons devoxx fr 2016
Ratez vos revue de code en 5 lecons   devoxx fr 2016Ratez vos revue de code en 5 lecons   devoxx fr 2016
Ratez vos revue de code en 5 lecons devoxx fr 2016
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
 
BDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilitéBDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilité
 
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
 
Automatisations des tests fonctionnels avec Robot Framework
Automatisations des tests fonctionnels avec Robot FrameworkAutomatisations des tests fonctionnels avec Robot Framework
Automatisations des tests fonctionnels avec Robot Framework
 

En vedette

La qualité au-delà du code - ConFoo 2012
La qualité au-delà du code - ConFoo 2012La qualité au-delà du code - ConFoo 2012
La qualité au-delà du code - ConFoo 2012Jean-Marc Fontaine
 
Industrialiser ses développements PHP - RMLL 2010
Industrialiser ses développements PHP - RMLL 2010Industrialiser ses développements PHP - RMLL 2010
Industrialiser ses développements PHP - RMLL 2010Jean-Marc Fontaine
 
Refactoring vers les design patterns pyxis v2
Refactoring vers les design patterns   pyxis v2Refactoring vers les design patterns   pyxis v2
Refactoring vers les design patterns pyxis v2Eric De Carufel
 
Blog Como Recurso Educativo
Blog Como Recurso EducativoBlog Como Recurso Educativo
Blog Como Recurso EducativoGustavo Aroca
 
Calendar religious pictures
Calendar religious picturesCalendar religious pictures
Calendar religious picturesz55578
 
Anem a "caçar " figures geoetriques 2n C.I.
Anem a "caçar " figures geoetriques        2n  C.I.Anem a "caçar " figures geoetriques        2n  C.I.
Anem a "caçar " figures geoetriques 2n C.I.escolaguillemisarn
 
Etude de cas e-réputation - groupe 4
Etude de cas e-réputation - groupe 4Etude de cas e-réputation - groupe 4
Etude de cas e-réputation - groupe 4Christophe Blazquez
 
Tipos De Conexiones A Internet
Tipos De Conexiones A InternetTipos De Conexiones A Internet
Tipos De Conexiones A Internetazuclariama
 
La facilitación de la plenitud espiritual clase 2
La facilitación de la plenitud espiritual clase 2La facilitación de la plenitud espiritual clase 2
La facilitación de la plenitud espiritual clase 2Recursos Cristianos. Org
 
Agenda Ciudadana por la Transparencia Cartagena y Bolívar
Agenda Ciudadana por la Transparencia Cartagena y BolívarAgenda Ciudadana por la Transparencia Cartagena y Bolívar
Agenda Ciudadana por la Transparencia Cartagena y BolívarTransparenciaporColombia
 
Negocios En Linea Globales Complete
Negocios En Linea Globales CompleteNegocios En Linea Globales Complete
Negocios En Linea Globales Completemaximo coconi torres
 

En vedette (20)

La qualité au-delà du code - ConFoo 2012
La qualité au-delà du code - ConFoo 2012La qualité au-delà du code - ConFoo 2012
La qualité au-delà du code - ConFoo 2012
 
Python avancé : Qualité de code et convention de codage
Python avancé : Qualité de code et convention de codagePython avancé : Qualité de code et convention de codage
Python avancé : Qualité de code et convention de codage
 
Industrialiser ses développements PHP - RMLL 2010
Industrialiser ses développements PHP - RMLL 2010Industrialiser ses développements PHP - RMLL 2010
Industrialiser ses développements PHP - RMLL 2010
 
Af confef
Af confefAf confef
Af confef
 
Geothermal energy
Geothermal energyGeothermal energy
Geothermal energy
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Qualité de code et bonnes pratiques
Qualité de code et bonnes pratiquesQualité de code et bonnes pratiques
Qualité de code et bonnes pratiques
 
Refactoring vers les design patterns pyxis v2
Refactoring vers les design patterns   pyxis v2Refactoring vers les design patterns   pyxis v2
Refactoring vers les design patterns pyxis v2
 
Blog Como Recurso Educativo
Blog Como Recurso EducativoBlog Como Recurso Educativo
Blog Como Recurso Educativo
 
Calendar religious pictures
Calendar religious picturesCalendar religious pictures
Calendar religious pictures
 
Anem a "caçar " figures geoetriques 2n C.I.
Anem a "caçar " figures geoetriques        2n  C.I.Anem a "caçar " figures geoetriques        2n  C.I.
Anem a "caçar " figures geoetriques 2n C.I.
 
Dr Abogado
Dr AbogadoDr Abogado
Dr Abogado
 
Presentation backup
Presentation backupPresentation backup
Presentation backup
 
Etude de cas e-réputation - groupe 4
Etude de cas e-réputation - groupe 4Etude de cas e-réputation - groupe 4
Etude de cas e-réputation - groupe 4
 
Los Perritos
Los PerritosLos Perritos
Los Perritos
 
Tipos De Conexiones A Internet
Tipos De Conexiones A InternetTipos De Conexiones A Internet
Tipos De Conexiones A Internet
 
Pourquoi infrastructure est importante LIDD
Pourquoi infrastructure est importante LIDDPourquoi infrastructure est importante LIDD
Pourquoi infrastructure est importante LIDD
 
La facilitación de la plenitud espiritual clase 2
La facilitación de la plenitud espiritual clase 2La facilitación de la plenitud espiritual clase 2
La facilitación de la plenitud espiritual clase 2
 
Agenda Ciudadana por la Transparencia Cartagena y Bolívar
Agenda Ciudadana por la Transparencia Cartagena y BolívarAgenda Ciudadana por la Transparencia Cartagena y Bolívar
Agenda Ciudadana por la Transparencia Cartagena y Bolívar
 
Negocios En Linea Globales Complete
Negocios En Linea Globales CompleteNegocios En Linea Globales Complete
Negocios En Linea Globales Complete
 

Similaire à [Agile Testing Day] Techniques avancées de tests

Agile Testing Day | Techniques avancées de refactoring
Agile Testing Day | Techniques avancées de refactoringAgile Testing Day | Techniques avancées de refactoring
Agile Testing Day | Techniques avancées de refactoringNicholas Suter
 
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?XP Day CH
 
Les Code Reviews : le guide de survie
Les Code Reviews : le guide de survieLes Code Reviews : le guide de survie
Les Code Reviews : le guide de survieNicolas VERINAUD
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarElsassJUG
 
La Meta-programmation
La Meta-programmation La Meta-programmation
La Meta-programmation Microsoft
 
Pratiques de développement pour équipes Agile
Pratiques de développement pour équipes AgilePratiques de développement pour équipes Agile
Pratiques de développement pour équipes AgileAgile Tour 2009 Québec
 
Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013Benoît Lafontaine
 
C'est quoi, du bon code ?
C'est quoi, du bon code ?C'est quoi, du bon code ?
C'est quoi, du bon code ?Rémi Lesieur
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 
Clean code game - Agile France 2013
Clean code game - Agile France 2013Clean code game - Agile France 2013
Clean code game - Agile France 2013Michel Domenjoud
 
Decouvrir CQRS (sans Event sourcing) par la pratique
Decouvrir CQRS (sans Event sourcing) par la pratiqueDecouvrir CQRS (sans Event sourcing) par la pratique
Decouvrir CQRS (sans Event sourcing) par la pratiqueThomas Pierrain
 
Fichier, Nouveau projet… Et après ?
Fichier, Nouveau projet… Et après ?Fichier, Nouveau projet… Et après ?
Fichier, Nouveau projet… Et après ?Microsoft
 
AgileTour Toulouse 2012 : clean code en pratique
AgileTour Toulouse 2012 : clean code en pratiqueAgileTour Toulouse 2012 : clean code en pratique
AgileTour Toulouse 2012 : clean code en pratiqueAgile Toulouse
 
JavaScript Devoxx France 2013
JavaScript Devoxx France 2013JavaScript Devoxx France 2013
JavaScript Devoxx France 2013Romain Linsolas
 
201001 TDD
201001 TDD201001 TDD
201001 TDDlyonjug
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilNormandy JUG
 
[Agile Tour Paris 2014] Comment rendre testable du code qui ne l'est pas ?
[Agile Tour Paris 2014] Comment rendre testable du code qui ne l'est pas ?[Agile Tour Paris 2014] Comment rendre testable du code qui ne l'est pas ?
[Agile Tour Paris 2014] Comment rendre testable du code qui ne l'est pas ?Christophe HERAL
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?CGI Québec Formation
 

Similaire à [Agile Testing Day] Techniques avancées de tests (20)

Agile Testing Day | Techniques avancées de refactoring
Agile Testing Day | Techniques avancées de refactoringAgile Testing Day | Techniques avancées de refactoring
Agile Testing Day | Techniques avancées de refactoring
 
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
 
Les Code Reviews : le guide de survie
Les Code Reviews : le guide de survieLes Code Reviews : le guide de survie
Les Code Reviews : le guide de survie
 
Coder propre !
Coder propre !Coder propre !
Coder propre !
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
 
La Meta-programmation
La Meta-programmation La Meta-programmation
La Meta-programmation
 
Pratiques de développement pour équipes Agile
Pratiques de développement pour équipes AgilePratiques de développement pour équipes Agile
Pratiques de développement pour équipes Agile
 
Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013
 
C'est quoi, du bon code ?
C'est quoi, du bon code ?C'est quoi, du bon code ?
C'est quoi, du bon code ?
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
Clean code game - Agile France 2013
Clean code game - Agile France 2013Clean code game - Agile France 2013
Clean code game - Agile France 2013
 
Decouvrir CQRS (sans Event sourcing) par la pratique
Decouvrir CQRS (sans Event sourcing) par la pratiqueDecouvrir CQRS (sans Event sourcing) par la pratique
Decouvrir CQRS (sans Event sourcing) par la pratique
 
Clean code en pratique
Clean code en pratiqueClean code en pratique
Clean code en pratique
 
Fichier, Nouveau projet… Et après ?
Fichier, Nouveau projet… Et après ?Fichier, Nouveau projet… Et après ?
Fichier, Nouveau projet… Et après ?
 
AgileTour Toulouse 2012 : clean code en pratique
AgileTour Toulouse 2012 : clean code en pratiqueAgileTour Toulouse 2012 : clean code en pratique
AgileTour Toulouse 2012 : clean code en pratique
 
JavaScript Devoxx France 2013
JavaScript Devoxx France 2013JavaScript Devoxx France 2013
JavaScript Devoxx France 2013
 
201001 TDD
201001 TDD201001 TDD
201001 TDD
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice Duteil
 
[Agile Tour Paris 2014] Comment rendre testable du code qui ne l'est pas ?
[Agile Tour Paris 2014] Comment rendre testable du code qui ne l'est pas ?[Agile Tour Paris 2014] Comment rendre testable du code qui ne l'est pas ?
[Agile Tour Paris 2014] Comment rendre testable du code qui ne l'est pas ?
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?
 

Plus de Cellenza

The PostBuildEvent : Retour sur la //Build 2017
The PostBuildEvent : Retour sur la //Build 2017The PostBuildEvent : Retour sur la //Build 2017
The PostBuildEvent : Retour sur la //Build 2017Cellenza
 
DevCon 3 : Containérisation d’applications
DevCon 3 : Containérisation d’applicationsDevCon 3 : Containérisation d’applications
DevCon 3 : Containérisation d’applicationsCellenza
 
DevCon 3 : BOT Framework & Luis
DevCon 3 : BOT Framework & LuisDevCon 3 : BOT Framework & Luis
DevCon 3 : BOT Framework & LuisCellenza
 
DevCon 3 : Azure API Management
DevCon 3 : Azure API ManagementDevCon 3 : Azure API Management
DevCon 3 : Azure API ManagementCellenza
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière Cellenza
 
02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC 02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC Cellenza
 
03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA 03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA Cellenza
 
04 - [ASP.NET Core] Entity Framework Core
04 - [ASP.NET Core] Entity Framework Core 04 - [ASP.NET Core] Entity Framework Core
04 - [ASP.NET Core] Entity Framework Core Cellenza
 
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, LinuxCellenza
 
Integration Summit 16 - Keynote Integration Trends
Integration Summit 16 - Keynote Integration TrendsIntegration Summit 16 - Keynote Integration Trends
Integration Summit 16 - Keynote Integration TrendsCellenza
 
Integration Summit 16 - Tour d'horizon d'Azure Logic Apps
Integration Summit 16 - Tour d'horizon d'Azure Logic AppsIntegration Summit 16 - Tour d'horizon d'Azure Logic Apps
Integration Summit 16 - Tour d'horizon d'Azure Logic AppsCellenza
 
Integration Summit 16 - Les nouveautés BizTalk Server 2016
Integration Summit 16 - Les nouveautés BizTalk Server 2016Integration Summit 16 - Les nouveautés BizTalk Server 2016
Integration Summit 16 - Les nouveautés BizTalk Server 2016Cellenza
 
Integration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid IntegrationIntegration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid IntegrationCellenza
 
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...Cellenza
 
Integration Summit 16 : IoT, Service Fabric et Logic App
Integration Summit 16 : IoT, Service Fabric et Logic AppIntegration Summit 16 : IoT, Service Fabric et Logic App
Integration Summit 16 : IoT, Service Fabric et Logic AppCellenza
 
Integration Summit 16 : Azure API Management
Integration Summit 16 : Azure API Management Integration Summit 16 : Azure API Management
Integration Summit 16 : Azure API Management Cellenza
 
Integration Summit 16 - Citizen Integrator / Flow - Power apps
Integration Summit 16 - Citizen Integrator / Flow - Power appsIntegration Summit 16 - Citizen Integrator / Flow - Power apps
Integration Summit 16 - Citizen Integrator / Flow - Power appsCellenza
 
[XamarinDay] Xamarin History - From 0 to microsoft acquisition !
[XamarinDay] Xamarin History - From 0 to microsoft acquisition ![XamarinDay] Xamarin History - From 0 to microsoft acquisition !
[XamarinDay] Xamarin History - From 0 to microsoft acquisition !Cellenza
 
[XamarinDay] Deep dive des produits Xamarin part 1
[XamarinDay] Deep dive des produits Xamarin part 1[XamarinDay] Deep dive des produits Xamarin part 1
[XamarinDay] Deep dive des produits Xamarin part 1Cellenza
 
[XamarinDay] Deep dive des produits Xamarin part 2
[XamarinDay] Deep dive des produits Xamarin part 2[XamarinDay] Deep dive des produits Xamarin part 2
[XamarinDay] Deep dive des produits Xamarin part 2Cellenza
 

Plus de Cellenza (20)

The PostBuildEvent : Retour sur la //Build 2017
The PostBuildEvent : Retour sur la //Build 2017The PostBuildEvent : Retour sur la //Build 2017
The PostBuildEvent : Retour sur la //Build 2017
 
DevCon 3 : Containérisation d’applications
DevCon 3 : Containérisation d’applicationsDevCon 3 : Containérisation d’applications
DevCon 3 : Containérisation d’applications
 
DevCon 3 : BOT Framework & Luis
DevCon 3 : BOT Framework & LuisDevCon 3 : BOT Framework & Luis
DevCon 3 : BOT Framework & Luis
 
DevCon 3 : Azure API Management
DevCon 3 : Azure API ManagementDevCon 3 : Azure API Management
DevCon 3 : Azure API Management
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière
 
02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC 02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC
 
03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA 03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA
 
04 - [ASP.NET Core] Entity Framework Core
04 - [ASP.NET Core] Entity Framework Core 04 - [ASP.NET Core] Entity Framework Core
04 - [ASP.NET Core] Entity Framework Core
 
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
 
Integration Summit 16 - Keynote Integration Trends
Integration Summit 16 - Keynote Integration TrendsIntegration Summit 16 - Keynote Integration Trends
Integration Summit 16 - Keynote Integration Trends
 
Integration Summit 16 - Tour d'horizon d'Azure Logic Apps
Integration Summit 16 - Tour d'horizon d'Azure Logic AppsIntegration Summit 16 - Tour d'horizon d'Azure Logic Apps
Integration Summit 16 - Tour d'horizon d'Azure Logic Apps
 
Integration Summit 16 - Les nouveautés BizTalk Server 2016
Integration Summit 16 - Les nouveautés BizTalk Server 2016Integration Summit 16 - Les nouveautés BizTalk Server 2016
Integration Summit 16 - Les nouveautés BizTalk Server 2016
 
Integration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid IntegrationIntegration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid Integration
 
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
 
Integration Summit 16 : IoT, Service Fabric et Logic App
Integration Summit 16 : IoT, Service Fabric et Logic AppIntegration Summit 16 : IoT, Service Fabric et Logic App
Integration Summit 16 : IoT, Service Fabric et Logic App
 
Integration Summit 16 : Azure API Management
Integration Summit 16 : Azure API Management Integration Summit 16 : Azure API Management
Integration Summit 16 : Azure API Management
 
Integration Summit 16 - Citizen Integrator / Flow - Power apps
Integration Summit 16 - Citizen Integrator / Flow - Power appsIntegration Summit 16 - Citizen Integrator / Flow - Power apps
Integration Summit 16 - Citizen Integrator / Flow - Power apps
 
[XamarinDay] Xamarin History - From 0 to microsoft acquisition !
[XamarinDay] Xamarin History - From 0 to microsoft acquisition ![XamarinDay] Xamarin History - From 0 to microsoft acquisition !
[XamarinDay] Xamarin History - From 0 to microsoft acquisition !
 
[XamarinDay] Deep dive des produits Xamarin part 1
[XamarinDay] Deep dive des produits Xamarin part 1[XamarinDay] Deep dive des produits Xamarin part 1
[XamarinDay] Deep dive des produits Xamarin part 1
 
[XamarinDay] Deep dive des produits Xamarin part 2
[XamarinDay] Deep dive des produits Xamarin part 2[XamarinDay] Deep dive des produits Xamarin part 2
[XamarinDay] Deep dive des produits Xamarin part 2
 

[Agile Testing Day] Techniques avancées de tests