Was ist expecco?: Unterschied zwischen den Versionen

Aus expecco Wiki (Version 2.x)
Zur Navigation springen Zur Suche springen
Zeile 29: Zeile 29:
Das Basissystem enthält:
Das Basissystem enthält:
* expecco IDE
* expecco IDE
* Bibliotheken(Standard, ODBC, XML)
* Bibliotheken - (Standard, ODBC, XML)
* Webtest: Selenium (Webdriver, HTML5, Smart GWT,etc.)
* Webtest - Selenium (Webdriver, HTML5, Smart GWT,etc.)
* Manuelle Tests (Benutzergeführter Ablauf)
* Manuelle Tests - (Benutzergeführter Testablauf)
* Ports: seriell/USB/parallel
* Ports - seriell/USB/parallel
* Anbindungen (DLL, CSV, etc.)
* Anbindungen - (DLL, CSV, etc.)
* Webservices (REST, SOAP, RPC)
* Webservices - (REST, SOAP, RPC)
* JavaBridge (Java Code ausführen sowie Code Injection in Java Programme)
* JavaBridge - (Java Code ausführen sowie Code Injection in Java Programme)
* .NETBridge (DotNET Code ausführen)
* .NETBridge - (DotNET Code ausführen)
* NodeJS Bridge ab v19.1 (Node/Javascript Code ausführen)
* NodeJS Bridge ab v19.1 (Node/Javascript Code ausführen)
* Python Bridge ab v19.1 (Python Code ausführen)
* Python Bridge ab v19.1 (Python Code ausführen)
* Automatischer Reprt

expecco ist modular aufgebaut – das Basissystem kann jederzeit durch unsere Plugins erweitert und an Ihren individuellen Bedarf oder an den Projektfortschritt angepasst werden.


=== Plugins ===
=== Plugins ===

Version vom 17. Juni 2019, 08:00 Uhr

Übersicht[Bearbeiten]

expecco und expecco ALM[Bearbeiten]

expecco ist die Komponente innerhalb der expecco Werkzeugkette, welche der Entwicklung und Ausführung von Tests dient. expecco ist eine "Native Client"-Anwendung, welche entweder auf dem Rechner des Testentwicklers oder Testers läuft, oder als "Test-Ausführungs-Knecht" in einer (möglicherweise virtualisierten) Serverfarm oder einem Docker Container installiert wurde. Mit expecco werden Testpläne in eine Testsuite definiert und ausgeführt.

expecco ALM ist eine Serveranwendung mit Webbrowseroberfläche, welche für die Verteilung und ordentliche Ausführung der Tests innerhalb der Serverfarm sorgt, Testressourcen verwaltet und Nutzungskonflikte vermeidet, Testsuiten und Resultate archiviert und versioniert, den Projektfortschritt beobachtet und berichtet, Benachrichtigungen verschickt etc. Mit "expecco ALM" werden Testläufe automatisch auf "Ausführungs-Knechte" im lokalen Netz oder in einer Cloudumgebung zur Ausführung gebracht und die Resultate archiviert.

Sowohl expecco als auch expecco ALM sind eigenständige Produkte, welche gesondert bestellt, installiert und eingesetzt werden können, doch im Zusammenspiel realisieren sie eine vollautomatisierte Testausführung und Qualitätskontrolle.

expecco Basissystem (Plattform)[Bearbeiten]

expecco ist ein modulares System, welches aus einer Basisplattform sowie Erweiterungen ("Plugins") besteht. Plugins realisieren domänenspezifische Funktionen und Anbindungen.

Das Basissystem umfasst:

  • Laden und Speichern von Testsuiten
  • Anlegen, Bearbeiten und Pflege von Testsuiten
  • Testausführung
  • Testentwicklung mit Singlestep, Breakpoints, Ausführung von Teilsequenzen
  • Testentwicklung mit "Live changes while the system runs"
  • Debugging auf hoher (Diagramm-) als auch auf niedriger (Script/Code) Ebene
  • Beobachtung der Ausführung, Sammeln von Trace-, Zeit- und Logdaten
  • Sammeln aller Datenflüsse, Nachrichtenpakete und Zwischenergebnisse zur späteren Inspektion
  • Reportgenerierung als Mensch- und Maschinenlesbare Dokumente in verschiedenen Formaten

Die Testausführung kann sowohl unter Aufsicht und Kontrolle eines Bedieners, als auch komplett unbeobachtet erfolgen. Ersteres wird typischerweise bei der Testentwicklung, letzteres in der Produktionsumgebung der Fall sein, wenn die Tests automatisiert zum Ablauf kommen.

Die automatisierte Ausführung kann durch die Kommandozeile oder durch entfernte Rechner via SOAP oder REST initiiert bzw. kontrolliert werden. Somit kann die Testausführung per cron-Job (unix), scheduled tasks, Jenkins oder beliebigen anderen Programmen automatisch angestossen werden.

Das Basissystem enthält:

  • expecco IDE
  • Bibliotheken - (Standard, ODBC, XML)
  • Webtest - Selenium (Webdriver, HTML5, Smart GWT,etc.)
  • Manuelle Tests - (Benutzergeführter Testablauf)
  • Ports - seriell/USB/parallel
  • Anbindungen - (DLL, CSV, etc.)
  • Webservices - (REST, SOAP, RPC)
  • JavaBridge - (Java Code ausführen sowie Code Injection in Java Programme)
  • .NETBridge - (DotNET Code ausführen)
  • NodeJS Bridge ab v19.1 (Node/Javascript Code ausführen)
  • Python Bridge ab v19.1 (Python Code ausführen)
  • Automatischer Reprt

expecco ist modular aufgebaut – das Basissystem kann jederzeit durch unsere Plugins erweitert und an Ihren individuellen Bedarf oder an den Projektfortschritt angepasst werden.

Plugins[Bearbeiten]

Erweiterungen ("Plugins") realisieren die Schnittstellen zu verschiedenen UI-Technologien, zu Hard- und Software Schnittstellen, Protokollen sowie Dokumentformaten. Diese Plugins sind z.T. im Basissystem enthalten oder können nach Bedarf bestellt werden.

Zum Beispiel:

  • "Mobile Testing Plugin" für Apps unter iOS und Android
  • GUI Testing für Java-Swing, SWT und andere Java UI-Frameworks
  • GUI Testing für Qt und andere C/C++ basierte UI-Frameworks
  • GUI Testing für Windows Anwendungen (Windows Automation)
  • GUI testing via VNC
  • Webtest mit Selenium für Firefox, IE, Safari, Opera und Chrome Browsern
  • Schnittstellen zu CAN-Bus Systemen wie CANoe (Automotive)
  • Schnittstellen zu SomeIP Brokern / Klienten (Automotive)
  • Schnittstellen zu EDIFACT und SWIFT Systemen (B2B, Finance)
  • Schnittstellen zu MQTT und OPC Systemen (Manufacturing, Internet of Things, Automotive)

Typischerweise bestehen Plugins aus zusätzlichen dll- und Blockbibliotheken, welche domänenspezifische Funktionen als "ready-to-use" Bausteine beinhalten. Diese werden dann mit drag & drop in die Testsequenzen eingefügt.

Andere Plugins dienen der Integration in eine existierende QM Infrastruktur:

  • Polarion Plugin, um Tests im Polarion ALM System zusammenzustellen und mit expecco zu automatisieren
  • Quality Center Plugin als Schnittstelle zu HP-QC
  • Jira Plugin, um nach Testläufen Jira-Issues automatisch anzulegen bzw. zu aktualisieren
  • expecco ALM Plugin als Schnittstelle zu unserem eigenen QM/Testcenter Produkt

Verfügbarkeit[Bearbeiten]

expecco und expecco ALM sind verfügbar für Windows und Linux Systeme, sowohl als 32bit als auch als 64bit Version. Eine Version für macOS (64bit) ist in der Beta Testphase und auf Anfrage verfügbar. Versionen für Solaris und andere Unix Systeme können ebenfalls auf Anfrage bereit gestellt werden.

Lizenzierung[Bearbeiten]

Lizenzen für expecco sind verfügbar als Einzelplatz (Nodelock oder Dongle), Floating (mit Hilfe eines Lizenzmanagers/Lizenzservers) oder als Firmenlizenz. expecco kann (mittels Einzelplatz- oder vom Lizenzserver ausgelöster Lizenz) in isolierten Umgebungen, ohne Zugang zum Firmennetz oder Internet eingesetzt werden. Zu Preisen und Konditionen kontaktieren Sie bitte eXept.

Architektur[Bearbeiten]

expecco ist modular aufgebaut und besteht aus einem domänenunabhängigen Basissystem, welches den Editor, Executor sowie Reporting umfasst, sowie Plugins und Erweiterungen, welche domänenspezifische Anbindungen an diverse Systeme, Protokolle, Hardware-Schnittstellen sowie Dokumentformate realisieren.

Im Prinzip ist expecco ein "Black Box" Testsystem, welches keine Instrumentierung des getesteten Systems (SUT = "System Under Test") erwartet oder benötigt (d.h. es ist nicht notwendig, das SUT mit speziellem Code zu erweitern oder spezielle Bibliotheken dazu zubinden). Es ermöglicht aber "code injection" bei Java- und .NET-Anwendungen, wodurch "Grey Box" und "White Box" Tests ebenfalls unterstützt werden.

Testszenarien können in expecco sowohl auf einer hohen Abstraktionsebene als (Aktivitäts-) Diagramme, als "Keyword-Driven" Testsequenzen oder als textuelle Skripte in verschiedenen Programmiersprachen formuliert werden. Skripte können sowohl in expecco selbst, als auch im SUT oder anderen Maschinen ausgeführt werden (z.B. um das SUT zu stimulieren, oder um Last zu generieren).


Folgendes grobes Architekturbild gibt dazu eine Übersicht (nicht alle verfügbaren Plugins sind darin enthalten):

expecco Architektur (nicht alle Plugins dargestellt)

(oder als PDF: Datei:ExpeccoArchitecture1.pdf)

Konzept[Bearbeiten]

Die Grundphilosophie von Expecco ist, daß Testabläufe sowohl von Entwicklern und Programmierern, als auch von Domänenexperten und Analysten erstellt, gewartet und ausgeführt werden können, ohne daß dazu spezielle Programmierkenntnisse notwendig wären. Dabei darf es aber keine Einschränkungen geben, und ein erfahrener Nutzer hat alle Mittel zur Verfügung, um eigenen Code, Scripte und erweiterte Funktionen zu erstellen.

Um beiden Anforderungen gerecht zu werden, können Abläufe in Expecco sowohl als Aktivitätsdiagramm ("Kästchen und Pfeile") als auch als Scriptcode in verschiedenen Programmiersprachen definiert werden. Die ermöglicht einen "Best of both Worlds" Ansatz: einerseits können Nichtprogrammierer auf einer hohen Abstraktionsebene bestehende Aktionsbausteine mittels "Drag & Drop" oder Recording von GUI Aktionen zu komplexen Szenarien verbinden, andererseits ist es möglich, fehlende Funktionsbausteine als Scriptcode zu erstellen, und als Aktionsbaustein für andere Aktionen bereit zu stellen.

"Hardcore" Entwickler können selbstverständlich auch den gesamten Testablauf als Script definieren - allerdings geht dadurch die natürlich Verständlichkeit für Nichtprogrammierer mehr oder weniger verloren. In der Praxis wird es zu einer Aufgabenteilung kommen: für die Anbindung an das getestete System (SUT - System under Test) werden oft spezielle Aktionsbausteine benötigt, die ein Programmierer entwickeln wird (z.B. Anbindungen an Protokolle, Hardware oder Dokumentformate). Der Ablauf der Testszenarien wird dann gemeinsam von Entwicklern, Testern und Analysten durch Diagramme auf einer höheren Abstaktionsebene definiert, wobei hierzu kein Programmierknowhow benötigt wird.

Erweiterbar[Bearbeiten]

Eigene Aktionsbausteine können eine große Menge an frei verfügbarem und bereits existierenden Code nutzen. Somit können Anbindungen an Protokolle, Hardware oder Dokumentformate schnell und preisgünstig realisiert werden. Sie können interaktiv Codefragmente in ihre Szenarien einbinden, welche in JavaScript (Node.js/npm), Python, Java (jar-Dateien), DotNET (Assemblies), R (statistische Auswertungen), Gnuplot (Grafiken erstellen) u.a.m. erstellt wurden. Für diese Programmiersprachen gibt es eine große Menge an frei verfügbaren oder auch lizensierbaren Programmpaketen, z.B. in github oder als npm (Node.js) bzw. pip (Python) Pakete.



Copyright © 2014-2024 eXept Software AG