Validation

Si votre code mérite d'être écrit, il mérite d'être testé.

Automatiquement.

Nous vous aidons à mettre en place une infrastructure de tests automatisés.

Méthodologie

  • Tests d'installation
  • Calcul du nombre de lignes de code
  • Respect des règles de codage
  • Présence de doublons de code
  • Tests unitaires
  • Mesure du taux de couverture des tests
  • Tests fonctionnels
  • Tests en charge
  • Par rapport à l'outil de test, est-ce que l'application est locale, distante ou distribuée ?
  • Est-ce qu'elle est autonome ou intégrée dans un banc de tests matériel ou logiciel plus large ?
  • Est-ce qu'il s'agit d'une application de production, de test ou de développement ?
  • Lancement de scripts d'installation
  • Calcul du nombre de lignes de code
  • Exécution de tests unitaires
  • Utilisation des interfaces réseaux de l'application (Modbus, HTTP, TCP/IP, Ethernet...)
  • Utilisation des interfaces logicielles locales de l'application (signaux Unix...)
  • Utilisation des interfaces matérielles locales de l'application (lien série, port parallèle, port USB, interface GPIB...)
  • Utilisation des simulateurs fournis par l'environnement de développement de l'application
  • Envoi de données sur l'entrée standard
  • Écriture de fichiers pollés par l'application
  • Lancement de l'application en ligne de commande
  • Modification des fichiers de configuration de l'application
  • Développement de wrappers qui embarquent seulement une partie de l'application et qui sont plus facilement testables
  • Vérification du respect des règles de codage
  • Détection des doublons de code
  • Vérification des tests unitaires, en mesurant au passage le taux de couverture des tests
  • Vérification du contenu de fichiers (configuration, logs, statistiques, CSV...)
  • Analyse de pages web renvoyés par un serveur web
  • Analyse des réponses renvoyés par les interfaces réseaux ou locales de l'application
  • Analyse de la sortie standard et de la sortie d'erreur
  • Générer des rapports (images, pages web, fichiers PDF, fichiers CSV...)
  • Faire une analyse de l'évolution des résultats pour une série de versions différentes de l'application
  • Faire une analyse de la stabilité des résultats pour une série de tests avec une même version de l'application
  • Générer des alertes (mail, SMS, SNMP...)
  • Alimenter une base de données
  • Alimenter un serveur d'intégration continue

Exemples

Ce site web, développé avec Django, est un exemple d'application écrite en Python et testée automatiquement.

Et on détaille comment la méthodologie a été appliquée à ce cas précis.

On a appliqué la même méthodologie au cas d'une application C temps réel, embarquée dans des modems de télécommunications.

Les tests qui ont été effectués sont détaillés ici.