Threat Stack heißt jetzt F5 Distributed Cloud App Infrastructure Protection (AIP). Beginnen Sie mit Ihrem Team noch heute mit der Nutzung von Distributed Cloud AIP.
Alle Softwareentwicklungsprojekte, ob groß oder klein, profitieren von gut geplanten und sorgfältig durchgeführten Tests. So stellen Sie sicher, dass die von Ihnen entwickelte Software wie erwartet funktioniert und den Kunden einen Mehrwert bietet. Noch wichtiger ist angesichts der heutigen Cyberbedrohungslage, dass Sie durch sorgfältige Tests verhindern, dass Ihre Software mit Fehlern oder Schwachstellen ausgeliefert wird, die ihre Integrität beeinträchtigen könnten. Kurz gesagt: Gute Tests ermöglichen es Ihnen, Ihren Kunden leistungsfähige Lösungen zu bieten und zugleich für die nötige Sicherheit zu sorgen.
Bei Threat Stack verfügen wir über eine komplexe Full-Stack-Entwicklungsumgebung, die innerhalb des Test-Engineering-Teams umfangreiche Planung und zahlreiche Entscheidungen erfordert, um sicherzustellen, dass alle Funktionsbereiche unserer Plattform effektiv und effizient getestet werden. Dazu gehört auch die Entscheidung, welche Testwerkzeuge eingesetzt werden sollen, denn mit den richtigen Tools können wir nicht nur automatisieren, sondern auch schnelle, wiederholbare, konsistente und präzise Ergebnisse erzielen.
In diesem Beitrag stellen wir zehn der von uns eingesetzten Tools für automatisierte Tests vor. Dabei möchten wir einige Erkenntnisse weitergeben, die Ihnen hoffentlich bei Ihren eigenen Testaktivitäten helfen.
Bevor wir uns jedoch die Tools ansehen, wollen wir zunächst etwas Kontext schaffen, indem wir die wichtigsten Bereiche betrachten, die unsere Testingenieure beim Testen unserer Plattform und ihrer Infrastruktur berücksichtigen.
- Threat Stack-Agenten sind in die Flotten virtueller Amazon Web Services-Maschinen der Kunden integriert, um diese zu verfolgen und zu überwachen – unabhängig davon, ob darauf Linux-Distributionen wie Ubuntu, Amazon Linux, Red Hat Enterprise Linux, CentOS oder CoreOS oder Windows-Versionen wie Windows Server 2012 R2, 2016 oder 2019 ausgeführt werden.
- Unsere Kunden verwenden möglicherweise Container oder Kubernetes, die auf Anzeichen von Sicherheitsvorfällen überwacht werden müssen.
- Jeder Agent sendet Daten sicher an die Threat Stack Cloud Security Platform®, wo sie anschließend von einem unserer zahlreichen Microservices analysiert und verarbeitet werden.
- Ereignisdaten werden anhand von Host-, Datei-, CloudTrail- und Threat-Intelligence-Regeln sowie benutzerdefinierten Regeln verarbeitet, um nach Schweregrad aufgeschlüsselte Warnmeldungen auszulösen. So können die DevOps- und Sicherheitsteams unserer Kunden analysieren, was in ihren Systemen geschieht.
- Sämtliche Ereignis-, Regel- und Alarmdaten müssen nicht nur über unsere browserbasierte Anwendung, sondern auch über unsere Threat Stack APIs zugänglich sein.
- Unsere Kunden haben die Möglichkeit, diese Daten in ihren eigenen externen Speicher zu exportieren, um sie selbst zu analysieren.
- Threat Stack Application Security Monitoring, eine Komponente der Threat Stack Cloud Security Platform, wird als Mikroagent ausgeführt, überwacht Anwendungs-Payloads, sendet Informationen an die Threat Stack-Plattform und warnt Entwickler, wenn Fehler bei der sicheren Programmierung erkannt werden. Darüber hinaus überwacht die Komponente Anwendungs-Payloads auf bösartiges Verhalten wie Cross-Site-Scripting-Angriffe.
Wie Sie sehen, deckt unsere Software ein breites Spektrum ab und muss dabei schnell, sicher, präzise und skalierbar arbeiten. Sehen wir uns vor diesem Hintergrund einige der von uns verwendeten Testwerkzeuge an.
Testwerkzeuge, die wir bei Threat Stack verwenden
Software Engineers in Test, die in ihre jeweiligen Feature-Teams eingebunden sind, sind nicht nur dafür verantwortlich, neue Funktionen und Features zu testen, die kontinuierlich entwickelt werden, sondern auch die Automatisierung auszubauen, um sicherzustellen, dass der Rest des Produkts weiterhin wie erwartet funktioniert.
Als Zeichen der Wertschätzung, die unser Unternehmen diesen Mitarbeitenden entgegenbringt, trägt jeder Test Engineer auch die Verantwortung dafür, geeignete Automatisierungsmethoden, Tools und Sprachen zu empfehlen. Nachfolgend finden Sie eine Liste einiger Tools, die uns bei unseren automatisierten Tests unterstützen. Bitte beachten Sie, dass wir insgesamt ein umfangreicheres Toolset verwenden. Unser Ziel ist es hier, eine Auswahl an Tools vorzustellen und Sie daran zu erinnern, stets die Tools auszuwählen, die sich für Ihre jeweiligen Projekte am besten eignen.
Haftungsausschluss: Die in diesem Beitrag genannten Ressourcen sind nicht nach ihrem wahrgenommenen Wert geordnet. Auch stellen unsere Kommentare keinerlei Empfehlung dar. Wir möchten Ihnen lediglich Informationen zur Verfügung stellen, die Ihnen dabei helfen könnten, Ihre Kenntnisse über Testwerkzeuge zu erweitern.
1. Capybara
Website: https://teamcapybara.github.io/capybara/
Typ: Kostenlos, Open Source
Support: Ruby-Capybara-Google-Gruppe
Neueste Version: 3.29.0 (2. September 2019)
Capybara ist das Ruby-Gem, das wir zusammen mit Selenium verwenden, um bei End-to-End-Tests der Benutzeroberfläche mit unseren browserbasierten UI-Automatisierungstests zu interagieren. Capybara enthält integrierte Methoden, die nachbilden, wie ein Benutzer eine Seite aufrufen kann, ein Textfeld mit fill_in ausfüllen, mit click_button auf eine Schaltfläche klicken oder mit select_dropdown eine Option aus einem Dropdown-Menü auswählen kann.
Der Albtraum eines Softwaretesters ist es, wenn Webelemente auf einer Seite absurd lange zum Laden brauchen und dadurch unerklärliche Testfehler auftreten. In jede von Capybara bereitgestellte Methode sind automatisch Wartezeiten integriert.
Capybara testet auf Probleme mit der Benutzerfreundlichkeit, indem es unser Produkt ähnlich wie unsere Kunden bedient: Es meldet sich bei unserer Anwendung an, navigiert durch die Website, zeigt von unseren Testsystemen ausgelöste Ereignisse an, erstellt neue Regeln dafür, welche Ereignisse Warnmeldungen auslösen sollen, ruft detaillierte Informationen zu Warnmeldungen in unserem Dashboard auf und aktualisiert verschiedene Einstellungen.
2. Gauge von ThoughtWorks
Website: http://gauge.org
Typ: Kostenlos, Open Source
Support: GetGauge Google-Gruppe, Gitter-Chat
Neueste Version: 1.0.7 (29. August 2019)
Gauge ist ein von ThoughtWorks Studio India entwickeltes Framework zur Testautomatisierung, das wir zur Einrichtung unserer UI- und API-Akzeptanztests verwenden. Obwohl wir Gauge zusammen mit Ruby einsetzen, ist es auch mit Java, C#, JavaScript und Python kompatibel. Gauge ähnelt dem BDD-Framework Cucumber sehr, weist jedoch einige kleinere Unterschiede auf:
- Testpläne befinden sich in Spezifikationsdateien, die statt in den Feature-Dateien von Cucumber in Markdown geschrieben sind. Dadurch lassen sich Tests einfacher erstellen und pflegen.
- Anstelle des Given-/Then-/When-Formats von Cucumber werden die Testschritte als Aufzählungspunkte aufgeführt.
Als Tool für Behavior Driven Development (BDD) kann Cucumber bei zunehmender Komplexität des Tests etwas wortreich werden. Bei Gauge ist jeder Schritt ein klarer, prägnanter und leicht verständlicher Aufzählungspunkt. Darüber hinaus bietet Gauge integrierte Berichtsfunktionen für mehrere Formate (XML, JSON, HTML). Es kann sowohl über die Befehlszeile als auch in einer IDE wie Visual Studio Code verwendet werden. Schließlich steht eine umfangreiche Dokumentation zu zahlreichen Themen zur Verfügung, darunter Installation, das Verfassen von Spezifikationen, Beispiel-Tutorials und vieles mehr.
3. Lasttests mit Gatling
Website: https://gatling.io/
Typ: Sowohl Enterprise- als auch Open-Source-Versionen
Support: Gatling Google-Gruppe
Neueste Version: 3.2.1 (27. August 2019)
Gatling ermöglicht uns bei Threat Stack kontinuierliche Lasttests. Das in Scala geschriebene Tool kann entweder eigenständig oder über Maven als Abhängigkeit in Ihrem Produkt verwendet werden.
Als Beleg für die Geschwindigkeit und Leistungsfähigkeit konnten wir innerhalb von zehn Minuten drei Millionen Anfragen in unserer Testumgebung generieren und feststellen, dass alle Anfragen in weniger als 800 Millisekunden beantwortet wurden.
Wie BlazeMeter in seinem Blog schreibt: Acht Gründe, warum Sie Gatling für Ihre Lasttests verwenden sollten: „Gatling erstellt ein detailliertes Metrik-Dashboard, das Sie nach der Testausführung einsehen können, ohne zusätzliche Plug-ins installieren zu müssen. Der Bericht wird als HTML-Datei gespeichert und kann problemlos für spätere Analysen und den Vergleich von Metriken aufbewahrt werden. Darüber hinaus ist der Bericht interaktiv, sodass Sie detailliertere Analysen durchführen und neben dem Gesamtbild auch einzelne Anfragen gezielt untersuchen können.“
4. Test Kitchen von Chef.io
Website: https://kitchen.ci/
Typ: Open Source
Support: Chef.io-Community
Neueste Version: 2.2.0 (26. April 2019)
Test Kitchen ist das Produkt von Chef.io, mit dem wir die Bereitstellung und Außerbetriebnahme der verschiedenen Amazon-Web-Services-Umgebungen automatisieren, die wir im Rahmen unserer Tests verwenden. Test Kitchen ist ein Test-Harness-Tool, mit dem Sie Ihren konfigurierten Code isoliert auf einer oder mehreren Plattformen ausführen können. Kitchen unterstützt standardmäßig zahlreiche Test-Frameworks, darunter Chef InSpec. Kitchen wird von allen von Chef verwalteten Community-Cookbooks verwendet und ist das bevorzugte Tool für Integrationstests von Cookbooks.
Learn.Chef.io bietet eine durchdachte Reihe von Schulungsmodulen und Demos, darunter das hervorragende Modul „Erste Schritte mit Test Kitchen“.
5. ScalaTest
Website: http://www.scalatest.org
Typ: Kostenlos, Open Source
Support: ScalaTest-Google-Gruppe
Neueste Version: 3.0.8 (10. Juni 2019)
Die Testingenieure bei Threat Stack arbeiten seit Kurzem mit unseren Softwareentwicklern zusammen, um mithilfe von ScalaTest Servicetests für deren Scala-Code zu schreiben.
Unsere Integrationstests verwenden das ScalaTest-Stilmerkmal FeatureSpec, das Unit-Tests im Stil der testgetriebenen Entwicklung (TDD) in einem Gegeben-/Wenn-/Dann-Format beschreibt. Wie die ScalaTest-Dokumentation erläutert, ist FeatureSpec eine „Testsuite, in der jeder Test ein Szenario eines Features darstellt. FeatureSpec ist für Tests vorgesehen, die auf einer ‚höheren Ebene‘ als Unit-Tests angesiedelt sind – beispielsweise Integrationstests, Funktionstests und Abnahmetests.“
ScalaTest bietet auf seiner Website eine Fülle an hilfreicher Dokumentation darunter einen ausführlichen Schnelleinstieg, Installationsanleitungen und ein Benutzerhandbuch.
6. Chef InSpec
Website: https://kitchen.ci/docs/verifiers/inspec/
Typ: Kostenlos, Open Source
Support: Chef.io-Community
Neueste Version: (11. August 2019)
Bei Threat Stack verwenden wir Chef InSpec, um Ruby-basierte Tests zu erstellen, mit denen wir überprüfen, ob alles wie erwartet funktioniert, nachdem spontan eine Testumgebung erstellt wurde. InSpec-Tests sind so konzipiert, dass sie für Menschen leicht verständlich sind. Wenn Sie mit Test-Frameworks wie RSpec vertraut sind, dürfte Ihnen der InSpec-Code bekannt vorkommen. InSpec erkennt Abweichungen und dokumentiert die Unterschiede in Form eines Berichts. Anschließend können wir die erforderlichen Änderungen in Chef vornehmen, um ein System in den gewünschten Zustand zu versetzen.
Für den Einstieg bietet die Learn Chef Rally einen hilfreichen Abschnitt, der Sie durch die Einrichtung einer Docker- und Docker-Compose-Umgebung, das Herunterladen der Beispielumgebung und die Erkundung der Umgebung mit InSpec führt.
7. Mocha
Website: https://mochajs.org/
Typ: Kostenlos, Open Source
Support: Mocha-Gitter-Gruppe, Mocha-Google-Gruppe
Neueste Version: 3.2.1 (27. August 2019)
Mocha ist ein JavaScript-Testframework, das unter Node.js und in einem Browser ausgeführt wird und asynchrone Tests ermöglicht. Da Mocha-Tests sequenziell ausgeführt werden, bietet es eine flexiblere und präzisere Berichterstellung sowie die Möglichkeit, nicht abgefangene Ausnahmen den richtigen Testfällen zuzuordnen.
Wenn Sie Mocha in einer Node.js-Umgebung verwenden, können Sie das integrierte assert-Modul als Assertion-Bibliothek nutzen. Bei Threat Stack kombinieren wir Mocha mit Chai, um das Test-Framework für die Funktion Threat Stack Application Security Monitoring zu erstellen.
Auf der Mocha-Website finden Sie eine Vielzahl von Dokumentationen zu Themen, die von einer detaillierten Funktionsübersicht über die Installation und die ersten Schritte bis hin zu Informationen über bestimmte Funktionen und Aufgaben reichen.
8. Cypress.io
Website: https://www.cypress.io/
Typ:
- Kostenloser Open-Source-Test-Runner
- Kommerzieller Dashboard-Dienst, für bis zu drei Benutzer kostenlos
Support: Gitter-Chat; E-Mail-Support für zahlende Nutzer
Neueste Version: 3.4.1 (29. Juli 2019)
Cypress.io wurde für JavaScript-Frontend-Entwickler entwickelt, die ihre Arbeit lediglich in Chrome testen müssen. Cypress wird in derselben Ausführungsschleife wie unsere Anwendung ausgeführt. Das bedeutet, dass unser Testcode ebenfalls auf alle Funktionen, Fenster, Webelemente, Timer und Dienste zugreifen kann, auf die die Threat-Stack-Anwendung Zugriff hat. Außerdem können wir den Netzwerkverkehr in Echtzeit auslesen und verändern. So lassen sich einige interessante Negativtests durchführen, beispielsweise um zu prüfen, was passiert, wenn ein Backend-Server nicht erreichbar ist.
Cypress.io bietet eine übersichtliche Dokumentation mit einem fundierten Überblick, Informationen für den Einstieg und grundlegenden Konzepten, darunter auch Hinweise zum Schreiben und Organisieren von Tests. Möchten Sie erfahren, was Cypress alles kann? TestAutomationU hat gerade einen neuen Kurs veröffentlicht: Einführung in Cypress.
9. Jest
Website: https://jestjs.io
Typ: Kostenlos, Open Source
Support: React-Discord-Chat, JestJs-Google-Gruppe
Neueste Version: 24.9 (August 2019)
Unsere Full-Stack-Softwareentwickler haben die Tests des ReactJS-basierten Frontends der Threat Stack Cloud Security Platform von Mocha / Chai auf Jest umgestellt, da Jest eine bessere integrierte Unterstützung für das Testen der von uns verwendeten ReactJS-Komponenten bietet. Mit diesem JavaScript-Testframework können wir bessere Unit- und Integrationstests erstellen. Beide Toolsets, ReactJS und Jest, stammen von Facebook.
Wie bei den meisten anderen Tools in diesem Beitrag bietet die Jest-Website eine Dokumentation mit zahlreichen Beispielen, die den Einstieg, die Konfiguration und eine umfassende Auswahl an Anwendungsszenarien abdeckt.
10. Apache JMeter
Website: https://jmeter.apache.org/
Typ: Kostenlos, Open Source
Support: JMeter Google-Gruppe
Neueste Version: 5.1.1 (13. März 2019)
Apache JMeter ist eine Open-Source-Software, die für Lasttests des funktionalen Verhaltens und zur Leistungsmessung entwickelt wurde. Laut der Website kann JMeter „zum Testen der Leistung sowohl statischer als auch dynamischer Ressourcen sowie dynamischer Webanwendungen eingesetzt werden. Damit lässt sich eine hohe Last auf einem Server, einer Gruppe von Servern, einem Netzwerk oder einem Objekt simulieren, um dessen Belastbarkeit zu testen oder die Gesamtleistung unter verschiedenen Lastarten zu analysieren.“
Wir verwenden JMeter, um die Performance unserer Anwendung und Dienste zu analysieren und zu messen. So können wir unsere Anwendung unter hoher Last mit mehreren gleichzeitigen Benutzerzugriffen testen und herausfinden, wie wir ihre Skalierbarkeit verbessern können.
JMeter stellt eine hilfreiche Auswahl an Dokumentationen (darunter „Erste Schritte“, das Benutzerhandbuch und Best Practices) sowie eine Reihe von Schritt-für-Schritt-Anleitungen bereit.
Viel Spaß beim Testen . . .
So gut unsere Testingenieure bei Threat Stack auch sind, ohne systematische Prozesse, die durch leistungsstarke Tools unterstützt werden, kämen sie nicht weit. Während sich unsere Plattform weiterentwickelt, baut unser Team sein Fachwissen kontinuierlich aus, erweitert fortlaufend seine Fähigkeiten und Kenntnisse, führt neue Tools ein und integriert sie und entwickelt neue Methoden, um auch weiterhin einen Mehrwert für den Threat Stack SDLC zu schaffen. Wir hoffen, dass Ihnen dieser Beitrag einen Einblick darin gegeben hat, wie unser Testteam verschiedene automatisierte Testtools einsetzt, um die vielfältigen Funktionen unserer Cloud-Sicherheitsplattform abzudecken.
Threat Stack heißt jetzt F5 Distributed Cloud App Infrastructure Protection (AIP). Beginnen Sie mit Ihrem Team noch heute mit der Nutzung von Distributed Cloud AIP.
Über den Autor
Ähnliche Blogbeiträge
F5 und Equinix bündeln ihre Kräfte, um die sichere Anwendungsbereitstellung in Multicloud-Umgebungen zu vereinfachen
F5 und Equinix ermöglichen es Unternehmen, sich weltweit sicher und zuverlässig mit ihren Partnern zu vernetzen.

API-Sicherheitsrisiken und -herausforderungen
Erfahren Sie, warum APIs für die moderne App-Entwicklung unverzichtbar sind und wie Sie sie vor den häufigsten Sicherheitslücken schützen. Profitieren Sie von Expertentipps und direkt umsetzbaren Strategien.
Ein Meilenstein für die Community Impact Grants von F5
F5 feiert das fünfjährige Bestehen seines innovativen Community Impact Grant-Programms, das gemeinnützige Organisationen, bei denen sich F5-Mitarbeitende ehrenamtlich engagieren, mit Fördermitteln in Höhe von 5.000 US-Dollar unterstützt.
Mit moderner, anpassungsfähiger und sicherer Gesundheits-IT Leben retten
Die IT-Investitionen im Gesundheitswesen tragen dazu bei, die schnellsten Wege zu einer besseren Versorgung zu finden, indem sie die medizinische Betreuung näher an die Patientinnen und Patienten bringen. Viele Gesundheitsunternehmen nutzen riesige Mengen an klinischen und anderen Gesundheitsdaten, um Entwicklungen zu verfolgen und übergreifende Trends in der gesamten Gesundheitslandschaft zu erkennen. Gleichzeitig nähern sie sich einer möglichst präzisen, individuell zugeschnittenen Versorgung an.
Verbesserung der Benutzer- und Administrationserfahrung durch sicheren hybriden Zugriff
Diese Kombination aus BIG-IP Access Policy Manager und Azure Active Directory ermöglicht Identitätsföderation, zentralisierten Benutzerzugriff (über Single Sign-on) und erhöhte Anwendungssicherheit (durch Multi-Faktor-Authentifizierung) für geschäftskritische Anwendungen sowie cloudbasierte und SaaS-Anwendungen. Dieser Ansatz vereinfacht die Einrichtung und Bereitstellung, reduziert den Verwaltungsaufwand und verbessert die gesamte Administration.
Das Internet der Sicherheitsdinge
Nein, das ist keine Tirade über die Sicherheit des IoT. Es ist eine Geschichte über Veränderung – genauer gesagt über Veränderung und ihre Auswirkungen auf die Sicherheit. Veränderung ist allgegenwärtig. Es gibt unzählige Axiome und Sprichwörter über Veränderung, also ist es ...