Was ist expecco?

Aus expecco Wiki (Version 2.x)
Zur Navigation springen Zur Suche springen

Ü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 "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 installiert wurde.

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.

Sowohl expecco als auch expecco ALM sind eigenständige Produkte, welche gesondert bestellt 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.

Plugins[Bearbeiten]

Erweiterungen ("Plugins") realisieren die Schnittstellen zu verschiedenen UI-Technologien, zu Hard- und Software Schnittstellen, Protokollen sowie Dokumentformaten.

Zum Beispiel:

  • "Mobile Testing Plugin" für iPhone, Android, Windows CE, Windows-Phone Apps
  • GUI Testing für Java-Swing, SWT und andere UI-Frameworks
  • GUI Testing für Qt und andere C/C++ basierte UI-Frameworks
  • Webtest mit Selenium für Firefox, IE, Safari, Opera und Chrome Browsern
  • Schnittstellen zu CAN-Bus Systemen wie CANoe (Automotive)
  • Schnittstellen zu EDIFACT und SWIFT Systemen (Finance)
  • Schnittstellen zu OPC Systemen (Manufacturing)

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

Einige Plugins sind bereits im Basissystem enthalten (Selenium, expecco ALM), andere müssen separat lizenziert werden.

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, 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 diversen 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]


  • Konzepte - Testplan, Testcase (Testfall), Activities (Aktivität), Verdicts (Ergebnisse)


Since graphical and interactive modeling came up in computer science, a remarkable number of tools have been developed to facilitate the generative creation of products, especially high-technology products. For a long period of time, big attention has been turned to the automated generation of products, but less attention was spent towards the automation of product testing, especially in the development phase (less so in manufacturing).

Classic testing was - and still is - more than often the unstructured sum of multiple individual, partial tests, in most cases performed by the developers themselves, and often inconsequently conducted due to the lack of time. This usually leads to using proprietary testing systems, which in addition are incompletely and sometimes erroneously implemented, and for all aspects of the testing, the collaboration or support of an expert is required.

Today, the steadily increasing complexity of high technology products, together with the continuous shortage of development cycle times, but also the expectations of the customers regarding quality and reliability, let testing become one of the major issues of modern product development. Also the markets for which products are generated are changing - Increasing concurrence and economical challenge raise the need for reusable work. Internationalization and outsourcing bring up new requirements for logistics and communication. Accordingly, also decentralized tests have to be well organized, and a division of the testing process into distinct testing roles becomes indispensable.



Copyright © 2014-2024 eXept Software AG