Intérêt de l'automatisation des tests
Déploiement continu en production, 50 fois par jour
http://www.infoq.com/presentations/Continuous-Deployment-50-Times-a-Day
Certains y arrivent, pourquoi pas vous?
Intégration continue
- Chaque personne (ou équipe au niveau système) doit être responsable de l’intégration de sa partie
- Le contrôle de l’état stable doit être défini communément
- Le contrôle de l’état stable doit être passé avant intégration et revérifié après intégration
- La fabrication et le contrôle de l’état stable doivent être automatisés
- La fabrication et le contrôle de l’état stable doivent être effectués en moins d’un cycle d’intégration
- La gestion de configuration doit être adaptée à ce processus (et non l’inverse)
- Toute action apportant un état instable doit être corrigée en priorité avant toute autre action
Chaque personne (ou équipe au niveau système) doit être responsable de l’intégration de sa partie
- Vérifier avant soumission que rien n’est cassé
- Fournir les éléments de contrôle de la partie à soumettre
Le contrôle de l’état stable doit être défini communément
Le contrôle de l’état stable doit être passé avant intégration et revérifié après intégration
- Je pars d’un état stable (nouveau branchement ou mise à jour)
- Je développe mon code (et tests). Partie techniquement cohérente, doit correspondre à une tâche du backlog de sprint pour ceux qui ont la chance d’être en mode Agile
- Je passe mes tests
- Je me remets à jour du dernier état stable.
- Je repasse mes tests et passe les tests de contrôle d’état stable
- Si ok, je soumets mon développement
La fabrication et le contrôle de l’état stable doivent être automatisés
La fabrication et le contrôle de l’état stable doivent être effectués en moins d’un cycle d’intégration
- Cycle rapide (daily build) : build incrémental et tests de régression minimum
- Cycle moyen (Weekly build) : build total et tests de non régression normal
- Cycle long avant livraison (Release build) : build complet et tests complets
La gestion de configuration doit être adaptée à ce processus (et non l’inverse)
- Un tronc commun
- Une branche par version ou feature pour les gros projets (organisation Feature team)
- Seulement deux versions :
- celle représentant la dernière version en production
- celle pour le développement en cours
- Eventuellement une branche spécifique dans le cadre des prototypages, pour lesquels la totalité du code produit ne sera peut être pas réintégré, voire pas du tout.
Toute action apportant un état instable doit être corrigée en priorité avant toute autre action
- Etat du build : ok ou en erreur, vert ou rouge
- et/ou
- Etat des tests : ok ou anomalie détectée, vert ou rouge
Liste d'évaluation des outils de test fonctionnel
Initialisé par Gerard Meszaros, il a été complété lors du dernier workshop de l'Agile Alliance Functional Testing Tools group. Une discussion est en cours pour le transférer sur wikipedia.
Vous pouvez demander un accès en écriture pour y ajouter l'évaluation d'un outil non listé.
Intégration continue : Le petit plus d'Emmanuel Chenu
En plus de son côté ludique, c'est simple, efficace, pragmatique comme d'hab.
A conseiller absolument.
Pour 20€ seulement, moins cher qu'un écran plat 20 pouces en vert et rouge et tellement plus accrocheur.
A lire ici :
INTEGRATION CONTINUE + ANDON = JIDOKA
A voir ici :
i-buddy
Bonne rentrée à toutes et à tous!
Source et rangement
Tout comme à la maison (d’après ma femme !), il est utile pour retrouver ces petits de faire un peu de rangement.
L’organisation du code source ne déroge pas à cette règle. Cela peut paraître simpliste, voir inutile de faire un papier sur ce sujet, mais l’expérience me prouve que ce sujet n’est pas toujours appliqué.
Le principe est simple :
- L’environnement de développement doit être identique à l’environnement de production.
J’entends par là que les sources, les fichiers de configuration, les scripts et tous autres artefacts qui servent à la mise en œuvre de l’application doivent être rangés dans des répertoires organisés de la même manière que ceux déployer pour exécution.
Ce principe de base d’organisation de la configuration logicielle simplifie le déploiement, les procédures d’installation en évitant les « pertes » de fichiers.
Autre avantage à cette organisation des sources et de limiter la divergence d’exécution entre la version lancée sous Eclipse et celle déployée. De permettre donc de traiter (identifier, voir reproduire) les bugs en environnement de dév, plutôt qu’en environnement d’intégration où il n’y a souvent pas de débugger.
Avec Eclipse, j’engage les développeurs à utiliser un projet par package fonctionnel mais aussi technique : 1 pour le client, 1 pour le serveur, 1 pour les tests, 1 pour les « commons ».
Cela garantie la séparation des couches et évite au développeur de tirer des classes serveurs directement dans le package client.
L’utilisation des Working Set Eclipse permet d’améliorer la vue lorsqu’il y a une multitude de projets.
Sans parler de standardisation (breeuuu…), l’organisation des sources pour le développement d’une appli web est souvent contrainte par l’organisation des conteneurs (webapps).
Répertoire WEB-INF, lib, js, conf, … Certains plugins Eclipse imposent même l’arborescence des sources.
Il est intéressant de s’inspirer de ces principes pour le développement d’application non web.
Agilité et Web2.0
"Impact et retours du Web 2.0 en entreprise".
http://cct.cnes.fr/cct05/public/sommaire.htm
J'ai pour ma part présenté l'apport du Web 2.0 dans le contexte de nos projets Agiles.
L'apport fonctionnel dans un premier temps: Communautaire, participatif et créatif.
Puis l'apport des technologies Web2.0 (type Ajax, Flex, ...), apportant une souplesse ergonomique fort pratique, et changeant nos vieux sites Web en un framework collaboratif grâce à l'intégration de différents outils : Confluence, Rally, Trac, Eclipse (Mylin), Continuum, ...
Il est intéressant de voir que le Web 2.0, tout comme l'Agilité, fait encore peur en entreprise.
Est-ce la peur de la perte de contrôle pour certains au regard de la prise de responsabilité par les autres?
A suivre...