Glossar

Das TESTIFY Glossar - Alles rund um das Thema Automatisiertes Testen

In unserem TESTIFY Glossar finden Sie alle Begriffe aus der IT Welt und insbesondere aus dem Bereich Website & API Testing - kompakt und verständlich erklärt.

 

TIpp: Auch wenn unsere Begriffe alphabetisch geordnet sind, finden Sie vielleicht nicht direkt den gesuchten Begriff. Mit der Tastenkombination "strg+f" können Sie einen gewünschten Begriff direkt auf dieser Seite suchen!

Akzeptanztests werden auch als Abnahmetests bezeichnet. Sie werden in der Softwaretechnik eingesetzt. Mit ihrer Hilfe wird überprüft, ob eine Software aus Benutzersicht wie geplant funktioniert und der Nutzer die Software akzeptieren würde. Akzeptanztests schließen ein Projekt ab. Sie werden unter echten Bedingungen, in der Regel vom Kunden oder Nutzer durchgeführt, bevor die Software tatsächlich verwendet wird. Somit weiß der Endkunde genau, wie die Software nach der Entwicklung funktionieren wird. Die Testing Sessions werden als Recording aufgezeichnet.

Angular ist ein Open Source TypeScript-basiertes Framework für die Entwicklung von Web- und Desktop-Anwendungen. Das Angular-Projekt wurde von Googles Angular-Team geleitet und mit Hilfe einer Community aus vielen Einzelpersonen und Unternehmen entwickelt.  Angular beinhaltet ein komponentenbasiertes Web-Framework, mit dem man skalierbare Web-Apps entwickeln kann. Außerdem verfügt es über eine Vielzahl integrierter Bibliotheken, die mehrere wichtige Funktionen abdecken, wie z.B. Routing, Kunde-Server-Kommunikation, Formularmanagement etc.

Benutzer einer Website, eines Programms bzw. einer App. Im weitesten Sinne sind dies auch die internen Mitarbeiter, die das Backend benutzen. In erster Linie sind aber die Verwender des Frontends, also die Besucher der Seite, Benutzer einer Anwendung oder Kunden diese Anwender.
Der Anwender sollte immer als alleinstehendes Wesen gesehen werden, dem man nichts mehr erklären kann (außer über spezielle FAQ- oder Hilfetexte), d.h. die Website oder App muss vollständig selbsterklärend und verständlich sein und logisch funktionieren, was vor allem durch Tests sichergestellt werden kann.

API steht für Application Program Interface und ist eine Schnittstelle zwischen verschiedenen Anwendungsprogrammen. Sie ermöglicht eine gemeinsame Kommunikation zwischen verschiedenen Softwares. 

API-Tests sind Softwaretests, die durchgeführt werden, um festzustellen, ob sie die Erwartungen im Hinblick auf Funktionalität, Zuverlässigkeit, Leistung sowie Sicherheit erfüllen.

Eine Assertion (Behauptung) ist ein boolescher Ausdruck an einer bestimmten Stelle in einem Programm, der wahr ist, wenn kein Fehler im Programm vorliegt. Eine Behauptung kann einfach ein Kommentar sein, den der Programmierer verwendet, um darüber nachzudenken, wie der Code funktioniert. Diese Behauptung wird in Code  kompiliert und im Kontext ausgeführt, um zu sehen, ob die Aussage tatsächlich zutrifft. Wenn Programmierer über Assertions sprechen, meinen sie in der Regel diese Art von ausgeführter Assertion.

Mit automatisierten Tests meinen wir bei TESTIFY die Automatisierung  von, in der Regel manuell durchgeführten Test-Prozessen, die sich somit Zeit-und Kosten-effizienter umsetzen lassen.

TESTIFY ist ihr Team für automatisierte Website oder API Tests. Sie müssen eine Website testen lassen und haben keine Zeit für manuelle Tests? Wir sind mehr als nur ein externer Dienstleister. Wir sind das Team für Teams. Egal ob Entwickler/-in oder Projektmanager/-in: wir helfen ihrem Projekt auf die Sprünge. 

Wir als Test-Agentur bieten ihnen flexible und individuell maßgeschneiderte Software-Lösungen. Mit den Testing-Frameworks von Codeception und Cypress.IO sind wir in der Lage auch die komplexesten Test-Szenarien abzubilden, egal ob für ihre Webseite oder Web-Anwendung.

Gewissermaßen die “Rückseite” der Website. Hier werden von Redakteuren und Mitarbeitern Inhalte z.B. über Formulare erstellt und bearbeitet. Das Backend ist in der Regel Teil der Webprogrammierung, aber nur über einen besonderen Aufruf und durch Passwörter geschützt erreichbar.
Neben Inhalten werden hier auch Statistiken, Maileinträge usw. verwaltet.
Im Gegensatz dazu ist das Frontend von den Anwendern erreichbar, hier werden die im Backend erstellten Inhalte ausgegeben.

Wenn Sie Ihre Website barrierefrei gestalten, bedeutet dies, dass Ihre Website so konzipiert ist, dass sie von allen Menschen genutzt werden kann, unabhängig von ihrem Alter , ihren Fähigkeiten und ihren Behinderungen. Indem Sie sich auf den Grad der Barrierefreiheit Ihrer Website konzentrieren, verbessern Sie die Benutzerfreundlichkeit (UX) für jeden Ihrer Besucher, einschließlich derjenigen mit Behinderungen oder Einschränkungen, die auf Ihrer Website landen. Sie zeigen Ihren Besuchern, Interessenten und Kunden, dass Sie sie als Individuen wertschätzen und sich um sie kümmern - und im Gegenzug wird diese Art von Investition Ihre Markentreue und Loyalität stärken.

Die agile Softwareentwicklung versucht, Qualitätsmanagement und Businessanalyse stärker zusammenzubringen.
Im BDD werden die angestrebten Ziele und Ergebnisse der Software so beschrieben, dass sie später automatisiert getestet werden kann.
Deshalb werden überwiegend wenn-dann-Formulierungen verwendet, da sich diese in Logik übersetzen lassen.

Für die Beschreibung wird die Sprache Gherkin verwendet.

In gewissem Sinne ist BDD eine Weiterentwicklung der testgetriebenen Entwicklung.


 

Im Betatest wird das Programm einer Auswahl von Testnutzern zur Verfügung gestellt, die dann die Funktionen überprüfen. Im Betatest wird davon ausgegangen, dass das Programm noch Fehler enthält, die von den Programmierern noch nicht gefunden wurden.
Automatisierte Tests schließen zwar eine große Lücke, so dass kaum noch Fehler zu finden sein sollten - aber auch sie können nur testen, was zuvor als Ziel erwartet wurde. Vor allem unerwartete Quereffekte werden im Betatest eher bemerkt.
Gerade atypisches Nutzerverhalten wird durch unbedarfte Betatester, die nicht mit der Programmierung oder Erwartung der Entwickler vertraut sind, erreicht und führt zu typischen Problemen, vor denen spätere Anwender bewahrt werden sollen.

Bei dem Blackbox-Test werden Tests entwickelt, die von außen auf das System zugreifen, ohne Kenntnis von den Funktionen im Inneren zu haben. Dadurch ist es nur möglich, das Ergebnis, nicht aber das Zustandekommen zu überprüfen. Wenn die Umsetzung der Anforderung also sehr umständlich ist oder im extremen Fall dadurch stimmt, weil sich zwei Fehler in der Programmierung gegenseitig aufheben, wäre das für das Bestehen des Black Box-Tests egal. 

Ein Vorteil des Blackbox-Tests ist, dass die Entwickler des Programms nicht aus Versehen “um ein Problem herum programmieren” - wenn ich als Programmierer eine bestimmte Erwartung habe, denke ich auch nur auf diesem Weg, während der User intuitiv einen anderen geht. Z.B. erwartet der Programmierer die Eingabe von Kommazahlen mit Punkt, weil er das in “seiner Welt” automatisch macht, deshalb wird eine Eingabe mit Komma falsch bewertet statt blockiert.  Deshalb sollte der Test generell durch einen externen Entwickler erstellt werden und in diesem Fall gerne auch von jemandem, der die verwendeten Programmiersprachen gar nicht kennt.

Als alleiniger Test ist der Blackbox-Test nicht geeignet, da er frühzeitig in der Codestruktur auftauchende Fehler nicht zuordnen kann und keine große Hilfe für den Entwickler wäre. Für die Überprüfung der geforderten Funktionen ist er dagegen ideal.


 

Browser sind spezielle Programme, die die Betrachtung von Webseiten und Ausgabe verschiedener Inhalte (also auch Video und Ton sowie zunehmend programmierte Animationen) ausgeben können. Dabei wandelt der Browser die im HTML-Format empfangenen Daten zu einem menschlich verständlichen Inhalt um. Aus “<h1>Titel</h1>” wird so zum Beispiel ein großer, fetter Titel. Vor allem solche als “<a href=”ziel.html”>Links</a>” markierten Teile, über die der Abruf weiterer Inhalte möglich ist, machten das World Wide Web (WWW) interaktiv.
Neben den in sichtbare oder hörbare Elemente übersetzen Datei-Inhalten werden auch Programmcodes übermittelt, die dann im Browser z.B. etwas berechnen oder Effekte steuern. Heute verbreitet sind der Chrome Browser von Google, der für Datenschutz und Sicherheit geschätzte Firefox-Browser und die systemeigenen Lösungen Microsoft Edge sowie Apples Safari.
Gelegentlich kommt es immer noch zu unterschiedlichen Interpretationen oder Reaktionen der Browser auf den gleichen Code. Vor allem neue Video- und animationsgesteuerte Seiten laufen am zuverlässigsten auf Chrome.

Ein Softwarefehler (Bug) ist ein Problem, das ein Programm zum Absturz bringt oder eine ungültige Ausgabe erzeugt. Das Problem wird durch unzureichende oder fehlerhafte Logik verursacht. Ein Bug kann ein Fehler, ein Irrtum, ein Defekt oder eine Störung sein, der/die ein Versagen oder eine Abweichung von den erwarteten Ergebnissen verursachen kann. Die meisten Bugs sind auf menschliche Fehler im Quellcode oder im Design zurückzuführen. Ein Programm wird als fehlerhaft bezeichnet, wenn es eine große Anzahl von Fehlern enthält, die die Programmfunktionalität beeinträchtigen und zu falschen Ergebnissen führen.

 

Mit der Checksum (Prüfsumme) können zwei Dateien auf Ihre Gleichheit überprüft werden. Dies spielt zum Beispiel bei der Übertragung von Dateien (z.B. beim Download von Dokumenten oder Programmen) eine Rolle. Ein vereinfachtes Beispiel wäre, dass aus den Zahlenwerten aller Buchstaben eines Buches (A=1, B=2, C=3 usw.) eine Summe gebildet wird. 

Diese Summe wird beim Download angezeigt und das erhaltene Dokument gewissermaßen neu ausgezählt. Nur wenn die Summen gleich sind, stimmt die Menge und Art der Buchstaben. In der IT ist das Verfahren natürlich komplexer (in unserem Beispiel würden ja vertauschte Wörter aufs gleiche Ergebnis kommen oder mutwillig veränderter Text geduldet werden, wenn sich der Fälscher die Mühe der richtigen Summe machen würde). Aber Kryptographie und verschiedene Berechnungsverfahren sorgen hier für zusätzliche Sicherheit.

Chrome ist der Browser des Web-Anbieters Google. Er hat sich in den vergangenen Jahren weitgehend durchgesetzt und stellt den Maßstab für Web-Funktionalität dar. Die Technologie hinter dem Chrome Browser wird auch im Microsoft-Edge-Browser und anderen Varianten verwendet.
Durch die enge Bindung an die Webangebote von Google (Suchmaschine, YouTube, Google Drive etc.) wird die technische Optimierung von den Anwendern geschätzt, erfordert aber ein noch höheres Bewusstsein für den Datenschutz beim Anwender.

In der Umgangssprache ist der Client ein Kunde und daher leitet sich auch der Begriff in der Informationstechnik ab. Denn wie ein Kunde, wird auch das Clientsystem (zum Beispiel Ihr mit dem Internet verbundenen Computer) bedient. Über das HTTP-Protokoll kann der Kunde eine bestimmte Information bestellen (z.B. ‘sende mir die Website von Nevercodealone’) und der Server liefert anschließend diesen Inhalt. Je nach Zusammenhang wird auch das Programm, das auf dem Rechner läuft und die Daten entgegennimmt, als Client bezeichnet (vgl. Server).

Code ist ein sehr weiter Begriff für Informationen, die einer bestimmten Struktur unterliegen. Hier geht es um die Sprachen in der Informatik, also den Programmcode oder auch den Formatierungscode der Webseiten, dem HTML. In beiden Fällen werden Informationen übertragen und ausgeführt, die ein bestimmtes erwartetes Ergebnis produzieren sollen - und ob Erwartungen und Realität übereinstimmen, ermitteln wir mit unseren Tests.

Codeception ist ein Framework für automatisierte Tests. Im Gegensatz zu Cypress basiert es auf der Programmiersprache PHP. Mit Codeception können Unit-Tests, aber auch Acceptancetests im End-to-End ausgeführt werden.

Die Commandline (‘Kommandozeile’) ist quasi das Backend eines jeden Betriebssystems. Hier werden, wie in den frühen Jahren der Informationstechnologie, für den Laien kryptisch anmutende Befehle ausgeführt und mühevoll mit ‘cd’ und ähnlichen Anweisungen in den Verzeichnissen gewechselt (was der Alltags-Nutzer mit Mausklick in seinen Ordnern macht). 


Doch während die grafischen Oberflächen (egal ob Windows, die Fenster beim Mac oder die Oberflächen des Linux-Betriebssystems) den meisten Benutzern einen verständlichen und freudvollen Umgang mit Daten und Programmen erst ermöglichen, lassen sich die wahren Taten immer noch solide ‘auf der Kommandozeile’ (wie der Experte sagt) ausführen. Und tatsächlich ist diese rudimentäre Ebene auch immer noch da, wenn sich die grafischen Programme verabschiedet haben.

Puristen nutzen die Kommandozeile auch dort noch, wo die Arbeit im grafischen Umfeld längst schneller und bequemer ist - der routinierte Umgang mit ein paar handlichen Befehlen ist ihnen hier sicherer (und der Hauch von Magie nicht unerwünscht).


 

Komponenten oder Module werden nach den Unit-Tests überprüft. Hier können die Objekte unabhängig voneinander getestet werden, ohne mit anderen Komponenten oder Modulen zusammengefügt zu werden. Im Gegensatz zu den Unit-Tests wird hier mit echten Daten gearbeitet. Die durch Komponententests gefundenen Fehler werden schnellstmöglich behoben und vor den Integrationstests ausgeführt. 

Ein Content-Management-System (CMS) ist eine Software zur gemeinschaftlichen Erstellung, Bearbeitung, Organisation und Darstellung digitaler Inhalte (Content), zumeist zur Verwendung in Webseiten, aber auch in anderen Medienformen. Diese Inhalte können aus Text- und Multimedia-Dokumenten bestehen. Ein Autor mit Zugriffsrechten kann ein solches System in vielen Fällen ohne oder mit wenig Programmier- oder HTML-Kenntnissen bedienen, da die Mehrzahl der Systeme über eine grafische Benutzeroberfläche verfügt. Bekannte Beispiele für CMS sind Wordpress, Sulu, Shopify, Wix, Drupal oder Magento.

Die kontinuierliche Integration von Software-Code bringt die Entwicklung von Anwendungen, vor allem Webseiten, schnell voran und kann rasch auf Fehler und Änderungswünsche reagieren.
Bei der konventionellen Entwicklung wurde die Arbeit mehrerer Programmierer von einem Integrator zusammengefügt und dann als neue Version veröffentlicht. Im Gegensatz dazu veröffentlichen die beteiligten Entwickler in der Continuous Integration ihren Code ständig auf einem Repository Nach dem automatisierten Test werden die kombinierten Änderungen aus dem Repository heraus in das System gespielt.

Automatisierte Tests sind hier unerlässlich (auch wenn jeder Entwickler seine Änderungen selbst testen muss), da nur damit ein reibungsloser Betrieb dieser ständig geänderten Anwendung möglich ist.

Bei dem Continuous Delivery Modell werden die Arbeitsschritte Entwicklung, Auslieferung, Feedback und Qualitätsmanagement in kurzen Intervallen in einer Dauerschleife wiederholt. Dadurch kann nicht nur die Effizienz der Entwicklung gesteigert werden, sondern der Kunde bekommt das Produkt auch früher. Oft ist dieses zu diesem Zeitpunkt noch nicht fertig, es wird jedoch fortwährend daran gearbeitet. Automatisierte Tests spielen hier eine große Rolle, da nach jeder Quellcode-Änderung der Build auf Funktionstüchtigkeit geprüft werden sollte.

Cucumber ist ein verhaltensgesteuertes Entwicklungswerkzeug, das zur Entwicklung von Testfällen für das Verhalten von Softwarefunktionen verwendet wird. Es spielt eine unterstützende Rolle beim automatisierten Testen. Mit anderen Worten, "Cucumber ist ein Software-Werkzeug, das von Testern verwendet wird, um Testfälle für das Testen des Verhaltens der Software zu entwickeln." Das Tool Cucumber spielt eine wichtige Rolle bei der Entwicklung von Akzeptanztests für automatisierte Tests. Es wird hauptsächlich verwendet, um Akzeptanztests für Webanwendungen entsprechend dem Verhalten ihrer Funktionalitäten zu schreiben.

Cascading Style Sheets ist eine Stylesheet-Sprache für elektronische Dokumente und neben HTML und JavaScript eine der Kernsprachen des World Wide Web. Es ist ein sogenannter "living standard", der vom World Wide Web Konsortium ständig weiterentwickelt wird.


 

 

 

Cypress ist ein Framework zur Programmierung von Tests. Es enthält also bereits alle Grundkonzepte und Methoden, die dann vom Programmierer genutzt werden können, um gezielte Tests für Webseiten oder Applikationen zu schreiben, mit denen diese dann anschließend immer wieder automatisiert getestet werden können. Der Vorteil von Cypress ist, dass es auf typische Web-Anwendungen ausgelegt ist und Eingaben wie Drag and Drop, Ausfüllen von Formularen, aber auch die Berücksichtigung von Wartezeiten durch z.B. Verarbeitung von Eingaben, ermöglicht.

Der größte Teil manueller Eingaben und Prüfungen kann so ohne Ermüdung durch stupide Tätigkeiten und zudem sehr schnell überprüft werden.

Auch einzelne Klassen und Abschnitte von Programmen können so geprüft werden. Cypress basiert auf der Programmiersprache Javascript.

Als Dashboard bezeichnet man eine Ansicht oder grafische Oberfläche, die Informationen kurz und bündig zusammenbringt. Meist kann von hier aus auch auf die wichtigsten Funktionen einer Anwendung zugegriffen werden.
Das Cypress-Dashboard ermöglicht zum Beispiel den direkten Aufruf der erstellten Tests und zeigt im integrierten Fenster den Ablauf des Tests im Browser an.

Vor langer Zeit waren mechanische Maschinen die einzige Hilfe für aufwändige Rechnungen. Damit die Zahnräder in den komplexen Werken rotieren konnten, wurden sie gut geschmiert - doch dieses Schmierfett wurde auch von Käfern sehr geschätzt, die dann beim Speisen ins Räderwerk gerieten. Hierdurch wurde gerne mal eine Zählerstelle übersprungen und es schlichen sich Käfer-bedingte Fehler ein. Es wurde also wichtig, diese Käfer (engl. ‘bugs’) zu entfernen - und dieses ganz realistische Entkäfern (‘Debugging’) hat sich bis heute als Begriff für die Fehler-Entfernung gehalten. Da heute falsche Code-Zeilen (oft nur ein falscher Vergleichsoperator oder eine falsche Variable) zu ähnlichen Fehlern führen wie einst die Chitinpanzer der Käfer, kann die Entfernung solcher kleinen Ursachen trotzdem manchmal kniffelig sein.

DevOps ist ein zusammengesetzter Begriff aus Development (hier gemeint als Softwareentwicklung) und Operations (hier als Systemadministration). Gemeint ist die engere Verbindung dieser beiden Bereiche, um die Entwicklung der Software bei gleichzeitiger Steigerung von Geschwindigkeit und Qualitätssicherung zu verbessern.

Der Begriff taucht oft im Zusammenhang mit Continuous Integration auf, da hier der Zugriff aus der Entwicklung weit in die Ausspielung der (getesteten) Anwendungssoftware ins Livesystem reicht. Ohne automatisierte Tests ist die Verkürzung kaum möglich, geschweige denn sicher zu bewerkstelligen.

Docker ist eine Software, die es einfach macht, Anwendungen mithilfe von Containern zu erstellen, bereitzustellen und auszuführen. Mithilfe dieser Container können Entwickler die Anwendung mit allen erforderlichen Teilen verpacken und als ein Paket veröffentlichen. Auf diese Weise können Entwickler dank Containern sicher sein, dass die Anwendung auf jedem anderen Computer ausgeführt wird, unabhängig von benutzerdefinierten Einstellungen, die sich möglicherweise von denen unterscheiden, die zum Schreiben und Testen des Codes verwendet wurden. In gewisser Weise ähnelt Docker einer virtuellen Maschine. Im Gegensatz dazu erlaubt Docker jedoch, anstatt ein vollständiges virtuelles Betriebssystem zu erstellen, dass Anwendungen im selben Linux-Kernel laufen wie das System, auf dem sie ausgeführt werden, und erfordert nur, dass Anwendungen Dinge enthalten, die nicht bereits auf dem Host ausgeführt werden die Leistung erheblich verbessern und die Größe der Anwendung reduzieren.

Tests stellen nicht nur die Funktion einer Webseite oder einer Anwendung unmittelbar beim Ausführen der Prüfung fest, sondern können auch zur Dokumentation von Funktion (oder Fehlfunktion) genutzt werden.

So bieten End-to-End-Tests mit Cypress die Möglichkeit, die einzelnen Schritte im Screenshot oder, wenn notwendig, im Videomitschnitt festzuhalten. Damit können z.B. Projektverantwortliche dokumentieren, dass im Lastenheft definierte Eingaben zu den gewünschten Ergebnissen kommen. Umgekehrt können Kunden dokumentieren, ob bestimmte Anforderungen nicht erfüllt werden.

Downtime ist ein Begriff aus der Computerbranche für die Zeit, in der ein Computer oder IT-System nicht verfügbar, offline oder nicht betriebsbereit ist. Ausfallzeiten haben viele Ursachen, z. B. Abschaltungen für Wartungsarbeiten (so genannte geplante Ausfallzeiten), menschliche Fehler, Software- oder Hardware Fehlfunktionen und Umweltkatastrophen. In IT-Umgebungen kann die Ausfallzeit eine der Kennziffern für die Systemverfügbarkeit sein. Die Verfügbarkeit wird oft an einem Standard gemessen, der 100 % Betriebsbereitschaft oder keine Ausfälle vorsieht. Ein gängiger Verfügbarkeits-Standard ist 99,999 %, auch bekannt als “Five-Nines-Verfügbarkeit”. Zwei 9er wären ein System, das eine Verfügbarkeit von 99 % über einen Zeitraum von einem Jahr garantiert und bis zu 1 % Ausfallzeit oder 3,65 Tage Nichtverfügbarkeit zulässt. In Service Level Agreements (SLAs) werden oft monatliche Ausfallzeiten oder Verfügbarkeits-Prozentsätze für die Abrechnung verwendet. 

Die Datenschutzgrundverordnung (DSGVO) ist eine Regulation des Datenschutzes innerhalb der EU. Sie war dringend erforderlich, da vor allem in Internetanwendung ein maßloses Ausspähen und Speichern von personenbezogenen Daten Oberhand gewonnen hatte. Die Umsetzung in Internetanwendungen bedeutet, dass einige Inhalte (Impressum, Datenschutzhinweis, zwingende Angaben z.B. in Formularen etc.) genau eingehalten werden müssen, da sie  andernfalls zu hohen Kosten führen können. Automatisierte Tests können hier eine große Hilfe für kleinere und mittlere Betreiber von Webseiten sein, da sie eine kontinuierliche Prüfung der geforderten Texte und Einstellungen ermöglichen. 

Electron ist ein Open Source Framework für die Cross-Platform-Desktop Anwendung in einem Browser. Der Electron Browser wird als Standardbrowser bei der automatisierten Ausführung von E2E Tests mit Cypress.IO verwendet und wird bei der Installation direkt mitgeliefert. Durch das JavaScript Package ist die Installation für ein lokales Setup auf dem eigenen Rechner unabhängig vom Betriebssystem möglich. Das trifft auch auf Linux betriebene und alle anderen Webserver zu. Damit sind Cypress.IO Tests überall direkt lauffähig. Einzige Voraussetzung ist Node als grundlegende Technologie. Auf Node basieren die meisten Frontends auf Webapplikation und auch moderne Frontend-Frameworks wie React, Vue oder Angular. Ursprünglich wurde das Electron Framework als Basis für den quelloffenen Atom Editor von GitHub entwickelt. Bekannte andere Anwendungen sind Visual Studio Code, Skype, Discord, Twitch, Signal, Slack, WhatsApp Desktop und viele weitere. Mit Hilfe von Electron können Desktop Anwendungen im Vergleich zu anderen Setups sehr leicht aufgesetzt werden.

Ein Testszenario, welches die gesamte Applikation als User von Anfang bis Ende testet. Das Frontend einer Webseite, also die eigentliche Webseite wie man sie sieht, ist das Ergebnis von vielen technologischen Voraussetzungen (Server) und der darauf ausgeführten Softwarekomponenten. Der große Vorteil ist die schnelle und technologisch unabhängige Sicherstellung eines fehlerfreien Funktionsumfangs der zu testenden Applikation. Webseiten im Bereich E-Commerce und Software-as-a-Service - SaaS - Projekte sind bekannte Anwendungsgebiete.
End to End - E2E - Testing ist im Schnitt 15 mal schneller als manuelles Testen und hat eine deutlich höhere Genauigkeit. Aufgrund der Eintönigkeit des manuellen Testings ist ein Boreout sehr wahrscheinlich. Daher brauchen Menschen bei dieser Arbeit viele Pausen, damit die Zuverlässigkeit der Testergebnisse und das Finden von Bugs gewährleistet wird. Das ist ein Grund, warum manuelles Testen von internen Ressourcen stark abgelehnt wird. E2E Tests werden in einer technologisch deutlich komplexeren Welt der Softwareentwicklung immer wichtiger. Die immer kürzer werdende Zeit neue Anforderungen - Features - zu erfüllen und Updates - für Sicherheit und Performance - bereitzustellen, macht ein kontinuierliches Testen der gesamten Applikation immer zwingend nötig. Anders kann keine Gewährleistung garantiert werden.

Die Execution Time ist die Dauer für die Ausführung eines Software Prozesses. Die Messgröße Zeit spielt in der Softwareentwicklung und gerade beim Thema Testing eine sehr große Rolle. Andere zeitkritische Prozesse sind Produktimports im Bereich E-Commerce. Hier haben automatisierte Prozesse manuelle Eingaben längst abgelöst. 

Als Feature sind spezielle Funktionen einer Software gemeint. Ein Feature wird meist erst dann als solches bezeichnet, wenn es sich um eine neue oder besondere Funktion einer Software handelt.

Fileuploads bedeuten das ‘Hochladen’ von Dateien, zum Beispiel in Webformularen. Häufig sind dies Bilder oder PDF-Dokumente, es können aber alle Arten von Dateien auf den Server übertragen werden.

Im Gegensatz zum Eingeben von Text ist die Übernahme von Dateien technisch aufwändiger und fehleranfälliger.

Tests können aber nicht nur die grundsätzliche Uploadfunktion überprüfen. Sie können z.B. auch sicherstellen, dass nur fehlerfreie und Format- sowie Größen-richtige Dateien in den Upload geraten.


 

Firefox basiert auf dem Open Source-Projekt Mozilla und ist neben Chrome einer der beliebtesten Browser. Nachdem der Microsoft Internet Explorer (als Vorgänger des Edge-Browsers) eine Marktdominanz gegenüber dem Wettbewerber Netscape erreicht hatte, startete Mozilla 2002 mit dem Firefox eine Alternative, die sich rasch großer Beliebtheit erfreute.
Bis heute setzt der Firefox-Browser Maßstäbe in Datenschutz und Anwendersicherheit. 

Wird der Inhalt einer Website vom Client beim Server angefordert, besteht dieser in der Regel nicht nur aus einer Datei, sondern aus zusätzlichen Informationen: Neben dem HTML, das das Seitengerüst definiert, werden z.B. Bilder als einzelne Dateien geliefert, die dann - auch mit Hilfe der CSS-Dateien - an den vorgesehenen Stellen ‘eingebaut’ werden. Bis dieser ganze Vorgang abgeschlossen ist, kann einige Zeit vergehen. Das Anzeigen einer ersten ‘brauchbaren’ Seite (genaugenommen Inhalt im sichtbaren Teil des Bildschirms, so dass weiter unten noch Inhalte geladen werden) wird als ‘First contentful paint’ bezeichnet und ist ein wichtiges Indiz für die suchmaschinenrelevante Bewertung der Website.

Hiermit ist im Besonderen der Teil eines Website-Codes gemeint, der die Formatierungsregeln der Website-Inhalte beinhaltet. Mit einfachen Befehlen können Texte direkt in HTML formatiert werden und so zum Beispiel kursiv oder fett ausgespielt werden. Ausgefallenere Designs und Formatierungen können später auch mit CSS vorgenommen werden. Mit dieser Skriptsprache lässt sich die Optik von HTML-Elementen bearbeiten.

Formulare sind ein wesentlicher Bestandteil vieler Webanwendungen, da sie für Nutzer - neben Klicks auf Links - die häufigste Form der Interaktion darstellen. Neben Eingabefeldern für Text, Auswahllisten und Checkboxen werden häufig auch Fileuploads angeboten. Nahezu alle Eingabeformen können mit dem Testframework Cypress getestet werden, auch versteckte Uploads, wie sie gerne aus optischen Gründen gebaut werden.

Framework bedeutet in der IT-Terminologie ein Rahmengerüst, das die Basis für weitere Entwicklungen bietet. Das Framework ist dabei selbst noch kein Programm, sondern stellt einzelne Module für bestimmte Weiterverwendungen bereit. Ein Framework für Webanwendung könnte so zum Beispiel schon E-Mail-Übertragungsmodule, Schnittstellen für den Austausch mit einer Datenbank etc. anbieten.

In der Regel werden bei Software-Frameworks häufig benötigte Komponenten bereitgestellt, nicht nur um die Programmierung von Anwendungen schneller zu machen - die genannten Beispiele sind so auch sicherheitsrelevant und eine grundsätzliche Schnittstelle zur Datenbank wird solider entwickelt und aktualisiert, als eine Eigenlösung des Anwendungsentwicklers.


 

Das Frontend stellt Daten visuell aufbereitet dar und ermöglicht es dem Anwender/ User - mit der Webseite zu interagieren. Eine große Herausforderung stellt die Bedienbarkeit auf unterschiedlichen Devices dar. Gerade Smartphones stehen bei dem Webdevelopment in Deutschland als zusätzlicher Kanal nicht im Fokus. Webdesign wird oft für Desktop-Ansichten entwickelt. In der restlichen Welt hat sich die Mobile-First-Strategie bewährt. Das liegt vor allem an der fehlenden Verbreitung von Desktops in nicht Industrienationen.

Gatling ist ein Open-Source-Tool für Leistungs- und Stresstests. Es kann für die integrierte Entwicklungsumgebung, Versionskontrollsysteme und kontinuierliche Integrationslösungen eingesetzt werden. Gatling unterstützt Protokolle wie HTTP, WebSockets und JMS (Jakarta Message Service). Obwohl es Scala-basiert ist (Scala ist in der Regel nicht so beliebt wie andere Programmiersprachen, wie z.B. C, JavaScript, PHP, Python), ist es weit verbreitet unter Entwicklern. Gatling integriert sich in bestehende Lösungen. Es basiert auf Akka, einem Toolkit zum Erstellen verteilter Nachrichten-gesteuerter Anwendungen. 

Gherkin ist eine Beschreibungssprache, die für die Formulierung von Ergebnissen in der Softwareentwicklung verwendet werden kann. Sie verwendet hauptsächlich logische Schlüsselbegriffe wie ‘Gegeben’, ‘Wenn/Dann’, ‘Und/Oder’.


 

GitHub ist ein Webserver für Software-Projekte über den Entwickler/innen ihren Code über öffentlich einsehbare Repositories bereitstellen können. Das erlaubt der Community den Code zu prüfen und sogar weiterzuentwickeln. Es ist aber auch möglich gegen eine Gebühr, ein isoliertes Repository für kommerzielle Projekte aufzusetzen

GitHub Actions ist eine Plattform für die kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD), mit der Build-, Test- und Bereitstellungs-Pipelines automatisiert werden können. Man kann somit Workflows erstellen, die jede Pull-Anfrage für ein Repository erstellen und testen oder zusammengeführte Pull-Anfragen in der Produktion bereitstellen. GitHub Actions geht über DevOps hinaus und ermöglicht die Ausführung von Workflows, wenn andere Ereignisse in einem Repository eintreten. GitHub Actions arbeitet mit drei Ebenen, um Arbeitsabläufe zu organisieren: Workflows, Jobs und Steps. Ein Workflow besteht aus  einem oder mehreren Jobs. Die Jobs innerhalb eines Workflows arbeiten stets in eigenen Runner-Instanzen, teilen sich also kein gemeinsames Dateisystem. Sie können parallel oder in Abhängigkeit voneinander laufen. Jeder Job beinhaltet mehrere Steps, die zwangsläufig aufeinander aufbauen und mit einem gemeinsamen Dateisystem arbeiten.

In der Continuous Integration ist ein zuverlässiger Ablauf der Code-Veröffentlichung unverzichtbar. Da diese weitgehend ohne menschliches Zutun stattfinden soll, ist die GitLab-Pipeline eine große Hilfe. Das Zusammenführen des Codes auf einem Staging-Server (wo auch verwendete Zusatzpakete installiert und ausgeführt werden), der automatisierte Test der kompletten Funktion und - im Erfolgsfall - die Auslieferung ins Produktivsystem sind dabei der vordergründige Zweck.

Gleichzeitig sehen die Entwickler im Fall des Scheiterns sofort, was warum nicht funktioniert hat, da die Pipeline in jedem Schritt eine grüne oder rote Meldung ausgibt und Benachrichtigungen in Slack oder andere Kanäle senden kann.

Headless ist im Zusammenhang mit Webanwendungen auf die Trennung von Daten und Design bezogen. Der Vorteil von ‘kopflosen’ Content-Management-Systemen wie z.B. Sulu gegenüber Anwendungen wie WordPress, bei denen alles miteinander vermengt ist, ist vor allem die einfache Ausgabe in verschiedenen Anwendungen: So kann der erfasste Inhalt nicht nur in der Webseite sondern auch in ganz anderen Anwendungen oder als nackte Datenbasis für das Ausspielen von unformatierten Texten und Daten etc. verwendet werden.

Irrtümlich als Webseiten-Code bezeichnet ist HTML eine sogenannte “Auszeichnungssprache”, die mittels spezieller Formatierungshinweise wie “<h1>Titel</h1>” oder “<a href=”ziel.html”>Link</a>” den Browser dazu bringt, die übertragenen Daten in einer bestimmten Weise darzustellen. Diese muss nicht zwingend in jedem Browser identisch sein.

Das Hypertext-Transferprotokoll’ ist der klassische Übertragungsweg von Internet-Inhalten. Es ist ein Definition für den ‘zustandslosen’ Austausch von Daten (nicht nur im World Wide Web). Zustandslos heißt hier, dass Daten angefordert und daraufhin übertragen werden. Es besteht also keine ständige Verbindung zwischen Sender und Empfänger. Das http sehen wir immer noch in der Webseitenadresse: http://…   wobei es heute meist dem https weicht.

HTTPS ist das Hypertext-Transferprotokoll (HTTP) mit einer zusätzlichen Sicherheits-Schicht. Diese bewirkt durch den Rückgriff auf Zertifikate, die vom Absender hinterlegt werden, und eine Verschlüsselung der Inhalte, dass die Verbindung abhörsicher ist und die Daten wirklich zwischen A und B ausgetauscht werden. Zwar gibt es diesen Standard bereits seit 1994, also bevor das Internet zum Massenmedium wurde - wirklich flächendeckend genutzt wird es aber erst seit ein paar Jahren, nachdem auch die großen Browserhersteller bei reinen HTTP-Inhalten Warnhinweise einblendeten. Zudem fordern Datenschutz und andere Gesetze hier heute den sicheren HTTPS-Standard. Hundertprozentig sicher ist natürlich auch HTTPS nicht - je weiter es verbreitet wurde, desto häufiger kam es hier auch zu Angriffen.

Alle Informationen oder Daten, die zur Verarbeitung an einen Computer gesendet werden, gelten als Eingabe (Input). Eingaben oder Benutzereingaben werden über ein Eingabegerät an einen Computer gesendet. Computersoftware kann Daten in Form eines Eingabestroms empfangen, d. h. einer fließenden Folge von Daten, die an bestimmte Funktionen gerichtet werden können. Der gerichtete Kanal, durch den der Datenstrom fließt, wird als Pipeline bezeichnet, und das Ändern seiner Richtung wird als Piping bezeichnet.

Als Integrationstest bezeichnet man eine aufeinander abgestimmte Reihe von Einzeltests, die dazu dienen, verschiedene voneinander abhängige Komponenten eines Systems im Zusammenspiel miteinander zu testen. Eine Anwendung besteht in der Regel aus mehreren Softwaremodulen. Diese Module werden von verschiedenen Programmierern codiert. Integrationstests konzentrieren sich auf die Überprüfung der Datenkommunikation zwischen diesen Modulen.

Schnittstellentests (Interface Tests) werden als eine Art von Softwaretests definiert, bei denen überprüft wird, ob die Kommunikation zwischen zwei verschiedenen Softwaresystemen korrekt erfolgt.

Eine Verbindung, die zwei Komponenten miteinander verbindet, wird als Schnittstelle (Interface) bezeichnet. Diese Schnittstelle kann in der Computerwelt alles Mögliche sein, wie APIs, Webdienste usw. Das Testen dieser Verbindungsdienste oder Schnittstellen wird als Schnittstellentest bezeichnet. Eine Schnittstelle ist eigentlich eine Software, die aus einer Reihe von Befehlen, Nachrichten und anderen Attributen besteht, die die Kommunikation zwischen einem Gerät und einem Benutzer ermöglichen.

Nachdem zu Beginn des Web-Zeitalters Browser wie Mosaic und Netscape erfolgreich wurden, wurde Microsoft bewusst, dass man das Internet doch ernst nehmen sollte. Sie übernahmen den Mosaic-Browser und entwickelten diesen zum Internet Explorer weiter, der dann mit Windows 95 als Standard ausgeliefert wurde und damit marktbeherrschend wurde.
Wie Netscape entwickelte Microsoft eigene Interpretationen des HTML-Codes. Zudem wurden vor allem bei großen Firmen und öffentlichen Diensten neuere Windows- und Internet-Explorer-Versionen sehr viel später als im Rest der Welt eingeführt, so dass die wunderbaren Neuerungen und großartigen Möglichkeiten, die neuere Browser längst beherrschten, hier immer noch zu Fehlern führten. Inzwischen wurde die Weiterentwicklung des Internet Explorers aufgegeben. Er wurde durch Microsoft Edge ersetzt, der im Kern die Google-Chrome-Technik enthält. Das Leben der Entwickler wurde zumindest in dieser Hinsicht leichter.

JavaScript (oder JS) ist eine Skriptsprache, mit der Webentwickler interaktive Webseiten erstellen können. JavaScript ist eine der am häufigsten verwendeten Programmiersprachen in der Webentwicklung. Anfänglich wurde JavaScript fast ausschließlich für die Frontend-Entwicklung verwendet, doch mittlerweile hat es auch in der Backend-Entwicklung durch Frameworks wie Node.js an Popularität gewonnen. Es wird für Formulare, Suchfunktionen, automatisch aktualisierte Newsfeeds, und andere interaktive Funktionen verwendet. Fast alle interaktiven Funktionen, die man auf Webseiten finden kann, werden mit JS erstellt. JavaScript wird von allen gängigen Webbrowsern unterstützt und ist daher gerade bei Frontend-Entwicklern sehr beliebt. 

Jira ist eine Software, die Teams aller Art bei der Verwaltung ihrer Arbeit unterstützt. Ursprünglich war Jira als Bug- und Issue-Tracker konzipiert. Aber heute hat sich Jira zu einem leistungsstarken Arbeitsmanagement-Tool für alle Arten von Anwendungsfällen entwickelt, vom Anforderungs- und Testfallmanagement bis zur agilen Softwareentwicklung.

JUnit ist ein Framework zum Testen von Java-Programmen, das besonders für automatisierte Unit-Tests einzelner Units geeignet ist. Mit JUnit prüfen die Entwickler bzw. andere Tester die korrekte, d.h. fehlerfreie und anforderungskonforme Implementierung einzelner Module des Java-Codes. Jede nicht triviale Funktion oder Methode könnte Fehler enthalten und sollte mit JUnit getestet werden.

JSON steht für "JavaScript Object Notation" und ist ein leichtgewichtiges Format für den Datenaustausch zwischen Computern. JSON ist einfacher Text, der in JavaScript Object Notation geschrieben ist. Es ist eine Alternative zu XML, die in JavaScript integriert ist, was ein Grund dafür ist, dass es so beliebt und weit verbreitet ist. Die häufigste Anwendung für JSON ist das Abrufen von Daten von Webservern bei Bedarf.

Karate ist das einzige Open-Source-Tool, das API-Testautomatisierung, Mocks, Performance-Tests und sogar UI-Automatisierung in einem einzigen, vereinheitlichten Framework vereint. Die BDD-Syntax, die durch Cucumber populär wurde, ist sprachneutral und auch für Nicht-Programmierer einfach. Assertions und HTML-Berichte sind integriert, und Sie können Tests zur Beschleunigung parallel ausführen. Die zusätzliche Möglichkeit, funktionale Tests über die Integration mit dem Gatling-Tool als Leistungstests wiederzuverwenden, wurde 2018 eingeführt.

Karma ist ein Javascript-Tool oder „Testläufer“, das auf Nodes.js läuft. Es wurde für die Open-Source-Community in Github entwickelt und eignet sich hervorragend zum Testen von Angularjs oder anderen Javascript-Projekten. Entwickler verwenden Karma, um Tests mit einer der vielen beliebten Javascript-Testsuiten (Jasmine, Mocha, Qunit usw.) durchzuführen. Karma ist hochgradig konfigurierbar, lässt sich in beliebte kontinuierliche Integrationspakete (Jenkins, Travis und Semaphore) integrieren und bietet eine hervorragende Plugin-Unterstützung.

Katalon Platform ist ein Software-Tool für Automatisierungstests, das von Katalon, Inc. entwickelt wurde. Die Software basiert auf den Open-Source-Automatisierungs-Frameworks Selenium und Appium und verfügt über eine spezielle IDE-Schnittstelle für das Testen von Web-, API-, Mobil- und Desktop-Anwendungen.

Kryptographie ist die Wissenschaft der Verschlüsselung. Durch kryptographische Verfahren, z.B. das Verschlüsseln von Daten, sollen diese vor unbefugtem Zugriff geschützt und sicher ausgetauscht werden.

Ein Lasttest ist ein Prozess, bei dem ein Computer, Server, Netzwerk oder eine Anwendung extremen Arbeitslasten ausgesetzt wird. Lasttests sind Teil eines allgemeineren Prozesses, der als Leistungstest bekannt ist. Beispiele für Lasttests sind z.B. das Herunterladen großer Dateien aus dem Internet oder das Ausführen mehrerer Anwendungen auf einem Computer oder Server.

Legacy Code (aus dem Englischen übersetzt Legacy = Erbe) und damit "geerbter Code" ist von anderen Entwicklern geschriebener und oft schon veralteter Code. Oft wird der Ausdruck aber auch als Synonym für unsauber geschriebenen, schlecht dokumentierten oder technologisch veralteten Code verwendet.

Auch wenn die heute genutzten Testframeworks schnell laufen und viele Inhalte automatisch abarbeiten, kann gerade im Frontend-Test die Wartezeit lang werden, wenn viele Inhalte überprüft werden.

Denn entscheidend ist nicht alleine die Ausführungsgeschwindigkeit der Testsoftware - vielmehr sind die tatsächlichen und erwarteten Wartezeiten mitunter einige Sekunden lang. Denn um sicherzugehen, dass z.B. ein Bestellbutton angezeigt wird (oder ein Formular verschickt wird) muss eine realistische Zeit angenommen werden, die dem Nutzer der Seite kaum auffallen mag, die in der Summe aber zu vielen Minuten wachsen.

Um die Gesamttestzeit erträglicher zu machen und gerade bei regelmäßigen Tests in akzeptablen Wiederholungszeiten zu bleiben, kann man mehrere Tests gleichzeitig ausführen - in mehreren Threads (Fäden) eben.


 

Bei der  “Mobile-first”-Strategie startet man den Entwurf der Website mit der mobilen Version, die dann im Anschluss an größere Bildschirme angepasst wird. In der Regel wird mit der Desktop-Website begonnen, die dann an kleinere Bildschirme angepasst wird.

Mit sogenannten Monitoring Tools ist es in der IT möglich, Beobachtungsdaten von einer Website oder Software zu erfassen und weiter zu analysieren. Durch die Analyse der Daten kann dann festgestellt werden, wo Probleme ihren Ursprung haben und, was noch wichtiger ist, eventuell herausgefunden werden, warum die Probleme auftreten. Viele Agenturen bieten einen monatlichen Monitoring Service für ihre Kunden an.

Der Node (Knoten) kommt in der Informationstechnik, alleine im Web-Umfeld, mehrfach vor. Zunächst beschreibt er einzelne Elemente innerhalb einer HTML-Struktur und gliedert so die Informationen. Im Testumfeld sind diese Knoten eine wichtige Hilfe, um Inhalte automatisiert zu verstehen und auswerten zu können. So kann der Node eines Links aufgerufen oder seine Beschriftung mit einem Erwartungswert verglichen werden.

Unter dem Namen Node.js ist zudem eine Laufzeitumgebung (also eine Plattform zur Ausführung von Software) für JavaScript bekannt, die diese Webseiten-Sprache auch außerhalb von Browsern ermöglicht.

Als Open Source (engl. für öffentliche Quelle) wird Software bezeichnet, deren Quelltext jederzeit von Dritten eingesehen, bearbeitet und verwendet werden kann. Open-Source-Software ist in der Regel kostenlos. Eine bekannte Open-Source-Software ist  WordPress, ebenso ist das Betriebssystem Linux OpenSource.

Paralleles Testen ist eine Art des Softwaretests, bei dem mehrere Versionen oder Teilkomponenten einer Anwendung mit derselben Eingabe auf verschiedenen Systemen gleichzeitig getestet werden, um die Testausführungszeit zu verkürzen. Der Zweck des parallelen Testens besteht darin, herauszufinden, ob sich die alte und die neue Version gleich oder unterschiedlich verhalten und ob die neue Version effizienter ist oder nicht.

 

Performance Testing ermittelt die Stabilität, Geschwindigkeit, Skalierbarkeit und Reaktionsfähigkeit einer Anwendung bei einem spezifischen Workload. Es ist Teil des sogenannten "Non-Functional Testing". Oft kommt das Performance Testing erst zum Einsatz , wenn das "Functional Testing" abgeschlossen und der Code bereit zum Release ist.

Es gibt viele Anwendungsziele für Performance Tests wie z.B. die Evaluierung von Output, das Messen von Verarbeitungsgeschwindigkeit oder der Datenübertragungsgeschwindigkeit sowie der Nutzung von Netzwerkbandbreite. Aber auch die maximale Anzahl gleichzeitiger Nutzer, die Arbeitsspeichernutzung sowie Workloadeffizienz und Reaktionsgeschwindigkeit einer Anwendung können getestet werden.

PHP ist eine Computersprache, mit der Webserver gesteuert werden.  PHP steht ursprünglich für Personal Home Page Tools, mittlerweile wird auch der Begriff "Hypertext Preprocessor" darunter verstanden. PHP ist eine Skriptsprache,  daher werden Programme die mit ihr geschrieben wurden, zum Zeitpunkt ihres Aufrufs vom Webserver in Maschinencode umgerechnet.  Da PHP-Programme zumeist plattformunabhängig sind und zudem auf verschiedenen Hardware-Systemen ausgeführt werden können sind Sie bei Entwicklern äußerst beliebt.

Eine Pipeline ist eine Reihe automatisierter Prozesse, die es Entwicklern und DevOps-Fachleuten ermöglichen, ihren Code zuverlässig und effizient zu kompilieren, zu erstellen und auf ihren Produktions-Rechenplattformen bereitzustellen. Es gibt keine feste Regel, die vorschreibt, wie eine Pipeline aussehen sollte und welche Tools sie verwenden muss. Die gängigsten Komponenten einer Pipeline sind jedoch:

  • Build-Automatisierung/kontinuierliche Integration
  • Automatisierung der Tests
  • Automatisierung der Bereitstellung

Eine Pipeline besteht im Allgemeinen aus einer Reihe von Tools, die normalerweise in die folgenden Kategorien unterteilt werden;

  • Quellcode-Kontrolle
  • Build-Tools
  • Container Erstellung
  • Konfigurationsmanagement
  • Überwachung

Das Hauptziel einer Software Delivery Pipeline ist die Automatisierung ohne manuelle Schritte oder Änderungen in oder zwischen den einzelnen Schritten der Pipeline. Menschliche Fehler können bei der manuellen Ausführung dieser langweiligen und sich wiederholenden Aufgaben auftreten und wirken sich letztendlich auf die Einhaltung der Lieferbedingungen und möglicherweise auf die SLAs aus, da die Bereitstellung verpfuscht wird.


 

Das Produktivsystem innerhalb einer Reihe von ähnlichen Server Installationen einer Website ist der Teil, den die Nutzer tatsächlich zu sehen bekommen bzw. auf den “offiziell” zugegriffen wird.

Im Gegensatz zu Test- und Staging-Systemen, bei denen eben nur ausprobiert wird, ob alles läuft bzw. dem Kunden zur Abnahme bereitgestellt wird, muss hier alles fehlerfrei laufen.

Um im Rahmen von DevOps und GitPiplines auch bei automatisierten Aktualisierungen des Produktivsystems einen zuverlässigen Betrieb zu gewährleisten, sind Tests unerlässlich. Der getestete, fehlerfreie Ablauf ist Grundlage für ein einwandfreies Produktivsystem.
 

Die Anweisungen, die während der Softwareentwicklung für ein bestimmtes Computerprogramm entstehen und die dessen Funktionalität in einer bestimmten Programmiersprache beschreiben, bezeichnet man als Programmcode.

Python ist eine Computerprogrammiersprache, die häufig zur Erstellung von Websites und Software, zur Automatisierung von Aufgaben und zur Datenanalyse verwendet wird. Python ist eine Allzwecksprache, d. h. sie kann zur Erstellung einer Vielzahl verschiedener Programme verwendet werden und ist nicht auf bestimmte Probleme spezialisiert. Dank dieser Vielseitigkeit und ihrer Einsteigerfreundlichkeit ist Python heute eine der am häufigsten verwendeten Programmiersprachen. Da es relativ leicht zu erlernen ist, wird Python auch von vielen Nicht-Programmierern wie Buchhaltern und Wissenschaftlern für eine Vielzahl alltäglicher Aufgaben wie die Organisation von Finanzen verwendet.

Ein Quality Gate ist ein Meilenstein in einem IT-Projekt, der vordefinierte Kriterien erfüllen muss, bevor das Projekt in die nächste Phase übergehen kann. Diese Gates sollen Maßstäbe für Qualitätsstandards setzen und werden typischerweise in Anwendungs- oder Softwareentwicklungsprojekten verwendet. Typischerweise werden Quality Gates vor Phasen eingesetzt, die stark von den Ergebnissen vorheriger Phasen abhängen, insbesondere wenn potenzielle Fehlerquellen angegangen und behoben werden müssen. Das Konzept der Quality Gates kombiniert Aspekte des Projektmanagements, der Entscheidungsmodellierung und des Workflow-Managements, um die Messbarkeit zu verbessern und bessere Bedingungen zu schaffen. Quality Gates können auf vielen Ebenen einer Organisation eingesetzt werden, z. B. auf System-, Projekt- und Release-Ebene. Sie können auch als Teil einer Gesamtproduktentwicklung oder eines Qualitätssicherungsansatzes (QA) verwendet werden.

Beispiele für Quereffekte wären folgende Szenarien: Ein Aufruf erzeugt z.B. neben dem erwarteten Ergebnis ein weiteres Ergebnis oder nur durch bestimmte Eingaben entsteht ein Fehler im System.

React.js ist eine JavaScript-Bibliothek zur Erstellung von Benutzeroberflächen. Jede React-Webanwendung besteht aus wieder verwendbaren Komponenten, die Teile der Benutzeroberfläche bilden - wir können eine separate Komponente für unsere Navigationsleiste haben, eine für die Fußzeile, eine andere für den Hauptinhalt und so weiter. 

Als Recording bezeichnen wir bei TESTIFY eine aufgezeichnete Testing Session in einem Testing Framework unsere Wahl z.B. Codeception oder Cypress.

Regressionstests sind Softwaretests, mit denen Entwickler beurteilen, ob Änderungen an einer Anwendung oder an anderen zugehörigen Softwarekomponenten Fehler eingeführt haben. Eine Anwendungsänderung oder -Erweiterung kann  Nebeneffekte verursachen, die als "Regressionen" bezeichnet werden und durch Abhängigkeiten sogar in Komponenten oder Systemen auftreten können, die vom geänderten Code getrennt sind. 

Reporting (aus dem Englischen übersetzt: Bericht(-erstattung)) meint im Testing Zusammenhang des Website Testens einen zusammengefassten Statusbericht über den Ausgang des durchgeführten Testverfahrens. Zum Reporting gehören in diesem Fall auch die Videoaufzeichnungen und Screenshots von Fehlern die während des Prozesses aufgetreten sind.

Das Repository (Mehrzahl: Repositories) ist ein zentrales Archiv / Verzeichnis für z.B. Daten, Dokumente oder Programme. Somit ist seine Funktion die Verwaltung verschiedener Daten aber auch das Management von unterschiedlichen Dateiversionen.  Ein Anwendungsgebiet solcher Repositories findet sich z.B. bei Suchmaschinen wie Google. Dort werden sie genutzt, um zum Beispiel Informationen wie URLs zu verwalten, die von Crawlern gesammelt und in Indexstrukturen gespeichert werden. 

Ein Code-Repository ist ein Archiv für den Code, an dem gearbeitet wird. Neben dem Code selbst können Sie in Ihrem Repository auch Dinge wie Dokumentation, Notizen, Webseiten und andere Dinge aufbewahren. Ein Code-Repository ist für jedes erfolgreiche Softwareentwicklungsprojekt erforderlich.

Bei der Request/Response (zu Deutsch Anfrage/ Antwort)-Kommunikation sendet ein Softwaremodul eine Anfrage an ein zweites Softwaremodul und wartet auf eine Antwort. Da das erste Softwaremodul die Rolle des Clients und das zweite die Rolle des Servers übernimmt, wird dieser Prozess auch als Client/Server-Interaktion bezeichnet.

Beim Szenario-Testing handelt es sich um eine Methode, bei der anstelle von Testfällen tatsächliche Szenarien zum Testen der Softwareanwendung verwendet werden. Der Zweck von Szenario-Tests besteht darin, End-to-End-Szenarien für ein bestimmtes komplexes Problem der Software zu testen. Mit Hilfe von Szenarien lassen sich komplizierte Probleme einfacher testen und bewerten.

Unsere automatisierten Website-Tests halten nach an welcher Stelle eines Tests eine Fehler auftritt. Neben der Videoaufzeichnung bietet sich hierfür das automatische erstellen eines Screenshots (zu Deutsch Bildschirmaufnahme) an. Somit erhalten Sie bei unseren Tests immer einen Schnappschuss genau an der Stelle an der der Test fehlschlägt. Während für alle Tests egal ob erfolgreich oder fehlerhaft eine Videodokumentation erstellt wird, gibt es lediglich im Fehlerfall Screenshots. 

Der Server stellt Daten bereit, die vom Client im Server-Client-Modell abgefragt werden können. Dies geschieht in der Regel in einem Netzwerk, gerne auch im Internet (das auch nur ein großes Netzwerk ist). 

Dabei kann es sich um einfach nur gespeicherte Dokumente, aber auch um aktuell erstellte Informationen (z.B. Berechnungen oder Abfragen von Inhalten aus einer Datenbank) handeln.
Wie beim Client wird auch der Begriff Server sowohl für das Gerät, von dem die Daten bereitgestellt werden, als auch das dafür genutzte Programm verwendet.

In der IT bezeichnet das Wort "Session" einen bestimmten Zeitrahmen für die Kommunikation zwischen zwei Geräten, zwei Systemen oder zwei Teilen eines Systems. So wird zum Beispiel der Zeitrahmen für eine Interaktion zwischen zwei Personalcomputern beim Online-Chat oder Messaging als Sitzung bezeichnet. Eine Session kann aber auch ohne menschliche User zustande kommen. Eine der häufigsten Formen von Sessions ist eine Client/Server-Session zwischen einem Server und einem PC oder einem anderen Gerät oder System, das auf diesen Server zugreift.

Slack ist eine Messaging-App für Unternehmen, die Leute mit den Informationen verbindet, die sie benötigen. Slack bringt Leute als ein Team zusammen und verändert damit die Art und Weise, wie Organisationen kommunizieren. Slack kann mit Diensten verglichen werden wie Webex oder Microsoft Teams.

SonarQube (ehemals Sonar) ist eine Open-Source-Plattform, die von SonarSource für die kontinuierliche Überprüfung der Codequalität entwickelt wurde, um automatische Überprüfungen mit statischer Analyse des Codes durchzuführen, um Bugs und Code Smells in 29 Programmiersprachen zu erkennen. 

Eine Übertragung von angeforderten Daten auf ein Endgerät erfolgt durch das Hypertext-Übertragungsprotokoll (Hypertext Transfer Protocol (HTTP)). Durch einen HTTP-Status-Code teilt der Server dem Client (z.B. einem Browser) mit, ob die Anfrage beim Abruf einer URL erfolgreich oder fehlerhaft war. Demnach ist der HTTP-Status-Code Bestandteil einer vom Server zurückgegebenen Antwort. Der HTTP-Statuscode besteht aus einer dreistelligen Zahl und einer kurzen Beschreibung des Fehlers. Der wohl gängigste Fehler ist  „404 – not found“. Ein weiterer Fehler ist „403 – Zugriff nicht gestattet“ oder ein interner Fehler (HTTP 500).  Neben Fehlerantworten gibt es auch HTTP-Status-Codes, die eine erfolgreiche Übertragung bestätigen (z.B. HTTP 200).

Zwischen folgenden Antwortklassen sollte unterschieden werden:

  • Informative Antworten (100 – 199): Informationen zur Bearbeitung, die während der Anfrage erfolgen (z.B. „100 – fortfahren“ oder „102 – in Bearbeitung“).
  • Erfolgreiche Antworten (200 – 299): Erfolgreiche Operationen (z.B. „200 – OK“).
  • Umleitungen (300 – 399): Erfolgt, wenn das angeforderte Dokument auf einer anderen Adresse erreichbar ist (z.B. der Redirect „301 – dauerhaft verschoben“).
  • Client-Fehler (400 – 499): Fehlerhafte Anfragen des Clients (z.B. „404 – nicht gefunden“).
  • Server-Fehler (500 – 599): Alle Fehler, die auf den Server zurückgehen (z.B. „500 – Interner Server-Fehler“).

Sulu ist ein noch recht junges CMS, das jedoch auf einer sehr modernen Technologie basiert. Dazu gehören das PHP-Framework Symfony und das JavaScript-Framework React. Da Sulu an vielen Stellen auf das bekannte Symfony-Entwicklungsmodell zurückgreift, ist der Einstieg für Entwickler mit entsprechender Erfahrung besonders einfach. Neben Websites eignet sich das System ideal als Basis für die Entwicklung von Webanwendungen.

Das Framework Symfony gehört zu den bekanntesten Profi-PHP-Frameworks, das als Basis zur Entwicklung von Webanwendungen eingesetzt wird und dem Model-View-Controller-Ansatz folgt. Symfony kann lizenzkostenfrei aus dem Internet heruntergeladen und sowohl für private als auch kommerzielle Projekte genutzt werden.

Die Testabdeckung misst, inwieweit Ihre Tests Dinge wie Testanforderungen, Code, verschiedene Benutzerszenarien und Plattformen wie mobile Geräte oder Browser abdecken. Dies ist eine nützliche Kennzahl zur Messung der Effektivität Ihrer Testbemühungen. Die Testabdeckung ist wichtig, um Fehler zu finden, bevor sie die Benutzer erreichen.

Testcontainers ist eine Java-Bibliothek, die JUnit-Tests unterstützt und leichtgewichtige, wegwerfbare Instanzen von gängigen Datenbanken, Selenium-Webbrowsern oder allem anderen, das in einem Docker-Container laufen kann, bereitstellt.

Test Driven Development (TDD) ist ein Softwareentwicklungs- und Designparadigma, bei dem das Testen von Programmkomponenten verwendet wird, um den gesamten Softwareentwicklungsprozess zu leiten. TDD ist eine Designstrategie, die Quellcode vor der Erstellung testet und entsprechend dem Prozess priorisiert. Ziel ist es, die Softwarequalität deutlich zu verbessern und die Nachwartung zu reduzieren. TDD wird hauptsächlich in agilen Methoden verwendet, insbesondere in der extremen Programmierung.  Andere Begriffe für TDD sind testgetriebene Softwareentwicklung, testgetriebene Programmierung oder Test-First-Design.

Ein Testframework ist ein  Set von Richtlinien oder Regeln, die für die Erstellung und den Entwurf von Testfällen verwendet werden. Dabei geht es auch um die Kombination von Praktiken und Werkzeugen, die QA-Experten dabei helfen sollen, effizienter zu testen. Diese Richtlinien können Kodierungsstandards, Methoden zur Handhabung von Testdaten, Objekt-Repositories, Verfahren zur Speicherung von Testergebnissen oder Informationen über den Zugriff auf externe Ressourcen umfassen.

Mike Cohn hat das Konzept der "Testpyramide" erstmals in seinem Buch "Succeeding with Agile" vorgestellt. Es ist eine großartige visuelle Metapher, die die verschiedenen Ebenen des Testens zeigt. Sie zeigt auch wie viele Tests auf jeder Ebene des Test-Prozesses durchgeführt werden sollten. Die ursprüngliche Testpyramide von Mike Cohn besteht aus drei Schichten (Unit Tests bilden die Start-Ebene):

  1. Unit-Tests
  2. Service-Tests
  3. User Interface Tests

Da das Modell bereits in die Tage gekommen ist und zudem den Testprozess in sehr vereinfachter Weise darstellt, sollte man folgende Kernaussagen aus dem Modell behalten: 
1. Schreiben Sie Tests mit unterschiedlicher Granularität.
2. Je detaillierter Sie werden, desto weniger Tests sollten Sie haben.

Als Test Suite bezeichnet man eine Reihe von Testfällen zum Testen eines Softwareprogramms, um zu zeigen, dass es ein bestimmtes Verhalten zeigt.

Als Testszenario bezeichnet man jede Funktionalität, die getestet werden kann. Es kann auch als Testbedingung oder Testmöglichkeit bezeichnet werden. Als Tester sollte man sich in die Lage des Endbenutzers versetzen und die realen Szenarien und Anwendungsfälle der zu testenden Anwendung herausfinden.

Ein Unit-Test ist ein Verfahren zum Testen einer Unit - des kleinsten Code-Teils, der in einem System logisch isoliert werden kann. In den meisten Programmiersprachen ist das eine Funktion, ein Unterprogramm, eine Methode oder eine Eigenschaft. Hier liegt die Betonung auf "isoliert". In seinem Buch "Working Effectively with Legacy Code" erklärt der Autor Michael Feathers, dass  Tests keine Unit-Tests sind, wenn sie sich auf externe Systeme stützen: "Wenn er mit der Datenbank kommuniziert, wenn er über das Netzwerk kommuniziert, wenn er das Dateisystem berührt, wenn er eine Systemkonfiguration erfordert oder wenn er nicht zur gleichen Zeit wie ein anderer Test ausgeführt werden kann." Moderne Versionen von Unit-Tests finden sich in Frameworks wie JUnit oder Test-Tools wie TestComplete.

Ein Usability-Test wird durchgeführt, um die Gebrauchstauglichkeit einer Software oder Hardware mit den potenziellen Benutzern zu überprüfen.

Als Validierung verstehen wir die Erbringung eines dokumentierten Nachweises, dass ein bestimmter Prozess oder ein System kontinuierlich ein Produkt erzeugt, das die zuvor definierten Spezifikationen und Qualitätsmerkmale erfüllt. Bei TESTIFY dreht sich alles darum die Funktionstüchtigkeit ihrer Website, Anwendung oder Software zu validieren.

Unsere Tests sind 100% transparent dank Videonachweis. So können unsere Kunden jederzeit nachvollziehen, was der Test testet und an welcher Stelle der Test z.B. einen Bug gefunden hat. Dies erspart unseren Kunden die Fehlersucherei und klärt obendrein die Frage ob der Fehler z.B. intern oder extern zu verschulden ist.

Vue (ausgesprochen /vjuː/, wie view) ist ein JavaScript-Framework für die Entwicklung von Benutzeroberflächen. Es baut auf Standard-HTML, -CSS und -JavaScript auf und bietet ein deklaratives und komponentenbasiertes Programmiermodell, das Ihnen hilft, einfache oder komplexe Benutzeroberflächen effizient zu entwickeln

Webdesign bezieht sich auf die Gestaltung von Websites, die im Internet angezeigt werden. Es bezieht sich in der Regel auf die Aspekte der Benutzerfreundlichkeit der Website-Entwicklung und nicht auf die Software-Entwicklung. Früher lag der Schwerpunkt des Webdesigns auf der Gestaltung von Websites für Desktop-Browser; seit Mitte der 2010er Jahre gewinnt jedoch die Gestaltung für mobile und Tablet-Browser immer mehr an Bedeutung. Ein Webdesigner befasst sich mit dem Aussehen, dem Layout und in einigen Fällen auch mit dem Inhalt einer Website. Das Erscheinungsbild bezieht sich zum Beispiel auf die verwendeten Farben, Schriftarten und Bilder. Das Layout bezieht sich darauf, wie die Informationen strukturiert und kategorisiert sind. Ein gutes Webdesign ist benutzerfreundlich, ästhetisch ansprechend und passt zu der Benutzergruppe und der Marke der Website. Wer auf der Suche nach gutem Webdesign ist, ist bei den Websprintern gut aufgehoben. 

Als Website Testing (Webseiten-Test) bezeichnen wir den Vorgang bei dem wir einen automatisierten Webseiten-Test für ein bestimmtes Test-Szenario schreiben und ausführen. Der Test wird mithilfe eines Frameworks (Tool) verfasst in unserem Fall mit Codeception oder Cypress. Neben Tests für Webseiten bieten wir auch API (Anwendungs-) Tests an.

XML steht für eXtensible Markup Language. XML ist eine Auszeichnungssprache, ähnlich wie HTML. Es wurde für die Speicherung und den Transport von Daten entwickelt. XML ist selbstbeschreibend und eine W3C-Empfehlung

Cross-Site-Scripting (XSS)-Angriffe sind eine Art von Injektion, bei der bösartige Skripte in ansonsten gutartige und vertrauenswürdige Websites eingeschleust werden. XSS-Angriffe treten auf, wenn ein Angreifer eine Webanwendung nutzt, um bösartigen Code, in der Regel in Form eines browserseitigen Skripts, an einen anderen Endbenutzer zu senden. Schwachstellen, die solche Angriffe ermöglichen, sind weit verbreitet und treten überall dort auf, wo eine Webanwendung Eingaben eines Benutzers in der von ihr erzeugten Ausgabe verwendet, ohne sie zu validieren oder zu kodieren. Ein Angreifer kann XSS nutzen, um ein bösartiges Skript an einen ahnungslosen Benutzer zu senden. Der Browser des Endbenutzers hat keine Möglichkeit zu erkennen, dass das Skript nicht vertrauenswürdig ist, und führt das Skript aus. Da er davon ausgeht, dass das Skript von einer vertrauenswürdigen Quelle stammt, kann das bösartige Skript auf Cookies, Sitzungs-Token oder andere vertrauliche Informationen zugreifen, die vom Browser gespeichert und mit dieser Website verwendet werden. Diese Skripte können sogar den Inhalt der HTML-Seite umschreiben.

YAML ist eine Sprache zur Serialisierung von Daten, die häufig zum Schreiben von Konfigurationsdateien verwendet wird. Die Abkürzung YAML steht entweder für Yet Another Markup Language oder YAML Ain’t Markup Language (ein rekursives Akronym), wodurch betont wird, dass YAML für Daten und nicht für Dokumente gedacht ist. YAML ist eine beliebte Programmiersprache, da sie für den Menschen lesbar ist. Sie kann auch in Verbindung mit anderen Programmiersprachen verwendet werden.

Gute automatisierte Tests finden Bugs schnell und zuverlässig. Das spart viel Zeit und lange Arbeitsprozesse. Manuelle Prozesse sind sehr komplex und brauchen viele Ressourcen. Software muss auf einer Abnahmeumgebung auf den aktuellen Stand gebracht werden. Danach wird dem Test-Team Bescheid gegeben. Das testet dann manuell nach Listen und erfasst mögliche Bugs in Ticket-Systemen, wie Jira. Das ist insgesamt ein Prozess, der mehrere Leute über viele Stunden beschäftigt. Automatisierte Tests und Deployments erledigen das innerhalb weniger Minuten und legen auch Screenshots der Fehler an. Das spart sehr viel Zeit,die man für weitere Innovationen nutzen kann.