99
L’équipe IT Oswald De Riemaecker, Anthony Laurain, Sebastien Retoux, Christophe Diprima, Christian Schramm 16 May 2013 Le Test chez atHome.lu Retour sur expérience Friday, May 17, 13

Intégration Continue et PHP

Embed Size (px)

DESCRIPTION

Retour sur Expérience sur l'intégraion continue et PHP

Citation preview

Page 1: Intégration Continue et PHP

L’équipe ITOswald De Riemaecker, Anthony Laurain,

Sebastien Retoux, Christophe Diprima, Christian Schramm

16 May 2013

Le Test chez atHome.luRetour sur expérience

Friday, May 17, 13

Page 2: Intégration Continue et PHP

L’équipe atHome

• Oswald De Riemaecker - Team Lead : Passionné de Linux, technologie open source, développement web et gestion de projet/produit Agile.

• Anthony Laurain - Senior Platform Developer (Zend Framework Certified developer)

• Sebastien Retoux - Tactical Coordinator and Release Manager

• Christophe DiPrima - UX/Intégrateur

• Christian Schramm - DevOps/Linux SysAdmin (Zend Framework Certified)

Friday, May 17, 13

Page 3: Intégration Continue et PHP

La Stratégie de testFriday, May 17, 13

Page 4: Intégration Continue et PHP

AutomatisésTests Unitaires

Tests de composantsTest GUI

Manuels & Automatisés

Tests FonctionnelsExemples

Tests sur StoryboardsTests de perception

MaquettesPrototypes / Simulation

Outils

Tests de performanceTests de ChargeTests de sécurité

Manuels

Tests exploratoiresScénariosTests d'utilisabilité

Tests d'acceptation (UAT)

Orientation Business

Orientation Technologie

Sout

ien

de l'

équi

pe Critique Produit

Q1

Q2 Q3

Q4

Les quatre quadrants du Test Agile de Brian Marick

Friday, May 17, 13

Page 5: Intégration Continue et PHP

La pyramide des tests automatisés de Mike Cohn

Unit Tests

Tests APITests d’Intégration

Tests de Composent

Tests GUI

Tests Manuel

Orientation Technologie

Orientation Business

Développons nous le bon système ?

Développons nous le système

correctement ?

Friday, May 17, 13

Page 6: Intégration Continue et PHP

Les outilsFriday, May 17, 13

Page 7: Intégration Continue et PHP

L'interface utilisateur avec Sahi

Les critères d'acceptance avec Behat

Le code avec PHPUnit

Les outils par couches

Unit Tests

Tests APITests d’Intégration

Tests de Composent

Tests GUI

Tests Manuel

Friday, May 17, 13

Page 8: Intégration Continue et PHP

Les tests unitaire avec PHPUnit

PHPUnit est un framework de tests unitaires PHP Nouveau développement avec une approche développement par le test (TDD)

Couverture maximal de nouvelle classe

Friday, May 17, 13

Page 9: Intégration Continue et PHP

Behat

s

Feature: Testing the RESTfulness of the immotype controller

Background: Given I am using the rest service and I am logged with "username:password"

Scenario: Fetching immotype by id Given that I want to find a "Immotype" When I request "/immotype/24" Then the "id" property equals "24" And the "description_en" property equals "Business Takeover" Then the response is JSON Then the response status code should be 200 When I request "/immotype/1000" Then the response status code should be 404

Friday, May 17, 13

Page 10: Intégration Continue et PHP

Behat Framework BDD pour PHP

s

Feature: Testing the RESTfulness of the immotype controller

Background: Given I am using the rest service and I am logged with "username:password"

Scenario: Fetching immotype by id Given that I want to find a "Immotype" When I request "/immotype/24" Then the "id" property equals "24" And the "description_en" property equals "Business Takeover" Then the response is JSON Then the response status code should be 200 When I request "/immotype/1000" Then the response status code should be 404

Friday, May 17, 13

Page 11: Intégration Continue et PHP

Behat Framework BDD pour PHP Orienté métier

s

Feature: Testing the RESTfulness of the immotype controller

Background: Given I am using the rest service and I am logged with "username:password"

Scenario: Fetching immotype by id Given that I want to find a "Immotype" When I request "/immotype/24" Then the "id" property equals "24" And the "description_en" property equals "Business Takeover" Then the response is JSON Then the response status code should be 200 When I request "/immotype/1000" Then the response status code should be 404

Friday, May 17, 13

Page 12: Intégration Continue et PHP

Behat Framework BDD pour PHP Orienté métier Utilise le Gerkhin Syntaxe "Un langage compréhensible orienté besoins métier, qui décrit le

comportement d'une application sans se préoccuper des détails de l'implémentation"

s

Feature: Testing the RESTfulness of the immotype controller

Background: Given I am using the rest service and I am logged with "username:password"

Scenario: Fetching immotype by id Given that I want to find a "Immotype" When I request "/immotype/24" Then the "id" property equals "24" And the "description_en" property equals "Business Takeover" Then the response is JSON Then the response status code should be 200 When I request "/immotype/1000" Then the response status code should be 404

Friday, May 17, 13

Page 13: Intégration Continue et PHP

Behat Framework BDD pour PHP Orienté métier Utilise le Gerkhin Syntaxe "Un langage compréhensible orienté besoins métier, qui décrit le

comportement d'une application sans se préoccuper des détails de l'implémentation" Basé sur les critères d'acceptance d'une histoire utilisateur, fonctionne très bien avec un gestion de produit agile

s

Feature: Testing the RESTfulness of the immotype controller

Background: Given I am using the rest service and I am logged with "username:password"

Scenario: Fetching immotype by id Given that I want to find a "Immotype" When I request "/immotype/24" Then the "id" property equals "24" And the "description_en" property equals "Business Takeover" Then the response is JSON Then the response status code should be 200 When I request "/immotype/1000" Then the response status code should be 404

Friday, May 17, 13

Page 14: Intégration Continue et PHP

Sahi

Friday, May 17, 13

Page 15: Intégration Continue et PHP

Sahi

C’est le haut de notre pyramide de test

Friday, May 17, 13

Page 16: Intégration Continue et PHP

Sahi

C’est le haut de notre pyramide de test Outil de test pour les applications web

Friday, May 17, 13

Page 17: Intégration Continue et PHP

Sahi

C’est le haut de notre pyramide de test Outil de test pour les applications web Enregistrement de scénario utilisateur dans le navigateur

Friday, May 17, 13

Page 18: Intégration Continue et PHP

Sahi

C’est le haut de notre pyramide de test Outil de test pour les applications web Enregistrement de scénario utilisateur dans le navigateur Lorsque nécessaire, les scénarios principaux, peu susceptible de changer au niveau interface mais ayant un risque de régression importante (Inscription d’utilisateur/Login/Alerte email)

Friday, May 17, 13

Page 19: Intégration Continue et PHP

Les outils pour l'ICFriday, May 17, 13

Page 20: Intégration Continue et PHP

La gestion des branches de développement

Master

Branch SprintBranch Sprint

Tactic / Bug Fixes Tactic / Bug Fixes Tactic / Bug Fixes Tactic / Bug FixesIntégration Continue

Remonté de la Master

Friday, May 17, 13

Page 21: Intégration Continue et PHP

La gestion des branches de développement

Logiciel de gestion de versions décentralisé

Master

Branch SprintBranch Sprint

Tactic / Bug Fixes Tactic / Bug Fixes Tactic / Bug Fixes Tactic / Bug FixesIntégration Continue

Remonté de la Master

Friday, May 17, 13

Page 22: Intégration Continue et PHP

La gestion des branches de développement

Logiciel de gestion de versions décentralisé Branch Master, la dernière en production

Master

Branch SprintBranch Sprint

Tactic / Bug Fixes Tactic / Bug Fixes Tactic / Bug Fixes Tactic / Bug FixesIntégration Continue

Remonté de la Master

Friday, May 17, 13

Page 23: Intégration Continue et PHP

La gestion des branches de développement

Logiciel de gestion de versions décentralisé Branch Master, la dernière en production Branch de Goal de Sprint/Epique de produit

Master

Branch SprintBranch Sprint

Tactic / Bug Fixes Tactic / Bug Fixes Tactic / Bug Fixes Tactic / Bug FixesIntégration Continue

Remonté de la Master

Friday, May 17, 13

Page 24: Intégration Continue et PHP

La gestion des branches de développement

Logiciel de gestion de versions décentralisé Branch Master, la dernière en production Branch de Goal de Sprint/Epique de produit Branch de prototypage pour le test rapide d’implémentation de solution technique

Master

Branch SprintBranch Sprint

Tactic / Bug Fixes Tactic / Bug Fixes Tactic / Bug Fixes Tactic / Bug FixesIntégration Continue

Remonté de la Master

Friday, May 17, 13

Page 25: Intégration Continue et PHP

Le système de build

Friday, May 17, 13

Page 26: Intégration Continue et PHP

Le système de build

Outil open source d'intégration continue

Friday, May 17, 13

Page 27: Intégration Continue et PHP

Le système de build

Outil open source d'intégration continue Interface avec des systèmes de gestion de versions

Friday, May 17, 13

Page 28: Intégration Continue et PHP

Le système de build

Outil open source d'intégration continue Interface avec des systèmes de gestion de versions Apache Ant et scripts Shell

Friday, May 17, 13

Page 29: Intégration Continue et PHP

Le système de build

Outil open source d'intégration continue Interface avec des systèmes de gestion de versions Apache Ant et scripts Shell Plugin Extreme feed back sur grand écran pour un retour rapide sur l’état de build

Friday, May 17, 13

Page 30: Intégration Continue et PHP

La construction sur conteneur virtuel

http://master.athome.lu

http://dev01.athome.luhttp://dev02.athome.luhttp://dev03.athome.luhttp://dev04.athome.lu...

Friday, May 17, 13

Page 31: Intégration Continue et PHP

La construction sur conteneur virtuel

OpenVZ permet à un serveur physique d'exécuter de multiples instances de systèmes d'exploitation isolés

http://master.athome.lu

http://dev01.athome.luhttp://dev02.athome.luhttp://dev03.athome.luhttp://dev04.athome.lu...

Friday, May 17, 13

Page 32: Intégration Continue et PHP

La construction sur conteneur virtuel

OpenVZ permet à un serveur physique d'exécuter de multiples instances de systèmes d'exploitation isolés

Installé à la création de job jenkins

http://master.athome.lu

http://dev01.athome.luhttp://dev02.athome.luhttp://dev03.athome.luhttp://dev04.athome.lu...

Friday, May 17, 13

Page 33: Intégration Continue et PHP

La construction sur conteneur virtuel

OpenVZ permet à un serveur physique d'exécuter de multiples instances de systèmes d'exploitation isolés

Installé à la création de job jenkins Copie de l’environnement de production

http://master.athome.lu

http://dev01.athome.luhttp://dev02.athome.luhttp://dev03.athome.luhttp://dev04.athome.lu...

Friday, May 17, 13

Page 34: Intégration Continue et PHP

Le processusFriday, May 17, 13

Page 35: Intégration Continue et PHP

Scrum with Agile Product Management

Epique

Epique

Epique

Epique En tant qu'administrateur ...

En tant qu'agent ..

En tant que visiteur ...

En tant que utilisateur ...

Critère d’acceptance:............................................................................................................................

Friday, May 17, 13

Page 36: Intégration Continue et PHP

Scrum with Agile Product Management

Carnet Produit

Epique

Epique

Epique

Epique En tant qu'administrateur ...

En tant qu'agent ..

En tant que visiteur ...

En tant que utilisateur ...

Critère d’acceptance:............................................................................................................................

Friday, May 17, 13

Page 37: Intégration Continue et PHP

Scrum with Agile Product Management

Carnet Produit Découpage en épique

Epique

Epique

Epique

Epique En tant qu'administrateur ...

En tant qu'agent ..

En tant que visiteur ...

En tant que utilisateur ...

Critère d’acceptance:............................................................................................................................

Friday, May 17, 13

Page 38: Intégration Continue et PHP

Scrum with Agile Product Management

Carnet Produit Découpage en épique Découpage en histoire utilisateurs

Epique

Epique

Epique

Epique En tant qu'administrateur ...

En tant qu'agent ..

En tant que visiteur ...

En tant que utilisateur ...

Critère d’acceptance:............................................................................................................................

Friday, May 17, 13

Page 39: Intégration Continue et PHP

Scrum with Agile Product Management

Carnet Produit Découpage en épique Découpage en histoire utilisateurs Critère d'acceptance (SEO/Code Postaux/ACL ...)

Epique

Epique

Epique

Epique En tant qu'administrateur ...

En tant qu'agent ..

En tant que visiteur ...

En tant que utilisateur ...

Critère d’acceptance:............................................................................................................................

Friday, May 17, 13

Page 40: Intégration Continue et PHP

Sprint Planning

En tant qu'administrateur ...

En tant qu'agent ..

En tant que visiteur ...

En tant que utilisateur ...

GOAL DE SPRINT

Critère d’acceptance:............................................................................................................................

Friday, May 17, 13

Page 41: Intégration Continue et PHP

Sprint Planning

Création de la branch de Goal de sprint GIT

En tant qu'administrateur ...

En tant qu'agent ..

En tant que visiteur ...

En tant que utilisateur ...

GOAL DE SPRINT

Critère d’acceptance:............................................................................................................................

Friday, May 17, 13

Page 42: Intégration Continue et PHP

Sprint Planning

Création de la branch de Goal de sprint GIT Création du Job Jenkins

En tant qu'administrateur ...

En tant qu'agent ..

En tant que visiteur ...

En tant que utilisateur ...

GOAL DE SPRINT

Critère d’acceptance:............................................................................................................................

Friday, May 17, 13

Page 43: Intégration Continue et PHP

Le Sprint

Master

Branch Sprint

Tactic / Bug FixesIntégration Continue

Remonté de la Master

Sandbox

Jenkins

Histoire Utilisateur 1PHP Unit / Behat Dev

Histoire Utilisateur 2PHP Unit / Behat Dev

Histoire Utilisateur 3PHP Unit / Behat Dev

Histoire Utilisateur 4PHP Unit / Behat Dev

Production

Tactic / Bug Fixes

VZ Branch de Sprint

VZ Master+ Manuel Testing + Validation+

+ Manuel Testing+

+ Manuel Testing+

Deploy Deploy Deploy

Intégration de la branch de Sprint

+

+

+

Friday, May 17, 13

Page 44: Intégration Continue et PHP

JenkinsFriday, May 17, 13

Page 45: Intégration Continue et PHP

Jenkins

• Des Jobs de branch de Goal de sprint • Le job Branch Master avec la master Sahi si Master successful• Le job de déploiement en production• Le modèle pour la création de nouveau job

Friday, May 17, 13

Page 46: Intégration Continue et PHP

Jenkins

Paramètre du build

Friday, May 17, 13

Page 47: Intégration Continue et PHP

Jenkins

Paramètre du build

• Synchronisation de la base de donnée de production, jenkins va chercher la dernier base en production et la réinstaller, ce paramètre est très utile pour valider les mise à jour SQL• Rebuild solr• Réinstallation complète du conteneur virtuel (avec installation système)• Version php + mariadb• Ainsi qu’une l’utilisation d’une base de donnée light

Friday, May 17, 13

Page 48: Intégration Continue et PHP

Jenkins

Extreme Feed back

• Voici un exemple • Lors du dernier build nous avons la branch highlight avec 1 test non passé

Friday, May 17, 13

Page 49: Intégration Continue et PHP

Jenkins

Rapport de Build avec Résultat de test

Friday, May 17, 13

Page 50: Intégration Continue et PHP

Jenkins

Message d’erreur pour le test qui n’a pas passé

• Le test vérifie que le service REST en GET retourne bien les statistiques de notre offre, il y a un problème de nom de colonne dans le modèle de la table des statistique• Détection et identification du problème rapide

Friday, May 17, 13

Page 51: Intégration Continue et PHP

Jenkins

En résumé

Friday, May 17, 13

Page 52: Intégration Continue et PHP

Jenkins

Jenkins nous permet donc:

En résumé

Friday, May 17, 13

Page 53: Intégration Continue et PHP

Jenkins

Jenkins nous permet donc:

Construction environnement virtuel

En résumé

Friday, May 17, 13

Page 54: Intégration Continue et PHP

Jenkins

Jenkins nous permet donc:

Construction environnement virtuel Intégration développement

En résumé

Friday, May 17, 13

Page 55: Intégration Continue et PHP

Jenkins

Jenkins nous permet donc:

Construction environnement virtuel Intégration développement Mise à jour et test de la base de donnée

En résumé

Friday, May 17, 13

Page 56: Intégration Continue et PHP

Jenkins

Jenkins nous permet donc:

Construction environnement virtuel Intégration développement Mise à jour et test de la base de donnée Mise à jour et test que Solr

En résumé

Friday, May 17, 13

Page 57: Intégration Continue et PHP

Jenkins

Jenkins nous permet donc:

Construction environnement virtuel Intégration développement Mise à jour et test de la base de donnée Mise à jour et test que Solr Installation outils de test

En résumé

Friday, May 17, 13

Page 58: Intégration Continue et PHP

Jenkins

Jenkins nous permet donc:

Construction environnement virtuel Intégration développement Mise à jour et test de la base de donnée Mise à jour et test que Solr Installation outils de test Test Unitaires

En résumé

Friday, May 17, 13

Page 59: Intégration Continue et PHP

Jenkins

Jenkins nous permet donc:

Construction environnement virtuel Intégration développement Mise à jour et test de la base de donnée Mise à jour et test que Solr Installation outils de test Test Unitaires Test BDD Behat

En résumé

Friday, May 17, 13

Page 60: Intégration Continue et PHP

Jenkins

Jenkins nous permet donc:

Construction environnement virtuel Intégration développement Mise à jour et test de la base de donnée Mise à jour et test que Solr Installation outils de test Test Unitaires Test BDD Behat Rapport de build

En résumé

Friday, May 17, 13

Page 61: Intégration Continue et PHP

Jenkins

Jenkins nous permet donc:

Construction environnement virtuel Intégration développement Mise à jour et test de la base de donnée Mise à jour et test que Solr Installation outils de test Test Unitaires Test BDD Behat Rapport de build Identification de tests qui ne sont pas passé

En résumé

Friday, May 17, 13

Page 62: Intégration Continue et PHP

Jenkins

Jenkins nous permet donc:

Construction environnement virtuel Intégration développement Mise à jour et test de la base de donnée Mise à jour et test que Solr Installation outils de test Test Unitaires Test BDD Behat Rapport de build Identification de tests qui ne sont pas passé Lancement d'autre build (Sahi)

En résumé

Friday, May 17, 13

Page 63: Intégration Continue et PHP

Jenkins

Jenkins nous permet donc:

Construction environnement virtuel Intégration développement Mise à jour et test de la base de donnée Mise à jour et test que Solr Installation outils de test Test Unitaires Test BDD Behat Rapport de build Identification de tests qui ne sont pas passé Lancement d'autre build (Sahi) Déploiement en production

En résumé

Friday, May 17, 13

Page 64: Intégration Continue et PHP

Jenkins

Jenkins nous permet donc:

Construction environnement virtuel Intégration développement Mise à jour et test de la base de donnée Mise à jour et test que Solr Installation outils de test Test Unitaires Test BDD Behat Rapport de build Identification de tests qui ne sont pas passé Lancement d'autre build (Sahi) Déploiement en production

En résumé

Friday, May 17, 13

Page 65: Intégration Continue et PHP

Behat

Le fichier de fonctionnalité

• Behat, le milieu de notre pyramide.• Vérifions pourquoi notre test behat n’est pas passé, nous avons ici nos critères d’acceptance sous forme de Gerkhin Syntaxe.

Friday, May 17, 13

Page 66: Intégration Continue et PHP

Behat

Le test behat en ligne de commande

• Nous avons donc un problème avec le contrôler REST statistiques global

Friday, May 17, 13

Page 67: Intégration Continue et PHP

Behat

Identification rapide du problème avec Jenkins

• Nous identifions rapidement sur base des derniers commits que le gateway Omniture Property Views à été changé

Friday, May 17, 13

Page 68: Intégration Continue et PHP

Behat

Correction de notre Méthode

• Nous pouvons corriger et relancer le build

Friday, May 17, 13

Page 69: Intégration Continue et PHP

Behat

Notre build passe

Friday, May 17, 13

Page 70: Intégration Continue et PHP

Behat

Notre test Behat passe

Friday, May 17, 13

Page 71: Intégration Continue et PHP

Behat

Jeux de donnée de test

• Behat et Jenkins nous permet d’avoir des jeux donnée pour les test manuel et GUI

Friday, May 17, 13

Page 72: Intégration Continue et PHP

Behat

En résumé

Friday, May 17, 13

Page 73: Intégration Continue et PHP

Behat

Behat nous permet donc:

En résumé

Friday, May 17, 13

Page 74: Intégration Continue et PHP

Behat

Behat nous permet donc:

Tester le métier, avec la même approche que le TDD, on écrit les critère d’acceptance de la fonctionnalité testée, ce qui permet de structuré sa pensée et son code, on pense par le test.

En résumé

Friday, May 17, 13

Page 75: Intégration Continue et PHP

Behat

Behat nous permet donc:

Tester le métier, avec la même approche que le TDD, on écrit les critère d’acceptance de la fonctionnalité testée, ce qui permet de structuré sa pensée et son code, on pense par le test.

Tester les ACL (Accès Control List)

En résumé

Friday, May 17, 13

Page 76: Intégration Continue et PHP

Behat

Behat nous permet donc:

Tester le métier, avec la même approche que le TDD, on écrit les critère d’acceptance de la fonctionnalité testée, ce qui permet de structuré sa pensée et son code, on pense par le test.

Tester les ACL (Accès Control List) Tester les services RESTful et sa sécurité

En résumé

Friday, May 17, 13

Page 77: Intégration Continue et PHP

Behat

Behat nous permet donc:

Tester le métier, avec la même approche que le TDD, on écrit les critère d’acceptance de la fonctionnalité testée, ce qui permet de structuré sa pensée et son code, on pense par le test.

Tester les ACL (Accès Control List) Tester les services RESTful et sa sécurité Injecter des données pour les tests manuel et GUI

En résumé

Friday, May 17, 13

Page 78: Intégration Continue et PHP

Sahi

Sahi Liens manquant

Friday, May 17, 13

Page 79: Intégration Continue et PHP

Sahi

Rapport Sahi

Friday, May 17, 13

Page 80: Intégration Continue et PHP

Sahi

Rapport de Test pour la publication d’offre

• Notre lien manquant

Friday, May 17, 13

Page 81: Intégration Continue et PHP

Sahi

Scripting Sahi

Friday, May 17, 13

Page 82: Intégration Continue et PHP

Sahi

Scripting Sahi

• Nous avons ajouté un système de dictionnaire pour pouvoir tester nos différents sites, par exemple l’utilisation de la ville Troisvierges sur athome.lu et Saarbruken sur athome.de• Nous faisons aussi des tests SEO, nous validons que les blocs SEO en bas de page redirige vers la bonne page et que celle-ci a bien les bons Title et Meta• Ce test nous a permis de trouver un problème avec la génération des Titles SEO que nous n’aurions certainement pas pu voir autrement.

Friday, May 17, 13

Page 83: Intégration Continue et PHP

Sahi

En résumé

Friday, May 17, 13

Page 84: Intégration Continue et PHP

Sahi

Sahi nous permet donc:

En résumé

Friday, May 17, 13

Page 85: Intégration Continue et PHP

Sahi

Sahi nous permet donc:

Tests sur plusieurs navigateurs

En résumé

Friday, May 17, 13

Page 86: Intégration Continue et PHP

Sahi

Sahi nous permet donc:

Tests sur plusieurs navigateurs Valider les fonctionnalités utilisateur critiques (Inscription/Login/Email Alerts)

En résumé

Friday, May 17, 13

Page 87: Intégration Continue et PHP

Sahi

Sahi nous permet donc:

Tests sur plusieurs navigateurs Valider les fonctionnalités utilisateur critiques (Inscription/Login/Email Alerts)

Valider navigation utilisateur

En résumé

Friday, May 17, 13

Page 88: Intégration Continue et PHP

Sahi

Sahi nous permet donc:

Tests sur plusieurs navigateurs Valider les fonctionnalités utilisateur critiques (Inscription/Login/Email Alerts)

Valider navigation utilisateur Valider liens SEO

En résumé

Friday, May 17, 13

Page 89: Intégration Continue et PHP

Sahi

Sahi nous permet donc:

Tests sur plusieurs navigateurs Valider les fonctionnalités utilisateur critiques (Inscription/Login/Email Alerts)

Valider navigation utilisateur Valider liens SEO

En résumé

Friday, May 17, 13

Page 90: Intégration Continue et PHP

Next Steps

Friday, May 17, 13

Page 91: Intégration Continue et PHP

Ce qui nous reste encore a faire:

Next Steps

Friday, May 17, 13

Page 92: Intégration Continue et PHP

Ce qui nous reste encore a faire:

Ajout de métrique, Code Coverage + PHP Tools (PHPcp/md ...)

Next Steps

Friday, May 17, 13

Page 93: Intégration Continue et PHP

Ce qui nous reste encore a faire:

Ajout de métrique, Code Coverage + PHP Tools (PHPcp/md ...) Améliorer les tests Sahi sur plusieurs navigateurs

Next Steps

Friday, May 17, 13

Page 94: Intégration Continue et PHP

Ce qui nous reste encore a faire:

Ajout de métrique, Code Coverage + PHP Tools (PHPcp/md ...) Améliorer les tests Sahi sur plusieurs navigateurs Implémenter des tests de performance

Next Steps

Friday, May 17, 13

Page 95: Intégration Continue et PHP

Ce qui nous reste encore a faire:

Ajout de métrique, Code Coverage + PHP Tools (PHPcp/md ...) Améliorer les tests Sahi sur plusieurs navigateurs Implémenter des tests de performance Implémenter JsTestDriver dans Jenkins

Next Steps

Friday, May 17, 13

Page 96: Intégration Continue et PHP

Ce qui nous reste encore a faire:

Ajout de métrique, Code Coverage + PHP Tools (PHPcp/md ...) Améliorer les tests Sahi sur plusieurs navigateurs Implémenter des tests de performance Implémenter JsTestDriver dans Jenkins

Next Steps

Friday, May 17, 13

Page 97: Intégration Continue et PHP

Questions

Friday, May 17, 13

Page 98: Intégration Continue et PHP

?Questions

Friday, May 17, 13

Page 99: Intégration Continue et PHP

Je tiens à remercier

L'équipe atHome pour leur travail! VA Consulting Vous !

Twitter: oswald_odrEmail: [email protected]

Remerciement

Friday, May 17, 13