Introductie at framework

30
Introductie automated testing framework Erwin Heitzman www.linkedin.com/in/erwinheitzman

Transcript of Introductie at framework

Page 1: Introductie at framework

Introductieautomated testing

framework

Erwin Heitzmanwww.linkedin.com/in/erwinheitzman

Page 2: Introductie at framework

Itesso levert wereldwijd geavanceerde hotel software oplossingen binnen de hospitality branche.

Sinds juli 2015 is Itesso een onderdeel van Amadeus, een grote speler binnen Travel IT (meer dan 10,000 medewerkers, actief in 195 landen met een omzet van 3,4 miljard omzet in 2014)

Het hoofdproduct van Itesso is ELS (Enterprise Lodging System), een cloud-native hotel management systeem gebouwd op Microsoft Azure (PaaS)

Een aantal van onze klanten zijn: Fletcher Bastion Van der Valk Magnolia Best Western

Itesso bestaat op het moment uit zo'n 100 medewerkers.

Page 3: Introductie at framework

Dev team Er 20 developers werkzaam bij Itesso

5 teams van 4 personen

Elk team bevat: 1 Tester 1 Front end developer 2 Back end developers

Het test team bevat: 2 FE testers 2 BE testers 1 Tester

Doel 2016, 50 developers

Page 4: Introductie at framework

Hoe gaan we te werk Agile

Scrum

Maintenance (60 minuten) Resultaten Errors Bugs Wie pakt wat op

Standup (15 minuten) Bevindingen resultaten maintenance Wat heb je gedaan, ga je doen en loop je ergens tegenaan Bugs

VSO

Page 5: Introductie at framework

Waarom? Kwaliteit

Standaard

Behouden van deze standaard

In het ergste geval kost het de klant geld

Regressie door snelle groei van bedrijf en/of product

Page 6: Introductie at framework

Wat? Single page applicatie

Denk aan: Het aanmaken en beheren van gasten/accounts Het aanmaken van reserveringen Het in-checken en uit-checken Inrichten van prijzen en kamers Status van kamers bijhouden En nog veel meer

Page 7: Introductie at framework

Typen tests

Unit testing Integration testing

Automated testing

Page 8: Introductie at framework

Unit/Integration testing Bij het inchecken van de code word een build process gestart en worden onderstaande taken

uitgevoerd:• JS validator – valideert op syntax errors• JSHint – valideert op coding standards en mogelijke valkuilen• QUnit – JS unit testing framework

40675 unit tests

Core front end bevat 3000 tests

Core coverage 52,65%

1 minuut en 5 seconden

Bovenstaande tests worden vervolgens samengevoegd en als een group getest, dit is wat we noemen Integration testing

Page 9: Introductie at framework

Automated testing 1360 Automated tests

Deze dagelijks worden gedraaid

Complexe senario's

Gemiddelde van 23 seconden per test

JSHint validatie op het framework

Page 10: Introductie at framework

TestComplete is een platform waar mee tests geautomatiseerd kunnen worden en ondersteund Windows, Web, Android en iOS applicaties en de volgende talen:

VBScript JScript Delphi C++ C# Python

Typen applicaties, Web, Windows, Android, iOS, WPF, HTML5, Flash, Flex, Silverlight, .NET, VCL en Java.

Zowel functional als back-end testing zoals database testing is te automatiseren.

Page 11: Introductie at framework
Page 12: Introductie at framework

Selenium is een open-source testing framework voor web applicaties en ondersteunt de volgende talen:

Java, C# Groovy Perl PHP Python Ruby

Selenium automatiseert de browser, dit word vooral voor test doeleinden gebruikt maar ook administratieve taken kun je automatiseren

Page 13: Introductie at framework

Test resultaten TestComplete maakt aan het einde van alle tests een overzicht aan dat in HTML is opgebouwd wat

voor iedere developer te benaderen is.

Het overzicht is opgedeeld zoals dat deze ook in TestComplete zelf zijn ingericht.

Page 14: Introductie at framework
Page 15: Introductie at framework
Page 16: Introductie at framework
Page 17: Introductie at framework

Pitfalls

Waar loopt men vaak tegen aan

Page 18: Introductie at framework

Kunnen we niet alleen unit tests en integration tests draaien?

Page 19: Introductie at framework

Recorded tests

Page 20: Introductie at framework

Geen framework

Variabelen zorgen voor een robustere setup maar is niet genoeg

Page 21: Introductie at framework

Houd het zo simpel mogelijk

Idealiter lijken je tests op een test definitie

Page 22: Introductie at framework

Voorbeeld test definitie Test Case 11929:Open Account Receivables from the menu with key combination

Page 23: Introductie at framework

Het schrijven van tests als code

Geen idee wat dit doet...

Page 24: Introductie at framework

Voorbeeld test

Page 25: Introductie at framework

Framework

De stap naar het maken van een framework

Page 26: Introductie at framework

Het framework staat los van alles

Tests Framework Applicatie

Page 27: Introductie at framework

Architecture

Tests

Framework

Test applicatie

Applicatie

Page 28: Introductie at framework

Flexibiliteit vs usability

Page 29: Introductie at framework

Perfectie is een illusie Onze testen en framework zijn robuust maar ook wij hebben onze uitdagingen:

Itesso groeit zeer snel en het is mijn taak om het framework met het bedrijf mee te laten groeien

Single page applicatie

Overlap met unit/integration tests

Opsplitsen van het project

Page 30: Introductie at framework

De meerwaarde van een framework Voorkomt herhaling van code

Voorkomt fouten

Makkelijk in gebruik

Flexibel en snel als code word gewijzigd

Herbruikbaar