Faire la démonstration que de bonnes pratiques de génie logiciel peuvent s’appliquer à PowerShell via des mécanismes d’intégration continue (CI) et de déploiement continu (CD) en utilisant Azure DevOps
Microsoft Experieces 2016 - Retour d’expériences sur TFS Online
Power shell quality-pt2
1. Assurer la qualité de
vos outils PowerShell
Partie 2
Automatisation de métriques dans
Azure DevOps
2. INVOKE-PRESENTER
• Patrick Lavallée, bachelier en Génie des TI
• 12 ans d’expérience, 5 dernières années avec SharePoint
• Nexus Innovations
• Automatisation ++
@decapent
4. PRINCIPES DIRECTEURS
« If your solution doesn’t feel like magic, you are not done automating it! »
Nik Charlebois
« Du code déployé en production sans test, c’est déjà du code legacy! »
Simon Turcotte-Langevin
5. MÉTRIQUES
MÉTRIQUE #1 – TESTS BRISÉS
Indice de robustesse
MÉTRIQUE #2 – COUVERTURE DE CODE
Indice de fiabilité
MÉTRIQUE #3 – ANALYSE SYNTAXIQUE
Indice de standardisation
8. • Du nouveau code livré provient d’une feature branch isolée
• Une Pull Request sera faite vers la branche visée (develop)
• Le code est intégré suite à la révision par les pairs
HYPOTHÈSES DU FLOT DE TRAVAIL
Outils PowerShell – Tout scripts contenant de la logique aidant votre organisation / clients
Qualité
Robustesse
Fiabilité
Standardisation
Qualité automagique
Vers PowerShell Gallery
Watch-Demo
Principes directeurs
Rappel sur les métriques
Pester – Test Engine
Script Analyser – Code Analysis
TEST BRISÉS
Prouve que le système présente une défaillance
Plus bas niveau de documentation d’un système
COUVERTURE DE CODE
Diminue les chances d’avoir des défectuosités cachées, (s’exprime en %)
CODE ANALYSIS
Productivité ++
Maintenance ++
Dans un monde où la complexité ne cesse d’augmenter, avoir en place des bonnes pratiques de génie logiciel telles que l’écriture systématique de tests, de l’analyse de code, de l’intégration et du déploiement continu, est un incontournable. Ceux-ci permettront à votre organisation de sauver temps et argent mais aussi de nombreuses migraines à votre équipe de développement.