Top Banner
Valider par des tests Christophe Villeneuve @hellosct1
37

Valider par des tests - Blend

Jun 25, 2015

Download

Technology

Présentation effectuée au Blend Web Mix 2014 sur "Valider par des tests"
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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