Serveur d'impression

10 outils de test automatisés que la pile de menaces utilise – et pourquoi – Serveur d’impression

Le 4 avril 2020 - 16 minutes de lecture

Tous les projets de développement de logiciels, qu'ils soient grands ou petits, peuvent bénéficier de tests bien planifiés et bien exécutés. C'est votre façon de vous assurer que le logiciel que vous développez fonctionne comme prévu et offre une valeur ajoutée au client. Plus important – compte tenu de la nature de notre cyber-paysage actuel – des tests bien exécutés sont votre moyen de vous assurer que votre logiciel n'est pas livré avec des erreurs ou des vulnérabilités qui pourraient compromettre son intégrité. En un mot, de bons tests vous permettent de transmettre une valeur de performance aux clients – tout en leur fournissant une sécurité sous-jacente.

Chez Threat Stack, nous avons un environnement de développement de pile complet et complexe qui nécessite beaucoup de planification et de prise de décision au sein de l'équipe d'ingénierie de test pour nous assurer que tous les domaines fonctionnels de notre plate-forme sont testés de manière efficace et efficiente. Cela inclut les décisions sur les outils de test à utiliser, car les bons nous permettent d'introduire l'automatisation ainsi que la vitesse, la répétabilité, la cohérence et la précision des résultats.

Dans cet article, nous allons discuter de dix des outils de test automatisés que nous utilisons — dans le but de partager quelques informations qui, nous l'espérons, vous aideront dans vos activités de test.

Avant d'examiner les outils, cependant, créons un certain contexte en examinant les domaines clés que nos ingénieurs de test prennent en compte lorsqu'ils testent notre plate-forme et son infrastructure.

  • Agents de pile de menaces sont intégrés dans les flottes de machines virtuelles d'Amazon Web Services afin de les suivre et de les surveiller, qu'elles aient des distributions Linux – telles que Ubuntu, Amazon Linux, Red Hat Enterprise Linux, CentOS, CoreOS – ou qu'elles soient de la variété Windows , comme Windows Server 2012 R2, 2016 ou 2019.
  • Nos clients utilisent peut-être conteneurs ou Kubernetes qui doivent être surveillés pour détecter tout signe d'incident de sécurité.
  • Chaque agent envoie en toute sécurité des données au Plateforme de sécurité Cloud Threat Stack®, qui est ensuite analysé et traité par l'un de nos nombreux microservices.
  • Les données d'événement sont traitées par Hôte, fichier, CloudTrail, Threat Intelligenceet des règles personnalisées pour lancer des alertes, ventilées par gravité, pour aider les équipes DevOps et Sécurité de nos clients à analyser ce qui se passe dans leurs systèmes.
  • Toutes les données d'événement, de règle et d'alerte doivent être accessibles non seulement via notre application basée sur un navigateur, mais également via notre API de pile de menaces.
  • Nos clients ont la possibilité de prendre ces données et les exporter dans leur propre stockage externe pour effectuer leur propre analyse.
  • Surveillance de la sécurité des applications de pile de menaces, un composant de la plate-forme de sécurité Cloud Threat Stack, fonctionne comme un micro-agent, surveillant les charges utiles des applications, envoyant des informations à la plate-forme Threat Stack, avertissant les développeurs si elle trouve des erreurs de codage sécurisé. Il surveille également les charges utiles des applications pour détecter les comportements malveillants tels que les attaques de script intersite.

Comme vous pouvez le voir, notre logiciel couvre beaucoup de territoire, et il doit le faire rapidement, en toute sécurité, avec précision et à grande échelle. Dans cette optique, examinons certains des outils de test que nous utilisons.

Outils de test que nous utilisons à Threat Stack

Les ingénieurs logiciels en test, intégrés à leurs propres équipes de fonctionnalités, sont non seulement chargés de tester les nouvelles fonctionnalités et fonctions en constante évolution, mais également d'ajouter l'automatisation pour s'assurer que le reste du produit fonctionne toujours comme prévu.

En témoignage de la valeur que notre organisation accorde à ces personnes, chaque ingénieur de test est également chargé de recommander des méthodes, des outils et des langages d'automatisation qu'il juge appropriés. Vous trouverez ci-dessous une liste de certains des outils que nous utilisons pour nous aider dans nos efforts de tests automatisés. Veuillez noter que nous utilisons globalement un ensemble d'outils plus complet; notre objectif ici est de discuter d'une sélection d'outils et de vous rappeler de choisir les outils qui fonctionnent le mieux pour les projets spécifiques sur lesquels vous travaillez.

Avertissement: Les ressources mentionnées dans cet article ne sont pas classées en termes de valeur perçue. Nos commentaires n'impliquent pas non plus une approbation de quelque nature que ce soit. Notre intention est simplement de vous fournir des informations qui, selon nous, pourraient être utiles au fur et à mesure que vous enrichissez votre connaissance des outils de test.

1. Capybara

Site Internet: https://teamcapybara.github.io/capybara/

Type: gratuit, Open source

Soutien: Groupe Google Ruby-Capybara

Dernière version: 3.29.0 (2 septembre 2019)

Capybara est le joyau Ruby que nous utilisons avec Selenium afin d'interagir avec nos tests d'automatisation d'interface utilisateur basés sur un navigateur lors de l'exécution de tests d'interface utilisateur de bout en bout. Capybara contient des méthodes intégrées qui émulent comment un utilisateur peut visite une feuille, remplir une zone de texte, click_button, ou sélectionner_menu déroulant.

Le fléau de l'existence d'un testeur de logiciel réside dans le fait qu'il faut un temps absurde pour que les éléments Web se chargent sur une page, provoquant des échecs de test inexpliqués. Chaque méthode fournie par Capybara a automatiquement des attentes intégrées.

Capybara teste les problèmes d'expérience utilisateur, fait fonctionner notre produit comme le feraient nos clients, se connecte à notre application, navigue sur le site, visualise les événements déclenchés par nos systèmes de test, crée de nouvelles règles qui régissent les événements qui doivent déclencher des alertes, explore les informations d'alerte trouvés sur notre tableau de bord, et la mise à jour de divers paramètres.

2. Jauge par ThoughtWorks

Site Internet: http://gauge.org

Type: gratuit, Open source

Soutien: GetGauge Google Group, Gitter chat

Dernière version: 1.0.7 (29 août 2019)

Gauge est un cadre d'automatisation des tests créé par ThoughtWorks Studio India, que nous utilisons pour configurer nos tests d'acceptation d'interface utilisateur et d'API. Bien que nous associons Gauge à Ruby, il est également compatible avec Java, C #, JavaScript et Python. Gauge ressemble beaucoup à Cucumber, le framework BDD, avec des différences mineures:

  • Plans de test se trouvent dans des fichiers de spécifications écrits dans Markdown au lieu des fichiers de fonctionnalités de Cucumber, ce qui facilite l'écriture et la maintenance des tests.
  • Au lieu du format Donné / Alors / Quand du concombre, étapes de test sont répertoriés sous forme de puces.

En tant qu'outil de développement piloté par le comportement (BDD), le concombre peut devenir un peu verbeux, plus le test est complexe. Avec Gauge, chaque étape est une puce claire, concise et facile à lire. De plus, Gauge dispose de rapports intégrés disponibles dans plusieurs formats (XML, JSON, HTML). Il peut être utilisé à la fois sur la ligne de commande et dans un IDE tel que Code Visual Studio. Enfin, une documentation complète est fournie pour couvrir un large éventail de sujets, notamment l'installation, la rédaction des spécifications, des exemples de didacticiels, etc.

3. Test de charge Gatling

Site Internet: https://gatling.io/

Type: Entreprise et Open source versions

Soutien: Gatling Google Group

Dernière version: 3.2.1 (27 août 2019)

Gatling fournit des tests de charge en continu ici à Threat Stack. Écrit en Scala, il fonctionne soit comme un outil autonome, soit peut être utilisé comme une dépendance à votre produit avec Maven.

Pour démontrer sa vitesse et sa puissance, en dix minutes, nous avons pu générer trois millions de requêtes dans notre environnement de test et nous avons pu déterminer que toutes les requêtes renvoyaient des résultats en moins de 800 millisecondes.

Comme BlazeMeter le déclare dans son blog, Huit raisons pour lesquelles vous devriez utiliser Gatling pour vos tests de charge, «Gatling a créé un tableau de bord de mesures détaillées que vous pouvez voir après l'exécution des tests sans avoir à ajouter de plugins supplémentaires. Le rapport est stocké sous forme de fichier HTML, qui peut être facilement enregistré pour de futures analyses et comparaison de mesures. De plus, le rapport est interactif. ce qui vous permet d'effectuer des analyses plus détaillées et de concentrer des demandes spécifiques en plus de l'image globale. »

4. Test Kitchen par Chef.io

Site Internet: https://kitchen.ci/

Type: Open source

Soutien: Communauté Chef.io

Dernière version: 2.2.0 (26 avril 2019)

Test Kitchen est le Chef.io produit que nous utilisons pour automatiser la rotation et la destruction des différents environnements Amazon Web Services que nous utilisons lors de nos efforts de test. Test Kitchen est un outil de test de harnais que vous pouvez utiliser pour exécuter votre code configuré sur une ou plusieurs plates-formes de manière isolée. De nombreux cadres de test sont pris en charge par Kitchen dès le départ, y compris Chef InSpec. La cuisine est utilisée par tous Livres de cuisine communautaires gérés par un chef et est l'outil de test d'intégration de choix pour les livres de cuisine.

Learn.Chef.io a une série bien pensée de modules de formation et de démos, y compris un excellent module appelé Premiers pas avec Test Kitchen.

5. ScalaTest

Site Internet: http://www.scalatest.org

Type: gratuit, Open source

Soutien: ScalaTest Google Group

Dernière version: 3.0.8 (10 juin 2019)

Les ingénieurs de test de Threat Stack ont ​​commencé à s'associer à nos développeurs de logiciels afin d'écrire des tests de service pour leur code Scala à l'aide de ScalaTest.

Nos tests d'intégration utilisent le trait de style ScalaTest, FeatureSpec, décrivant les tests unitaires de style TDD (Test-driven development) dans un format Given / When / Then. Comme le ScalaTest Doc mentionne, FeatureSpec est une «suite de tests dans laquelle chaque test représente un scénario d'une fonctionnalité. FeatureSpec est destiné à l'écriture de tests de «niveau supérieur» aux tests unitaires – par exemple, les tests d'intégration, les tests fonctionnels et les tests d'acceptation. »

ScalaTest fournit beaucoup de documentation utile sur leur site, y compris un démarrage rapide détaillé, les procédures d'installation et un guide de l'utilisateur.

6. Chef InSpec

Site Internet: https://kitchen.ci/docs/verifiers/inspec/

Type: gratuit, Open source

Soutien: Communauté Chef.io

Dernière version: (11 août 2019)

Chez Threat Stack, nous utilisons Chef InSpec pour créer des tests basés sur Ruby afin de vérifier que tout fonctionne comme prévu une fois qu'un environnement de test a été créé à la volée. Les tests InSpec sont censés être lisibles par l'homme. Si vous connaissez les frameworks de test tels que RSpec, Le code InSpec doit être familier. InSpec détecte les écarts et documente les différences sous la forme d'un rapport. Nous pouvons ensuite entrer et apporter les modifications nécessaires au Chef pour obtenir un système dans l'état souhaité.

Pour commencer, le Apprenez Chef Rally contient un segment utile qui vous guide à travers la configuration d'un environnement Docker et Docker Compose, le téléchargement de l'exemple d'environnement et l'exploration de l'environnement à l'aide d'InSpec.

7. Mocha

Site Internet: https://mochajs.org/

Type: gratuit, Open source

Soutien: Groupe Moka Gitter, Groupe Google Mocha

Dernière version: 3.2.1 (27 août 2019)

Mocha est un framework de test JavaScript qui s'exécute sur Node.js et dans un navigateur, nous permettant d'entreprendre des tests asynchrones. Étant donné que les tests Mocha s'exécutent en série, cela nous permet de générer des rapports plus flexibles et précis ainsi que la possibilité de mapper les exceptions non capturées aux cas de test corrects.

En utilisant Mocha dans un environnement Node.js, vous pouvez utiliser le module d'assertion intégré comme bibliothèque d'assertions. Chez Threat Stack, nous associons Mocha à Chai pour créer le cadre de test pour le Surveillance de la sécurité des applications de pile de menaces Fonctionnalité.

Le site Mocha met à disposition un éventail de documentation sur des sujets couvrant tout, depuis une présentation détaillée des fonctionnalités, l'installation et le démarrage, jusqu'aux informations sur des fonctionnalités et des tâches spécifiques.

8. Cypress.io

Site Internet: https://www.cypress.io/

Type:

  • Service de tableau de bord commercial, gratuit pour jusqu'à trois utilisateurs

Soutien: Gitter chat; Assistance par e-mail pour les utilisateurs payants

Dernière version: 3.4.1 (29 juillet 2019)

Cypress.io est conçu pour les développeurs frontaux JavaScript qui n'ont besoin que de tester leur travail dans Chrome. Cypress est exécuté dans la même boucle d'exécution que notre application, ce qui signifie que toutes les fonctions, fenêtres, éléments Web, temporisateurs et services auxquels l'application Threat Stack peut accéder, notre code de test peut également accéder. Nous pouvons également lire et modifier le trafic réseau à la volée, ce qui nous permet d'ajouter des cas de test négatifs intéressants, comme tester ce qui se passe lorsqu'un serveur principal est inaccessible.

Cypress.io propose une documentation bien organisée qui fournit une vue d'ensemble solide, des informations de démarrage et des concepts de base qui incluent des informations sur l'écriture et l'organisation des tests. Vous cherchez à voir ce que Cypress peut faire? TestAutomationU vient de publier un nouveau cours, Introduction à Cypress.

9. plaisanterie

Site Internet: https://jestjs.io

Type: gratuit, Open source

Soutien: React Discord Chat, Groupe Google JestJs

Dernière version: 24.9 (août 2019)

Nos développeurs de logiciels de pile complète sont passés de tester le frontend basé sur ReactJS de Threat Stack Cloud Security Platform de Mocha / Chai à Jest, qui a une meilleure prise en charge intégrée pour tester les composants ReactJS que nous utilisons. Avec ce cadre de test JavaScript, nous sommes en mesure de créer de meilleurs tests unitaires et d'intégration. Les deux jeux d'outils, ReactJs et Jest, vous sont proposés par Facebook.

Comme avec la plupart des autres outils de cette publication, le site Web Jest fournit une documentation riche en exemples couvrant la façon de démarrer, la configuration et une gamme complète de scénarios de cas d'utilisation.

10. Apache JMeter

Site Internet: https://jmeter.apache.org/

Type: gratuit, Open source

Soutien: JMeter Google Group

Dernière version: 5.1.1 (13 mars 2019)

Apache JMeter est un logiciel open source conçu pour charger le comportement fonctionnel des tests et mesurer les performances. Selon leur site, JMeter «peut être utilisé pour tester les performances à la fois sur des ressources statiques et dynamiques, des applications Web dynamiques. Il peut être utilisé pour simuler une charge lourde sur un serveur, un groupe de serveurs, un réseau ou un objet pour tester sa force ou pour analyser les performances globales sous différents types de charge. »

Nous utilisons JMeter pour analyser et mesurer les performances de notre application et de nos services. Cela nous permet de tester notre application contre de lourdes charges, avec un trafic d'utilisateurs multiples et simultanés pour voir comment nous pouvons améliorer notre capacité à évoluer.

JMeter met à disposition un éventail utile de documentation (y compris Mise en route, Manuel de l'utilisateur et Meilleures pratiques) ainsi qu'un certain nombre de didacticiels pas à pas.

Bon test. . .

Aussi bons que nos ingénieurs de test soient à Threat Stack, ils n’iraient pas loin sans des processus systématiques appuyés par des outils puissants. Au fur et à mesure que notre plateforme évolue, notre équipe continue de perfectionner son expertise, en améliorant continuellement ses compétences et ses connaissances, en adoptant et en incorporant de nouveaux outils et en développant de nouvelles méthodes pour s'assurer qu'elles continuent d'ajouter de la valeur au Threat Stack SDLC. J'espère que cet article vous a donné un aperçu de la façon dont notre équipe de test utilise une gamme d'outils de test automatisés pour traiter les multiples fonctions de notre plateforme de sécurité cloud.

Rencontrez les auteurs de «10 outils de test automatisés qui utilisent les piles de menaces»

Laura Haiduck est ingénieur logiciel en test chez Threat Stack, où elle conçoit et automatise les tests de service backend pour la plate-forme de sécurité cloud Threat Stack. Avant de rejoindre Threat Stack, Laura a testé les logiciels militaires, financiers et de jeu, brisant les choses éthiquement pour s'assurer que les clients n'ont jamais rencontré de problème.

T.J. Maher est ingénieur logiciel en test chez Threat Stack, développant l'automatisation des tests de l'interface utilisateur et de l'API de Threat Stack. T.J. est actif dans la communauté de Boston QA en tant qu'organisateur Meetup du Ministère des tests – Boston. Il a publié des histoires de son parcours d'automatisation dans TechBeacon, et est un contributeur au livre Test continu pour les professionnels DevOps.

Les outils de test automatisé post-10 utilisés par Threat Stack – et pourquoi sont apparus en premier sur Threat Stack.

*** Il s'agit d'un blog syndiqué Security Bloggers Network de Blog – Threat Stack rédigé par Laura Haiduck. Lisez le message d'origine sur: https://www.threatstack.com/blog/10-automated-testing-tools-that-threat-stack-uses-and-why

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.