what is infrastructure testing
Ce guide complet des tests d'infrastructure couvre ses avantages, ses défis, ses outils et méthodologies de test d'infrastructure:
L'infrastructure est partagée entre de nombreux projets. Les tests d'infrastructure sont les tests des dépendances matérielles et logicielles requises pour exécuter des produits logiciels. Il permet de couvrir les risques produits liés à l'infrastructure cible.
Ce didacticiel vous aidera à apprendre les tests d'infrastructure à partir de zéro. Nous couvrirons des détails complets tels que les avantages et les défis, qui peut effectuer, quand effectuer et les techniques pour effectuer ces tests. Les outils de test d'infrastructure sont également traités dans ce didacticiel.
Ce que vous apprendrez:
- Qu'est-ce que l'infrastructure?
- Qu'est-ce que le test d'infrastructure?
- Méthodologies de test d'infrastructure
- Outils de test d'infrastructure
- Conclusion
Qu'est-ce que l'infrastructure?
L'écosystème d'infrastructure informatique comprend les plates-formes de systèmes d'exploitation (telles que Windows, UNIX, Linux, macOS), les plates-formes matérielles informatiques (telles que Dell, IBM, Sun, HP, Apple), les plates-formes Internet (telles que Apache, Cisco, Microsoft IIS, .NET ), La gestion et le stockage des données (comme IBM DB2, Oracle, SQL Server, MySQL) et les applications logicielles d'entreprise (telles que SAP, Oracle, Microsoft).
Qu'est-ce que le test d'infrastructure?
Chaque logiciel nécessite une infrastructure pour effectuer ses actions. Le test d'infrastructure est le processus de test qui couvre le matériel, les logiciels et les réseaux. Cela implique le test de tout code qui lit les valeurs de configuration de différents éléments du cadre informatique et les compare aux résultats attendus.
Cela réduit les risques d'échec. Ce test comprend des exercices de test, des procédures pour garantir que les applications informatiques et l'infrastructure fondamentale sont réglées pour offrir une exécution, une adaptabilité, une qualité inébranlable, une accessibilité, des performances et une évolutivité. L'objectif est de tester l'infrastructure entre les environnements de test, les outils de test et les environnements de bureau.
Pourquoi des tests d'infrastructure sont-ils nécessaires?
Les entreprises dépensent beaucoup d'argent pour s'assurer que leurs applications métier sont testées à la perfection. Cependant, la base de base, c'est-à-dire l'infrastructure qui héberge et transporte ces applications, est de temps en temps testée et généralement sous-estimée.
différence entre le test unitaire et le test d'intégration
Des tests d'infrastructure sont nécessaires pour atténuer le risque de défaillance de tout composant matériel ou logiciel. Lorsqu'une nouvelle conception d'infrastructure est préparée pour le logiciel, il devient nécessaire d'effectuer ces tests. Il est nécessaire de s'assurer que la nouvelle fonctionnalité d'infrastructure fonctionne comme prévu. Les problèmes surviennent plus probablement lorsqu'un nouveau module d'infrastructure est intégré au projet.
Les défaillances d'infrastructure surviennent lorsqu'aucun test n'est prévu sur une infrastructure évolutive. Par conséquent, pour éviter les perturbations et les problèmes de dernière minute, ces tests doivent être effectués.
Ces tests sont nécessaires pour identifier les défauts qui n'ont pas été trouvés efficacement au cours des différents processus de test. Il devient important d'analyser l'application logicielle chaque fois que les ressources matérielles et logicielles sont modifiées. Il est fait pour analyser l'efficacité et les performances du système.
La mise en œuvre en temps opportun de ce type de test est nécessaire car les projets impliquent un coût élevé en infrastructure. Par conséquent, une bonne connaissance de ces tests est nécessaire pour minimiser les coûts liés aux risques du projet. Pour éviter tout échec, ce test est nécessaire en tant que norme de l'industrie.
Quels sont les avantages des tests d'infrastructure?
L'approche planifiée et exhaustive des tests d'infrastructure offre de nombreux avantages à un produit logiciel ainsi qu'aux organisations.
Quelques avantages sont énumérés ci-dessous:
- Réduction des échecs de production.
- Amélioration de l'identification des défauts avant l'exécution de la production. Améliorez la qualité de l'infrastructure sans aucun glissement de défaut en production.
- Exécution des tests accélérée, permettant une mise en service rapide.
- Il contribue à des économies annuelles de coûts dans les opérations ainsi que dans les affaires.
- Confirmez que le logiciel fonctionne selon une procédure systématique et contrôlée.
- Réduction des temps d'arrêt.
- Amélioration de la qualité de service.
- Disponibilité d'environnements stables.
- Réduction des coûts liés aux risques.
- Meilleure expérience utilisateur.
Défis des tests d'infrastructure
Examinons quelques défis auxquels les entreprises sont confrontées lorsqu'elles souhaitent adopter les tests d'infrastructure.
# 1) Environnement distant
Les environnements ou les ressources de test sont positionnés dans des lieux topographiquement éloignés, ce qui oblige les équipes de test à s'appuyer sur des groupes de support de la zone pour gérer les défis liés à l'équipement, aux composants matériels, aux composants logiciels, au réseau, etc. retards, en particulier lorsque les équipes sont situées dans des fuseaux horaires différents.
# 2) Absence d'une équipe dédiée
Le manque de connaissances au sein de l'équipe est un défi majeur pour effectuer ces tests. Une équipe dédiée est nécessaire pour maintenir les informations relatives à toutes les activités, y compris les horaires, les plans, la couverture, les rapports d'état.
# 3) Enquête sur les problèmes d'environnement de test
Plusieurs fois, les problèmes d'environnement de test n'ont pas pu être résolus et nécessitent une enquête. Une coordination avec les équipes concernées est nécessaire jusqu'à ce que le problème soit résolu.
# 4) Maintenir les environnements en un seul endroit
Le maintien d'un entrepôt commun d'environnements de test, leur ancienne compatibilité, ainsi que les dernières versions, posent un défi majeur lors de l'exécution de ces tests. Les détails de connectivité et les configurations de toutes les versions ne sont pas conservés.
# 5) Travail manuel
Peu d'activités impliquées dans ces tests nécessitent un travail manuel car aucun outil n'est disponible. Cela conduit à une erreur humaine et à des retards dans le processus.
# 6) Absence de définition standard pour les tests d'infrastructure
La plupart des gens ne sont toujours pas au courant de la mise en œuvre et des processus. Des connaissances et une compréhension inappropriées entraînent souvent des difficultés de mise en œuvre. De nombreux nouveaux problèmes surgissent qui peuvent affecter la stabilité du processus.
# 7) Équipes isolées
Il existe un grand écart entre les emplacements des équipes. Cela conduit généralement à un manque de transparence et à un mauvais travail d'équipe.
Qui peut effectuer des tests d'infrastructure?
Différentes équipes sont impliquées dans ce type de test. Ceux-ci sont expliqués ci-dessous:
# 1) Équipe de test d'infrastructure
L'équipe de test de l'infrastructure possède un bon nombre de connaissances liées à ces tests. Ils sont également impliqués dans l'équipe d'assurance qualité. Cette équipe sait comment tester l'infrastructure informatique. Cette équipe sait concevoir des cas de test pour ce type de test.
# 2) Équipe de l'administrateur système
L'équipe de l'administrateur système teste souvent l'infrastructure au niveau du réseau. Conception d'équipe et documentation des cas de test en fonction de leur expérience. Ils sont responsables de s'assurer que les applications ne sont pas impactées après tout changement dans le réseau.
# 3) Équipe de maintenance des infrastructures
Cette équipe joue un rôle très important. Ils sont impliqués à un stade précoce et sont responsables de définir les environnements de test conformément aux exigences. Ils participent à la planification des tests et à la maintenance des environnements d'infrastructure.
# 4) Équipe d'assurance qualité
L'équipe QA est chargée d'exécuter le test de régression. Ils sont également impliqués dans les tests d'intégration. Ils effectuent des tests sur différents environnements de test créés selon différentes infrastructures.
# 5) Chef de projet
Le chef de projet est chargé de gérer le projet. Ils participent à la planification, à la conception et à la documentation des cas de test requis pour ce type de test. Un chef de projet est en phase avec toutes les équipes.
Quand effectuer des tests d'infrastructure?
Il est urgent d'effectuer ces tests chaque fois que des modifications liées à l'infrastructure sont introduites.
Des exemples de tels changements sont:
- Tout nouveau correctif du système est développé.
- Toutes les nouvelles mises à jour du système sont expérimentées.
- Toute mise à jour du système d'exploitation.
- La version / structure de la base de données est mise à niveau.
- Lorsqu'il y a une augmentation de la mémoire pour les serveurs.
- Mise en place du nouvel outil.
- Correctifs de sécurité.
- Mise à jour logicielle.
Parfois, ce type de test devient plus important lors de la migration de la base de données ou du centre de données. Une plus grande concentration est nécessaire lorsqu'il y a des changements divers et rapides dans l'application et lorsque des migrations d'infrastructure sont impliquées.
Il est également effectué lors de l'introduction de la prise en charge de nouveaux appareils pour les logiciels.
Exemple:
- Nouveaux ordinateurs portables / ordinateurs de bureau
- Nouveaux appareils mobiles
- Nouveaux outils tiers
Méthodologies de test d'infrastructure
Nous avons différents modules dans ce domaine. Peu d'entre eux sont répertoriés ci-dessous:
- Infrastructure serveur / client
- Migration de données
- Test d'infrastructure dans le cloud
- Test au niveau du réseau
- Installation / Désinstallation / Déploiement
- Infrastructure d'environnement de test
- Approche TDD
# 1) Infrastructure serveur / client
Les serveurs comprennent les serveurs Web, les serveurs de fichiers, les serveurs de messagerie, les serveurs proxy, les serveurs virtuels et les serveurs physiques sur le matériel. Le client comprend le système d'exploitation, les applications, les paramètres utilisateur, etc. Les serveurs exécutent différents services et ces services peuvent être utilisés par les clients.
meilleur site Web pour regarder l'anime doublé
L'objectif principal est de tester la qualité des serveurs, des postes de travail, des systèmes d'exploitation et du matériel. Les composants serveur / client sont testés pour garantir que les performances de l'infrastructure sont améliorées dans l'environnement de production. Il comprend également des tests d'installation ou de désinstallation d'applications, des tests de compatibilité du navigateur, des tests d'intégration avec différentes versions du système d'exploitation et des paramètres utilisateur.
Procédure:
- La chose la plus importante est de recueillir les exigences des parties prenantes.
- Concevoir un plan de test selon la compréhension de l'infrastructure requise.
- Des cas de test sont ensuite conçus pour couvrir la prise en charge des systèmes d'exploitation, les scénarios de mise à niveau, la portée des tests d'infrastructure serveur / client, ainsi que les tests de fonctionnalités.
- Après l'approbation des cas de test, l'équipe QA exécute chaque scénario et les cas de test correspondants.
Tous les changements liés au serveur / client comme la mise à niveau, les changements de configuration sont déjà testés sur les configurations d'assurance qualité, ce qui garantit qu'il y aura moins d'impact possible dans l'environnement de production. En outre, différentes versions de système d'exploitation seront testées avant le déploiement en production. De plus, si quelque chose échoue en production, les procédures de secours sont testées au préalable pour assurer la sauvegarde.
# 2) Migration des données
La migration de données inclut les données migrées de l'ancienne version vers la nouvelle version, les données migrées d'un serveur à un autre, ainsi que les données migrées vers différentes configurations.
L'objectif principal des tests de migration de données est de tester les migrations de données sur différentes versions, serveurs, nouvelles versions. Testez l'application pour certifier qu'il n'y a aucun impact dû à la migration. Des tests de migration de données sont également effectués pour vérifier les performances et la latence de l'application.
Procédure:
- Testez l'application avant et après la migration.
- Testez les serveurs avant et après la migration des données pour vous assurer qu'aucun changement n'est observé.
- Vérifiez qu'aucun changement n'est observé dans les performances de l'application après la migration des données.
- Tester l'application avec différentes versions de la base de données
- Testez la nouvelle version est compatible avec toutes les versions de la base de données.
- Tester différents paramètres de configuration du serveur avec différentes versions de base de données
À l'aide de tests de migration de données, les configurations de serveur incompatibles peuvent être découvertes. Tout problème de génération de serveur, s'il existe lors de la migration des données, peut être résolu avant le déploiement de production. Les tests de migration des données améliorent la qualité et la stabilité du produit. Ces tests facilitent ultérieurement les tests d'installation lors du déploiement de l'application sur l'environnement de production.
# 3) Test d'infrastructure dans le cloud
Les informations et les données sont principalement stockées sur des serveurs virtuels et ces serveurs sont conservés et gérés par des fournisseurs de cloud computing tels qu'AWS.
L'objectif principal est de certifier les services Cloud pour différentes versions d'applications. Testez l'architecture d'application sur le Cloud. Une application réelle est simulée sur le Cloud et les performances et l'évolutivité des applications sont testées.
Procédure:
- Testez la charge sur l'application avec différentes configurations.
- Effectuez des tests de régression et assurez-vous que l'application n'affecte pas les tests de charge.
- Testez si une application est compatible avec un navigateur dans un environnement cloud.
- Tester l'installation de l'application sur le cloud.
- Testez si l'application fonctionne comme prévu dans différents environnements cloud.
Les tests d'infrastructure dans le Cloud garantissent une implémentation sans erreur de l'application dans l'environnement de production. Il permet de connaître les performances, l'évolutivité et la stabilité de l'application. Il aide à utiliser les ressources présentes dans le cloud, telles que tout matériel, logiciel et infrastructure.
# 4) Test au niveau du réseau
Le réseau est la partie la plus importante de l'infrastructure de l'application. Le réseau facilite la communication entre les serveurs, les clients et d'autres réseaux. Les réseaux ont différents modules tels que des serveurs proxy, une infrastructure pour la connectivité Internet.
L'objectif principal est de contrôler et de gérer tous les problèmes au niveau du réseau tels que l'utilisation excessive des ressources, les temps d'arrêt du serveur, la configuration du système, l'infrastructure requise pour les opérations, les correctifs du système d'exploitation.
Procédure:
- Testez la couche réseau pour les futures mises à jour de l'application.
- Testez les procédures de secours en cas de défaillance de l'environnement de production.
- Effectuer des tests système, des tests UAT, des tests de sécurité.
- Concevoir des cas de test et préparer les données de test.
- Assurez-vous que les services de niveau serveur / réseau ne sont pas affectés après une nouvelle version.
- Testez le réseau isolé.
- Tester l'impact sur les performances de l'application sur différents réseaux tels que VPN, Wi-Fi, LAN, etc.
Les tests d'infrastructure au niveau du réseau améliorent le temps de récupération. Il assure la sauvegarde et restaure les mécanismes. Cela contribue également à la sécurité des applications.
# 5) Installation / Désinstallation / Déploiement
L'objectif principal du test de l'infrastructure lors de l'installation est de s'assurer que chaque fois qu'un nouveau client utilise l'application, aucun problème ne survient lors de l'installation de l'application pour la première fois. La désinstallation de l'application est effectuée pour tester le processus de sortie de l'application.
Procédure:
- Testez les packages d'installation requis pour l'installation de l'application.
- Testez des bibliothèques supplémentaires, créez des packages.
- Testez le temps nécessaire pour installer et désinstaller l'application.
- Installez l'application sur différents systèmes d'exploitation.
- Testez l'espace disque requis.
- Testez si tous les fichiers sont supprimés après la désinstallation de l'application.
Le test de l'infrastructure lors de l'installation / de la désinstallation / du déploiement garantit que l'application peut être installée sur le réseau à un moment donné. Il s'assure que tout patch peut être installé ultérieurement ou non. Aide à améliorer le stockage requis par l'application.
# 6) Infrastructure de l'environnement de test
Un environnement de test est un ensemble de matériel, de logiciels, d'outils et de processus. Pour exécuter les tests avec précision et efficacité, l'environnement de test est nécessaire. L'environnement de test comprend également le lieu de travail où un bon réseau, un PC et une alimentation électrique sont fournis aux testeurs pour effectuer leur travail.
L'objectif principal est de vérifier l'installation du logiciel, les configurations de configuration de l'application, de choisir les bons outils de test qui prennent en charge la planification des tests, l'exécution des tests. Il assure également la continuité de l'exécution des tests.
Procédure:
- Mettre en place un environnement de test pour les versions régulières du projet.
- Créez un environnement de test pour les versions de correctifs.
- Créez des solutions pour gérer les problèmes d'environnement serveur et client.
- Finaliser les outils de test pour le plan de test, la conception et l'exécution des tests.
- Choisissez les outils de débogage et de rapport des bogues.
- Créez un document pour définir l'environnement de test.
L'utilisation d'outils et d'environnements de test présente de multiples avantages. Une meilleure qualité est observée. La productivité augmente avec l'utilisation d'outils. Les activités de test sont effectuées de manière traitée. La documentation de l'environnement de test aide les nouveaux membres de l'équipe à mieux comprendre.
# 7) Approche TDD
Le développement piloté par les tests ou le cadre TDD est une méthode permettant d'écrire d'abord des cas de test basés sur les documents d'exigence, puis d'implémenter la fonctionnalité en fonction du test.
L'objectif principal est de connaître les ressources d'infrastructure nécessaires au projet. Le but est de définir et d'organiser l'infrastructure pour la sécurité, les opérations et la production.
Procédure:
- Document de conception pour les exigences d'infrastructure.
- Plan de test de conception couvrant l'infrastructure requise pour l'application.
- Concevoir des cas de test impliquant des tests d'infrastructure.
- Testez différentes configurations.
L'approche TDD aide à améliorer la complexité du projet. Toutes les modifications apportées à l'infrastructure sont testées avant de passer à la production. Différentes configurations possibles peuvent être mises en œuvre car les tests sont déjà conçus.
Outils de test d'infrastructure
Chef, marionnette, et Ansible sont des outils différents qui servent le même objectif. Ces outils sont utilisés pour déployer et configurer différents serveurs requis pour une application. Ces outils sont d'une grande utilité lorsqu'il existe des tâches complexes liées à l'infrastructure. Il devient facile pour l'équipe d'exécuter des tâches sur plusieurs serveurs ensemble à l'aide de ces outils.
L'équipe utilisant ces outils déploie rapidement plusieurs applications, dépendances et bibliothèques. Les autres activités comprennent les serveurs, les binaires, les fichiers journaux, les mécanismes de récupération, la mise à niveau des versions, la gestion des bases de données.
#1) Chef
Caractéristiques: Chef prend en charge les langues spécifiques au domaine Ruby. Par conséquent, il devient difficile pour les non-développeurs d'apprendre cet outil. Bien qu'il soit difficile pour le support linguistique, cet outil est hautement disponible. Chef suit la configuration maître-esclave. Dans le mécanisme maître-esclave, le serveur principal, c'est-à-dire le serveur chef, peut être remplacé par le serveur de sauvegarde en cas de panne.
Nous pouvons déployer des applications, configurer l'infrastructure et également configurer le réseau avec Chef. Ce n'est pas hautement sécurisé.
Prix: C'est moins cher que Puppet mais plus cher qu'Ansible. Son prix est d'environ 13,5 k $ / an jusqu'à 100 nœuds.
Site Internet: Chef
# 2) Marionnette
Caractéristiques: Puppet est construit avec Ruby et prend en charge DSL et Embedded Ruby. Un programmeur ne peut gérer la configuration que si le Puppet est sélectionné pour être utilisé. L'équipe des administrateurs système est également au courant des configurations de cet outil. Il suit l'architecture maître-maître. Si un maître actif subit une défaillance, un autre maître peut le remplacer.
Puppet est utile pour l'évolutivité des machines, pour définir différentes configurations pour chaque hôte. Si une modification est apportée à la configuration, cet outil permet d'apporter des modifications globalement. Ce n'est pas non plus un outil très sécurisé.
Prix: Son prix est le plus élevé à environ 11 000 $ - 20 000 $ / an pour un maximum de 100 nœuds.
Site Internet: Fantoche
# 3) Ansible
Caractéristiques: Ansible est écrit sur Python et prend également en charge les scripts de commande YAML. Python est lisible par l'homme et par conséquent, cet outil est idéal pour les administrateurs système. Il fonctionne avec un seul nœud actif, mais en cas de panne, il dispose également d'un nœud secondaire.
Ansible est hautement évolutif, c'est-à-dire qu'il pourrait gérer un grand nombre de nœuds sans aucun problème. Par rapport à Puppet, Ansible est plus pratique en termes d'évolutivité. Contrairement à Chef et Puppet, c'est un outil hautement sécurisé avec SSH.
Prix: Son prix est beaucoup plus bas que Puppet et Chef environ 10k $ / an pour un maximum de 100 nœuds.
Site Internet: Ansible
Conclusion
Les tests d'infrastructure sont nécessaires pour le cycle de vie du développement logiciel, car les entreprises supportent des coûts d'infrastructure élevés. Divers sujets tels que les avantages, les défis, les techniques et les personnes impliquées dans ce type de test sont abordés dans ce didacticiel. Un aperçu des outils de test d'infrastructure est également couvert.
lecture recommandée
- Surveillance des performances des applications et de l'infrastructure informatique à l'aide de l'outil eG Enterprise (examen pratique)
- Types de tests logiciels: différents types de tests avec des détails
- Test d'applications - Dans les bases du test de logiciels!
- Qu'est-ce que le test gamma? L'étape finale du test
- Qu'est-ce que les tests de conformité (tests de conformité)?
- Test de performance vs test de charge vs test de stress (différence)
- Tests exploratoires vs tests scriptés: qui gagne?
- Qu'est-ce que le test d'évolutivité? Comment tester l'évolutivité d'une application