37
Valider par des tests Christophe Villeneuve @hellosct1

Valider par des tests - Blend

Embed Size (px)

DESCRIPTION

Présentation effectuée au Blend Web Mix 2014 sur "Valider par des tests"

Citation preview

Page 1: Valider par des tests - Blend

Valider par des tests

Christophe Villeneuve@hellosct1

Page 2: Valider par des tests - Blend

Qui... est Christophe Villeneuve ?

<<

afup – lemug.fr – mysql – mariadb – drupal – demoscene – firefoxos – drupagora – phptour – forumphp – solutionlinux – demoinparis – ici et maintenant – eyrolles – editions eni – programmez – linux pratique – webriver – phptv – neuros - elephpant

Page 3: Valider par des tests - Blend

Les points abordés aujourd'hui :

● Le Pourquoi du comment...● Les TODO (tests) à connaître● Les Tests en mode continu

Page 4: Valider par des tests - Blend

Expérience sur... Les tests

✔ « Des fois cela plante »

Citations

✔ « On a testé, …

il y a 3 mois lors de la dernière livraison...

Pas eu le temps... »

Page 5: Valider par des tests - Blend

L'importance des tests VS les préjugés

✔ Le code peut casser

✔ Changer le nom d'un fichier

✔ Pas le temps d'en faire

✔ C'est long manuellement

Pourquoi c'est utile ? Et L'intérêt...✔ Coûte du temps au début

✔ En fait gain après

✔ Nécessite de la rigueur et de la constante

Page 6: Valider par des tests - Blend

Les différents types de tests

Tests Unitaires● Module / classe / méthode

Tests fonctionnels● l'interface utilisateur testée par le client

Tests intégrations● Tester la navigation, et l'interface utilisateur

Tests Automatisés

Tests de charge / Performance

Tests d'ergonomie

Tests de sécurité

Une idée ?Une idée ?

Page 7: Valider par des tests - Blend

Tests : approche 'classique'

Tests IHM

Tests d'intégration

Tests unitaires

Tests Acceptation

ON OUBLIEle slide

ON OUBLIEle slide

Page 8: Valider par des tests - Blend

Tests de Mike Cohn : approche 'agile'

Tests Manuels

Tests automatisésTests GUI

Tests APITests d'intégrationTests des composants

Tests unitaires

Orientations

Business

Développons nous le bon système ?

Technique

Développons nous le système correctement ?

IMPORTANTIMPORTANT

Page 9: Valider par des tests - Blend

Les tests à connaître

Page 10: Valider par des tests - Blend

Tests unitaires...

En pratique

Page 11: Valider par des tests - Blend

Tests unitaires

✔ Ecrire le code comme des spécifications

✔ Ecrire un test qui échoue

✔ Ecrire un test qui est bon

✔ Un test doit tester la plus petite portion possible du code

✔ Eviter les redondance

Déroulement Quoi tester ?✔ Un module

✔ Une classe

✔ Une méthode

✔ Tester✔ Ce qui est important✔ Le risque de casser✔ Les parties que vous

touchez souvent

Page 12: Valider par des tests - Blend

Tests unitaires : quelques Frameworks

✔ jUnit

✔ SimpleTest / PHPUnit / Atoum

✔ PyUnit

✔ More

✔ ...

Page 13: Valider par des tests - Blend

Tests fonctionnels...

En pratique

Page 14: Valider par des tests - Blend

Tests Fonctionnels

✔ Prépare outil & API

✔ On le partage

✔ On récupère le résultat

Déroulement Quoi tester ?✔ Nous... Rien

✔ C'est le client

✔ Tester✔ Si les fonctionnalités

demandées sont bien supportées

(ex : port)

Page 15: Valider par des tests - Blend

Tests Fonctionnels : utilisation

✔ Selenium

✔ Behat

✔ Fitness

✔ Cucumber

✔ GreenPepper

Outils

Page 16: Valider par des tests - Blend

Tests Intégrations...

En pratique

Page 17: Valider par des tests - Blend

Tests Intégrations

✔ 1 Navigation de la prod.

✔ Générer le script pour repérer les modifications de comportement

✔ 1 exécution sur le nouveau serveur

Déroulement Pourquoi ?✔ Simulation d'un être

humain

✔ Détection des problèmes éventuels

✔ Tester✔ Le comportement de

navigation

Page 18: Valider par des tests - Blend

Tests Intégrations : utilisation

✔ Selenium

✔ Sikuli

✔ Hudson

✔ Jenkins

✔ PhpUnderControl

✔ ...

Outils

Page 19: Valider par des tests - Blend

Tests Automatisés...

En pratique

Page 20: Valider par des tests - Blend

Tests Automatisés

✔ C'est systématique

✔ C'est répétitif

✔ Automatisable

Jouer par automate

Déroulement Pourquoi ?✔ Association des tests

✔ Tester✔ Tests unitaires✔ Tests fonctionnels✔ Tests intégrations

Page 21: Valider par des tests - Blend

Tests Automatisés : utilisation

✔ Selenium

✔ Behat

✔ ...

Outils

Page 22: Valider par des tests - Blend

Tests de charge...

En pratique

Page 23: Valider par des tests - Blend

Tests de charge

✔ Préparer un scénario

✔ Saisir le nombre de connexion simultané

✔ Voir le résultat

Déroulement Pourquoi ?✔ Générer une charge

réaliste avec 1 scénario

✔ Superviser un test de charge

✔ Analyser les résultats

✔ Tester✔ Pages à 'risques'

Page 24: Valider par des tests - Blend

Tests de charge : utilisation

✔ Java EE

✔ Tsung

✔ jMeter

Outils

Page 25: Valider par des tests - Blend

Tests d'ergonomie...

En pratique

Page 26: Valider par des tests - Blend

Tests d'ergonomie

✔ 1 lieu neutre

✔ Trouver des personnes tiers (béta testeurs)

✔ Un observateur

✔ Noté

✔ Résultat

Déroulement Pourquoi ?✔ Interaction

Homme/Machine

✔ Critères d'utilité, d'utilisabilité, de satisfaction

✔ Tester✔ La navigation✔ La conception✔ Le visuel

Page 27: Valider par des tests - Blend

Tests d'ergonomie : utilisation

✔ Aucun... !!!! ???? !!!!Outils

Page 28: Valider par des tests - Blend

Tests de sécurité...

En pratique

Page 29: Valider par des tests - Blend

Tests de sécurité

✔ Configuration API

✔ Exécution

✔ Voir le résultat

Déroulement Pourquoi ?✔ Un rapport TOP 10 de

Owasp

✔ Tester✔ La totalité du projet

Page 30: Valider par des tests - Blend

Tests de sécurité : utilisation

✔ ...Outils

Page 31: Valider par des tests - Blend

Les tests en continu

Page 32: Valider par des tests - Blend

Le début du commencement

● Suivre une procédure claire ● Faire un essai sur un serveur de tests/preprods

● Pas de production du 1er coup

● Prévoir des versions identiques ● OS / Serveur / Logiciels...

● Contrôler la validation des sources ● tar.gz + clef

Quelques règles

Quelques règles

Page 33: Valider par des tests - Blend

Automatiser les taches : déroulement

Développements

Serveur Intégration

Tests & validation

Production + tag

Déploiement

Déploiement serveur prod.Tests

ServeurPréprodServeurPréprod

ServeurTest clientServeur

Test client

On teste

Page 34: Valider par des tests - Blend

Automatiser les tâches

● Shell-scripts

● Pear

● Ant

● Phing

● Weploy

● Behat

Outils

Page 35: Valider par des tests - Blend

Principe de fonctionnement✔ Checkout du projet

✔ Lancement des tests (ex : tests unitaires)

✔ Création d'une archive

✔ Transfert et déploiement en ssh / ftp

✔ Possible Rollback

Valider l'étape

Page 36: Valider par des tests - Blend

En résumé... Les tests c'est

● Proche de l'intégration continue● DevOps● Qualité● et...

Les tests passent (après) par la fête

Page 37: Valider par des tests - Blend

Merci

@hellosct1

http://blog.hello-design.fr

http://www.hello-design.fr