TestNG. By Cédric Beust. Studie. Version: 0.1 Stand vom: 14.04.2015 17:42:00 Status: Entwurf Autor: Arian Simon, B.Sc. Klassifikation: Intern

Ähnliche Dokumente
Evolus Pencil Studie über Modellierungswerkzeuge. Studie

Polarion Software Polarion ALM 2013

Allgemeines... II Historie... II Qualitätssicherung... II Zweck und Inhalt dieses Dokuments... II

Software AG ARIS Express 2.3

Visure Solutions IRQA 4

SAP ecatt. Studie über Testautomatisierungswerkzeuge. Studie. Version: 1.0 Stand vom: :39:00 Status: Erstellt Autor: Kurt Aigner

Ranorex 3.3. Studie über GUI-Testautomatisierung. Studie

HP Application Lifecycle Management 11

IBM Rational Requirements Composer 4.0.2

SiTEMPPO 5.8. Studie über Testmanagementwerkzeuge. Studie

Microsoft Team Foundation Server 2012

Jama Contour 3.6. Studie über Anforderungsmanagementwerkzeuge. Studie

TestLink 1.8. Studie über Testmanagementwerkzeuge. Studie. Version: 1.0 Stand vom: :42:00 Status: Freigegeben Autor: Jaroslav Klimes

Selenium Studie über Testautomatisierungswerkzeuge. Studie

Micro Focus Borland CaliberRM 11.0

IBM Rational Functional Tester

Visual Studio Team System 2010

Modzilla Testopia 2.1

Borland SilkCentral 2008

Razorcat Tessy 3.2. Studie über Testautomatisierungswerkzeuge. Studie

Polarion ALM Studie über Testmanagementwerkzeuge. Studie. Version: 2.0 Stand vom: :42:00 Status: Geprüft Autor: Sabine Pils

TestComplete 9.3. Studie über GUI-Testautomatisierung

Orcanos QPack 5. Studie über Testmanagementwerkzeuge. Studie. Version: 1.0 Stand vom: :41:00 Status: Freigegeben Autor: Jaroslav Klimes

Imbus TestBench 1.6.1

Eclipse TPTP. Studie über Testmanagementwerkzeuge. Studie

Visual Studio Team System 2010

HP QuickTest Professional 10

QF-Test Studie über GUI-Testautomatisierung. Studie

Testen mit JUnit. Motivation

Unit Testing mit JUnit. Dr. Andreas Schroeder

Wörterbücher von MS nach Ooo konvertieren

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.


Welcome Package Region Stuttgart

HP LoadRunner 9.5. Studie über Lasttestwerkzeuge. Studie. Version: 1.0 Stand vom: :40:00 Status: Freigegeben Autor: Klimes, Plasser

EEX Kundeninformation

JUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1

UC4 Rapid Automation HP Service Manager Agent Versionshinweise

job and career for women 2015

BartPE. Dokumentation. Projektarbeit Network Services. Dozent: Wolf-Fritz Riekert. Belmondo Kovac. Autor: Andreas Dinkelacker, 3.

Software-Engineering Software-Management

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Microsoft Azure Fundamentals MOC 10979

Adobe Reader X. Adobe Customization Wizard X. highsystem ag. Author(s): Paolo Sferrazzo. Version: 1.0 Erstellt am: Letzte Änderung: - 1 / 9

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

How To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

XING und LinkedIn-Integration in das erecruiter-bewerberportal


Programmentwicklung ohne BlueJ

Kundeninformation zur Meldungserfassung mit dem SAP Solution Manager der CPRO Industry Project and Solutions GmbH

Einführung in Javadoc

Fortgeschrittenes Programmieren mit Java. Test Driven Development

KIP Druckerstatus Benutzerhandbuch KIP Druckerstatus Installations- und Benutzerhandbuch

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

job and career at CeBIT 2015

a.sign Client Lotus Notes Konfiguration

Dokumentation des Projektes Tic Tac Toe

miditech 4merge 4-fach MIDI Merger mit :

Objektorientierte Programmierung

Händler Preisliste Trade Price List 2015

eridea AG Installation Eclipse V 1.4

Einführung in die Informatik Tools

Testing & Logging DBS. Tobias Lingelmann SEP

GURUCAD - IT DIVISION CATIA V5 PLM EXPRESS CONFIGURATIONS Hamburg, 16th February 2010, Version 1.0

Unsere Webapplikation erweitern

SMART Newsletter Education Solutions April 2015

Installations Guide für YAJSW und DTLDAP

Test-Driven Design: Ein einfaches Beispiel

Nützliche Tipps für Einsteiger

Smartphone Benutzung. Sprache: Deutsch. Letzte Überarbeitung: 25. April

10.6 Programmier-Exits für Workitems

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

Webalizer HOWTO. Stand:

Communications & Networking Accessories

Anwenderhandbuch logiware IO-Stick

Struts 2 Das Imperium schlägt zurück?

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Nikon Message Center

Zeitsynchronisation per DCF-77 Funktionsbeschreibung

Schlüsselaustausch. Version 1.1. APCS Power Clearing and Settlement AG

Themen. Web Service - Clients. Kommunikation zw. Web Services

Alle Informationen zu Windows Server 2003 Übersicht der Produkte

Symbio system requirements. Version 5.1

Handbuch. Artologik EZ-Equip. Plug-in für EZbooking version 3.2. Artisan Global Software

3 Konfiguration OfficeMaster 3.10 SNMP

2. Einrichtung der Verbindung zum Novell-NetStorage-Server

Elexis-BlueEvidence-Connector

Key Recovery von Klasse C Enterprise Encryption Zertifikaten mit Certificate Lifecycle Manager

Datenanpassung: Erdgas und Emissionsrechte

Remote Method Invocation

VIDA-LOGDATEIEN VIDA ALL-IN-ONE

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Titelbild1 ANSYS. Customer Portal LogIn

TFS Customzing. in der Praxis. Thomas Gugler. seit 2005 bei ANECON. .NET seit 2002 (happy bday!) Schwerpunkte: MCPD.Net 4.0, MCTS TFS, Scrum Master,

Qualität von Software - Prof. Schlingloff, Lackner - SS2013 DYNAMISCHER TEST. Whitebox Testen mit JUnit

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Transkript:

TestNG By Cédric Beust Studie Version: 0.1 Stand vom: 14.04.2015 17:42:00 Status: Entwurf Klassifikation: Intern Software Quality Lab. Alle Rechte vorbehalten. Druckdatum: 14.04.2015

Inhalt DOKUMENTENINFORMATION... II Allgemeines... II Historie... II Qualitätssicherung... II Zweck und Inhalt dieses Dokuments... II 1. ALLGEMEIN... 1 1.1. Hersteller... 1 1.2. Alternative... 1 2. SEMANTIK... 3 2.1. Grundlegendes... 3 2.2. Annotations... 3 2.3. Assertions... 4 2.4. Getestetes Programm... 5 2.5. Testfall Klasse... 6 2.6. Testfall XML... 7 2.7. Testlauf Resultat... 10 2.8. Logs... 11 3. TESTNG UND ECLIPSE IDE... 12 3.1. Installation... 12 3.2. Ausführung... 14 3.3. Resultat... 14 4. TESTNG UND SELENIUM... 16 5. TESTNG ODER JUNIT?... 17 5.1. Test Gruppen... 17 5.2. Testabhängigkeiten... 18 6. FAZIT... 19 7. ABBILDUNGSVERZEICHNIS... 20 I / II

Dokumenteninformation Allgemeines Zusammenhang mit anderen Dokumenten: Diese Analyse ist Bestandteil der Studien über Unit Tests von Software Quality Lab. Verteiler: Historie Version Status Datum Verantwortlicher Änderungsgrund / Anmerkungen 0.1 Erstellt 17.12.12 Arian Simon Qualitätssicherung Rolle Name Erreichbarkeit (Org.+Tel.+E-Mail) Tätigkeit Datum Autor Arian Simon Arian.simon@software-quality-lab.com erstellt 17.12.2012 Prüfer Alexsander Ofner Alexsander.ofner@ software-qualitylab.com geprüft 21.01.2013 Freigabe <> Autor! freigegeben Zweck und Inhalt dieses Dokuments Ziel dieses Dokuments ist es, Interessierten eine objektive Analyse von TestNG zu bieten, welche als Entscheidungshilfe herangezogen werden kann. Grundlagen in der Java Programmierung werden empfohlen. II / II

Allgemein Hersteller 1. Allgemein 1.1. Hersteller TestNG 1 ist ein von Cédric Beust entwickeltes Java Framework und erlaubt das Erstellen von automatisiert ausführbaren Testfällen. Es wurde als Antwort auf Unzulänglichkeiten von JUnit 2 3 erdacht und stellt heute eine probate Alternative zu JUnit dar. Letzteres übernahm viele Ideen von TestNG in seine neueste Version. Um die Ähnlichkeit zu verdeutlichen werden die zwei Testwerkzeuge in Kapitel 1.2 gegenübergestellt. Kapitel 5 bietet eine Entscheidungshilfe. Eine detaillierte Dokumentation über die Beweggründe der TestNG Entwicklung findet man im Buch Next Generation Java Testing von Cédric Beust und Hani Suleiman. Zum Zeitpunkt der Erstellung dieses Dokuments ist Version 6.8 aktuell. 1.2. Alternative Die prominenteste Java Alternative zu TestNG stellt JUnit dar. In ihren neuesten Versionen ähneln sich die Tools stark. Der Vergleich erfolgt zwischen Quelltext 1 und Quelltext 2. Die einzelnen Befehle und Funktionen werden in Kapitel 2 erklärt. package itest; import org.testng.assert; import org.testng.annotations.test; import prog.mainprogram; public class TestNGOne { @Test public void firsttest() { MainProgram proggy = new MainProgram(); int iresultcheck = proggy.calc(1, 2); Assert.assertEquals(iResultCheck, 3); @Test(enabled = false) public void ignoredtest() { Quelltext 1: TestNG Beispiel 1 http://testng.org (Stand 23.12.2012) 2 http://www.junit.org/ (Stand 23.12.2012) 1 / 20

Allgemein Alternative Im Vergleich dazu folgt nun das JUnit 4 Equivalent. package itest; import static org.junit.assert.*; import org.junit.ignore; import org.junit.test; import org.junit.runner.runwith; import org.junit.runners.junit4; import prog.mainprogram; @RunWith(JUnit4.class) public class JunitOne { @Test public void firsttest() { MainProgram proggy = new MainProgram(); int iresultcheck = proggy.calc(1, 2); assertequals(iresultcheck, 3); @Test @Ignore public void ignoredtest() { Quelltext 2: JUnit 4 Beispiel Auffällig bei beiden Beispiele sind die Annotationen beginnend mit einem @. Diese wurden bei TestNG erstmals verwendet und sind dank großer Beliebtheit, ab Version 4, ebenfalls in JUnit vorhanden. 2 / 20

Semantik Grundlegendes 2. Semantik In diesem Kapitel wird auf die Bedeutung der am häufigsten verwendeten TestNG Begriffe eingegangen und ein Beispiel demonstriert. 2.1. Grundlegendes Die TestNG Semantik besteht in der Java Klasse grundsätzlich aus Annotationen, Methoden (den Testfällen) und Assertionen. Während Erstere Optionen für den Testablauf bereitstellen, vergleichen Letztere das Resultat mit dem Sollzustand. 2.2. Annotationen Annotationen in TestNG ermöglichen unter anderem das Zuweisen von bestimmten Funktionen an bestimmte Klassen. Folgende können verwendet werden: @BeforeSuite @AfterSuite @BeforeTest @AfterTest @BeforeGroups @AfterGroups @BeforeClass @AfterClass @BeforeMethod @AfterMethod @DataProvider @Factory @Listeners @Parameters Deklariert eine Methode, sodass sie vor allen Suite-Testfällen gestartet wird. Deklariert eine Methode, sodass sie nach allen Suite-Testfällen gestartet wird. Deklariert eine Methode, sodass sie vor jedem Testfällen gestartet wird. Deklariert eine Methode, sodass sie nach jedem Testfällen gestartet wird. Deklariert eine Methode, sodass sie vor jeder Gruppe von Testfällen gestartet wird. Deklariert eine Methode, sodass sie nach jeder Gruppe von Testfällen gestartet wird. Deklariert eine Methode, sodass sie vor der ersten Testmethode einer Klasse gestartet wird. Deklariert eine Methode, sodass sie nach der letzten Testmethode einer Klasse gestartet wird. Deklariert eine Methode, sodass sie vor jeder Testmethode gestartet wird. Deklariert eine Methode, sodass sie nach jeder Testmethode gestartet wird. Deklariert eine Methode, sodass sie Datenpool für eine Testmethode gilt. Deklariert eine Methode, sodass sie eine Klasse für TestNG bereitstellt. Deklariert eine Methode, sodass sie als Listener für eine Testklasse bereitsteht. Ermöglicht das Auslesen von Werten in einer Config Datei. @Test Deklariert eine Methode als Testfall. Tabelle 1: Annotationen 3 / 20

Semantik Assertionen 2.3. Assertionen Für den Ergebnisabgleich gibt es folgende Befehle: assertequals asserttrue assertfalse assertsame assertnotsame assertnull Bestätigt die Gleichheit zwischen zwei Objekten. Bestätigt eine Bedingung als wahr. Bestätigt eine Bedingung als falsch. Bestätigt, dass zwei Objekte auf dasselbe Objekt referenzieren. Bestätigt, dass zwei Objekte nicht auf dasselbe Objekt referenzieren. Bestätigt, dass ein Objekt null ist. assertnotnull Bestätigt, dass ein Objekt nicht null ist. Tabelle 2: Assertions Ist ein Abgleich negativ ausgefallen, wird ein Assertion Error ausgelöst. Durch den ebenfalls erstellten Stacktrace 1 kann am Ende des Testlaufs der Fehler rückverfolgt werden. 1 http://de.wikipedia.org/wiki/stacktrace (Stand 10.01.2013) 4 / 20

Semantik Getestetes Programm 2.4. Getestetes Programm Für Demonstrier-Zwecke wird hier ein simples Beispielprogramm dargestellt. package prog; import java.io.bufferedreader; import java.io.file; import java.io.filenotfoundexception; import java.io.filereader; public class MainProgram { int ires = 0; public int calc(int ione, int itwo) { try { ires = ione + itwo; System.out.println("Result = " + ires); catch (Exception e) { e.printstacktrace(); return ires; public BufferedReader readfile(file ftestfile) throws FileNotFoundException { BufferedReader brcheck = null; brcheck = new BufferedReader(new FileReader(fTestFile)); return brcheck; public static void main(string[] args) { try { MainProgram mnew = new MainProgram(); mnew.calc(integer.parseint(args[0]), Integer.parseInt(args[1])); mnew.readfile(new File(args[2])); catch (Exception e) { e.printstacktrace(); Quelltext 3: Beispielprogramm Die Methode calc führt eine Addition der Eingabeparameter durch und gibt das Ergebnis als int zurück. Die Methode readfile weist einem BufferedReader 1 eine vorher definierte Datei zu. Das Ziel der folgenden Testfälle ist nun, diese Methoden auf ihre korrekte Funktionsweise zu überprüfen. 1 http://docs.oracle.com/javase/1.4.2/docs/api/java/io/bufferedreader.html (Stand 10.01.2013) 5 / 20

Thank you very much for downloading a public preview of our well known and highly appreciated tool studies. If you re interested in reading the whole document just apply here and request the document you want to read from our comprehensive set of studies already available. For further information on our tool studies visit our web site. Or, you can always use the following form to request the studies you want to read. Seite 1 von 2

Bestellformular für Tool-Studien/Order form for tool studies An/to Software Quality Lab GmbH Gewerbepark Urfahr 6 4040 Linz AUSTRIA Bitte ausgefüllt per Email an/ Please fill out and send to info@software-quality-lab.com Name/full name: Adresse/address: Firma/company: Email/email: Funktion/role: Telefon/phone: / [bitte füllen Sie die Daten vollständig und korrekt aus/please supply correct and complete data] Bestellliste/Order list [bitte kreuzen Sie die gewünschten Tools an/please select the tool studies] ALM, RM IBM Rational Requirements Composer 4.0.2 Jama Contour 3.61 NEU! Micro Focus Borland Caliber Microsoft Team Foundation Server 2013 Polarion ALM 2014 HP ALM 11 VersioneOne 13.0 Visure Solutions IRQA 4 Test Management Imbus TestBench 1.6.1 Micro Focus SilkCentral 2008 Microsoft VSTS 2010 Mozilla Testopia 2.1 Orcanos QPack 5 Polarion ALM 20121 NEU! Siemens SiTEMPPO 5.8 TestLink 1.9.12 Seapine TestTrack 2012 Static Code Analysis SonarQube 4.5 GUI Test Automation Appium 1.2.2 Bredex GUIdancer 4.2 HP UFT Professional 10 IBM Functional Tester 8.1.0.3 Microsoft VSTS 2010 QF-Test 3.5.1 NEU! Ranorex 3.3 SAP ecatt Selenium 2.0 SmartBear TestComplete 9.3 SmartBear SoapUI 5.1 Weitere Informationen auf unserer Website www.software-quality-lab.com. Embedded Systems LDRA 8.0 Razorcat Tessy 2.6 Load/Performance Apache JMeter 2.8 Grinder 3.4 HP LoadRunner 9.5 Neotys Neoload 3.0.3 SmartBear LoadUI 2.8.0 Unit Tests Google Test 1.5 JUnit 4.11 NUnit 2.5.7 Die Toolnamen und eingetragenen Warenzeichen sind Eigentum der jeweiligen Toolhersteller/Tool names are property of tool vendors. Die Studien sind grundsätzlich auf Anfrage frei erhältlich. Software Quality Lab behält sich jedoch vor, die Aufwände für gewisse Branchen und Privatpersonen in Rechnung zu stellen (z.b. Beratungsfirmen, Toolhersteller usw.) Studenten erhalten die Studie zum halben Preis/All studies are basically free, except for certain branches of industry or private persons, for whom we invoice at cost. Students get a discount of 50%. Seite 2 von 2

Tool Evaluation Center Efficient, goal-oriented and professional tool evaluation Unique in Europe What is TEC? The Tool Evaluation Center (TEC) is a neutral environment for evaluating software tools related to software development, through which you will receive a detailed, vendorindependent overview of the suitability of different tools for your software projects. Your Partner for software quality and testing Consulting Implementation Training Automation Evaluation Software Quality Lab is your competent partner in software quality and testing and one of the leading independent consulting companies in Austria. We specialize ourselves in the improvement of efficiency, quality and security in the fields of software development and system processes. All tools in TEC are up to date, installed and configured, furnished with examples and ready for demonstration. Practical work and getting to know the tools in a handson manner is also possible. Your Benefit EETime-saving: Tool selection in a few days. No time-consuming research and product requests, no installation and testing. EEPreparation of information for different target groups from technicians to the managing board. EESupport provided by specialists, ranging from requirements through to a proof of concept or a pilot project. Our services around the tool selection Tool categories in the TEC EEApplication Life Cycle Management EERequirements Management EETest Management EEGUI Test Automation EETest Data Management EEComprehensible decision criteria: Using special techniques we evaluate the tools together with you, basing on your requirements as a foundation for your investment decision. EELarge selection and direct comparison of products ranging from market leaders through newcomers to open source software and freeware. Linz / Vienna / Graz / Lustenau / Munich Requirements elicitation, Creating a list of criteria Tool review, Pre-selection of tools, Practical getting to know the tools in the TEC Workshop with 3-5 suitable tools, Proof of Concept, Planning and implementing the pilot project Integration with other tools Tools in TEC www.software-quality-lab.com Our TEC includes more then 40 installed tools from reputable manufacturer (e.g. IBM, HP, Micro Focus, Microsoft, Polarion, Siemens) as well as interesting newcomer products and alternatives from the open source area (e.g. JMeter, Selenium). Further details can be found at www.tool-evaluation.com. V. 2011-12 Software Quality Lab GmbH info@software-quality-lab.com www.software-quality-lab.com