SlideShare a Scribd company logo
Real World Test Automation
T H A T ’ S M E
 Jeroen Tuitjer
 Amsterdam
 Mirabeau
 Test Engineer
 Transavia
 Test Automation Ninja
REAL WORLD
TEST AUTOMATION
At least.. My world
TRANSAVIA
Awesome Project /
Awesome Team
3 TEAMS
Together
Team Blue
Ecommerce Platform
Scrumteam
Team Green
Ecommerce Platform
Scrumteam
System
Ecommerce Platform
Scrumteam
SPRINTS
SCRUM
AGILE
TRANSAVIA.COM
Website
Real World Test Automation
Real World Test Automation
Real World Test Automation
Real World Test Automation
Real World Test Automation
Real World Test Automation
Real World Test Automation
Respo
nsive
3. CHECKIN
2. MY TRANSAVIA
1. BOOKING
BACK TO TEST
AUTOMATION
Lessons Learned
WHY TEST
AUTOMATION?
VS Manual testing
FAST
PRECISE
CONTROL
1.CODE
2.RUN
CODE
Awesome Code
One line to rule them all
[TestMethod]
//Checks Paidluggagebooking for 1 perso
public void BookingPaidluggagePax()
{
this.BookingBookServiceTest(passeng
}
Awesome Code
One line to rule them all
ooking for 1 person
idluggagePax()
erviceTest(passengersAmount: 5, service: "BookP
Awesome Code
One line to rule them all
X", iSAsa: true, iSIci: false, iSBrandedFare: f
Awesome Code
One line to rule them all
se, iSBrandedFare: false, serviceType: ServiceT
Awesome Code
One line to rule them all
, outboundDestination: "RTM", inboundDestinatio
//Select RTM for the Outbound Destination
Trace.WriteLine(
"Create booking for " + passengersAmount + " passengers from
+ inboundDestination);
bookingToolSelectPage.BookingToolSelectDestination("Departure", o
//Select ALC for the Inbound Destination
bookingToolSelectPage.BookingToolSelectDestination("Arrival", inb
OUTBOUND / INBOUND
bound Destination
r " + passengersAmount + " passengers from " + outboundDestination +
on);
BookingToolSelectDestination("Departure", outboundDestination);
nbound Destination
BookingToolSelectDestination("Arrival", inboundDestination);
OUTBOUND / INBOUND
if (iSIci)
{
// Outbound flight by using the datepicker, search for the flight
bookingToolSelectPage.ClickBookingDatePicker(FluentJourneyType.Outbound);
bookingToolSelectPage.ClickDateInDatePickerIci();
bookingToolSelectPage.ClickBookingDatePicker(FluentJourneyType.Inbound);
//Select next day and than previous day, then the Outbound flight by click
bookingToolSelectPage.ClickNextInDatePicker();
bookingToolSelectPage.ClickDateInDatePicker();
Trace.WriteLine("Outbound flight by using the datepicker, search for the f
bookingToolSelectPage.BookingToolIncreaseAdult(passengersAmount, type);
bookingToolSelectPage.ClickBookingSearchButton();
bookingToolSelectPage.BookingIciSelect();
this.I.Wait(1);
}
else
{
// Outbound flight by using the datepicker, search for the flight
bookingToolSelectPage.ClickBookingDatePicker(FluentJourneyType.Outbound);
bookingToolSelectPage.ClickNextInDatePicker();
BOOKING TODAY(ICI)
BRANDED FAREprivate void BookingBrandedFares(
string service,
string type,
bool iSBrandedFare,
BookingToolSelectPage bookingToolSelectPage)
{
int package;
switch (service)
{
case BrandedFarePlusCode:
{
package = 2;
}
break;
case BrandedFaresBizzCode:
{
package = 3;
}
break;
default:
package = 1;
REDUCED
MOBILITYswitch (serviceType)
{
case ServiceType.PrmAoxy:
case ServiceType.PrmBlnd:
case ServiceType.PrmDeaf:
case ServiceType.PrmManual:
case ServiceType.PrmMeda:
case ServiceType.PrmPoxy:
case ServiceType.PrmSmbw:
case ServiceType.PrmSvan:
case ServiceType.PrmWcbd:
case ServiceType.PrmWcbw:
case ServiceType.PrmWchc:
case ServiceType.PrmWchr:
case ServiceType.PrmWchs:
case ServiceType.PrmSmbd:
this.ServicePrm(service, type, bookingToolSelectPage, prmSelectPage);
break;
SEAT
RESERVATIONif (iSAsa)
{
//ASAPage
Trace.WriteLine("ASA is possible with " + serviceType);
asaSelectPage.AsaLegendIsAvailable();
switch (serviceType)
{
case ServiceType.SeatNormal:
case ServiceType.SeatExtraLegroom:
case ServiceType.SeatUpFront:
case ServiceType.SeatFrontRow:
//ASAPage select seats
Trace.WriteLine("Select Seats" + serviceType);
this.BookAsa(passengersAmount, serviceType.ToString());
break;
}
bookingToolSelectPage.ClickNext("");
asaSelectPage.ConfirmNoSeats();
}
{
case "PaidLuggage10":
LuggageAmount(passengersAmount, 10, "outbound");
break;
case "PaidLuggage15":
LuggageAmount(passengersAmount, 15, "outbound");
break;
case "PaidLuggage20":
LuggageAmount(passengersAmount, 20, "outbound");
break;
case "PaidLuggage30":
LuggageAmount(passengersAmount, 30, "outbound");
break;
case "PaidLuggage40":
LuggageAmount(passengersAmount, 40, "outbound");
break;
case "PaidLuggage50":
LuggageAmount(passengersAmount, 50, "outbound");
break;
SUITCASE
Real World Test Automation
Real World Test Automation
Real World Test Automation
Real World Test Automation
COMPLEXE CODE
CODE REVIEWS
Real World Test Automation
Scenario: Search Ten Adult Groupbooking Show Notification
Given I am on the Search Select page
And I have entered BCN as OutboundFlight
And I have entered AMS as InboundFlight
And I have checked the returnflight checkbox
And I have selected 10 adults, 0 children and 0 infants
Then There should be a notification about the groupbookingsform
[Then(@"the Checkin page should be available")]
public void ThenTheCheckinPageShouldBeAvailable()
{
var internetCheckinPage = Pages.Get<InternetCheckinPassengerPage>();
internetCheckinPage.CheckinPageShouldBeAvailable();
}
public void
ClickOnTheInternetCheckinButton()
{
I.Click("selector");
}
I.Click(“.Selector”);
.panel .primary-button
I.Hover(“.Selector”);
I.Assert.Exists(“.selector”);
I.Takescreenshot();
Given I book a single HV flight 0 days from now for 1 adults, 0 child nr 5962 from CPH to EIN
Given I am on the Passenger Detail Page
And I enter the pax information for multiple pax
| Passengernumber | PaxType | Firstname | Lastname | DateOfBirth | Gender | Email | Phonenumber |
| 0 | Adult | Email | PassB | 01-01-1980 | Male | jtuitjer@mirabeau.nl| 612345678 |
Then I click on the next button in the booking summary
Given I am on the Holdluggage page
Given I am on the Contact Detail Page
And I enter the contact information
| Firstname | Lastname | Gender | Email | Phonenumber |
| Zoel | ASAICI | Female | jtuitjer@mirabeau.nl | 612345678 |
Then I click on the next button in the booking summary
Given I am on the Payment page
And I select the creditcard option
And I fill in my Mastercard creditcard number
And I fill in my Mastercard creditcard validationcode
And I fill in my Name
And I fill in my experation date
Then I click on the next button in the booking summary
Then The booking confirm page should be available
SIMPLE CODE
WORK WITH
DEVELOPMENT
Team Effort
CODE LEARNINGS
Read me
//NO COMMENTS!
NO COMMENTS()
{
Write.clear.easy();
}
NO CODES
#2144656
P01
PRM
ASA
SSR
@#$@
AMS
TXL
PAX
if ((val1 > val2) && (val1 > val3))
i
LESS VARIABLES
5 max
QUESTIONS
Feedback, or other solutions
RUN
FEATURE
FILE
BACKGROUND
TEST - 1
TEST - 2
TEST - 3
GO TO TEST!!
http://gotopPage.Directly
Given I book a single HV flight 0 days from now for 1
adults, 0 child and 0 infants nr 5962 from CPH to EIN
http://cd1-tst-vpn.transavia.com/nl-NL/boek-een-
vlucht/vluchten/selectflights/
?outboundDeparture=CPH
&outboundArrival=EIN
&outboundCarrier=HV
&outboundFlightNumber=5962
&originDepartureDate=2016-2-15
&adults=1
&children=0
&infants=0
NAVIGATE WITH URL
START
START TEST
TEST
ISOLATED
NIGHTLY BUILD
CHECK
TESTRUN
@FAIL
@NotFinished
SMOKE TEST
START
START TEST
PLAN
CAREFULLY
START
START TESTTESTS
CAN
RUN
ALL
THE
TIME
START
START TESTTIMING DIFFICULTY
START
START TEST
- BOOKING CONFIRMATION
- DECLINE PAYMENT
- CANCELLATION
REQUIREMENTS
LOG
Debug Trace:
Go to flight 5962 From: CPH To EIN
http://cd1-tst-vpn.transavia.com/nl-NL/boek-een-
vlucht/vluchten/selectflights/?outboundDeparture=CPH&outbou
ndArrival=EIN&outboundCarrier=HV&outboundFlightNumber=5962&
originDepartureDate=2016-2-15&adults=1&children=0&infants=0
Title of the page: This web page is not availableTest
MAINTAINABLE
FAST
MULTITHREAD
TESTRUNS
READABLE
Scenario: Search Ten Adult Groupbooking Show Notification
Given I am on the Search Select page
And I have entered BCN as OutboundFlight
And I have entered AMS as InboundFlight
And I have checked the returnflight checkbox
And I have selected 10 adults, 0 children and 0 infants
Then There should be a notification about the groupbookingsform
STABLE
RELIABLE
TEAMWORK
Team Blue
Write new tests
in sprint
Team Green
Write New Tests
In Sprint
DEFENITION OF DONE
System
Maintain tests,
Focus on improvements
DISTRIBUTE WORK
CHECK EVERY DAY
MAKE A TEST BACKLOG
FOCUS
PRIORITISE
QUESTIONS
Feedback, or other solutions
OWNERSHIP
OWNERSHIP
TEST IS NO OWNER
INSIGHTS
FEATURE
DASHBOARD
Real World Test Automation
Real World Test Automation
QUESTIONS
Feedback, or other solutions
1.CODE
2.RUN
USABILITY
Real World Test Automation

More Related Content

PDF
Nyenrode bgcx 5 daan noordeloos
PDF
THE MOST EXPECTATION-RAISING INNOVATIONS OF 2015
PDF
AUTONOMANIA: Chatbots, AI, self-driving cars and more!
PPT
Brussels Airlines - case at Belgian Usability Day 2008
PDF
Building the design discipline at Finnair
PPTX
myBiz- booking flow-UPES student.pptx
PDF
Web Optimization
PPT
Brussels Airlines case study - Belgian Usability Day
Nyenrode bgcx 5 daan noordeloos
THE MOST EXPECTATION-RAISING INNOVATIONS OF 2015
AUTONOMANIA: Chatbots, AI, self-driving cars and more!
Brussels Airlines - case at Belgian Usability Day 2008
Building the design discipline at Finnair
myBiz- booking flow-UPES student.pptx
Web Optimization
Brussels Airlines case study - Belgian Usability Day

Similar to Real World Test Automation (20)

PDF
Anand Bagmar BDT Workshop Bangalore - May2013
PDF
BDT workshop - Anand Bagmar
PPTX
Tourism and travelling management System
PDF
Hotel Extranet Portal for Online Bookings.pdf
PDF
Innovative Property Extranet Solutions & Services | Amar Infotech
PPTX
Flight Booking Engine Development | Flight Booking Engine
PPTX
Gbta Presentation Transforming Fulfillment
PPT
OpenERP Tours & Travels
PDF
Resliv solutions for tourism and E-commerce
PDF
Best practices for crafting high quality PHP apps (PHP Yorkshire 2018)
PPTX
QuadLabs Technologies Pvt. Ltd.
PPTX
Presentation_1.pptx
PPTX
Online tour and travel PPT
PDF
travel-agency-software.pdf
PDF
Bench mark research
PPTX
APPLY ADVANCED AIRFARE RULES AND PROCEDURES
PDF
Booking Process.pdf
PPTX
Clarity tts and its abilities
PPT
Request centre training
PDF
Gl brochure 2016
Anand Bagmar BDT Workshop Bangalore - May2013
BDT workshop - Anand Bagmar
Tourism and travelling management System
Hotel Extranet Portal for Online Bookings.pdf
Innovative Property Extranet Solutions & Services | Amar Infotech
Flight Booking Engine Development | Flight Booking Engine
Gbta Presentation Transforming Fulfillment
OpenERP Tours & Travels
Resliv solutions for tourism and E-commerce
Best practices for crafting high quality PHP apps (PHP Yorkshire 2018)
QuadLabs Technologies Pvt. Ltd.
Presentation_1.pptx
Online tour and travel PPT
travel-agency-software.pdf
Bench mark research
APPLY ADVANCED AIRFARE RULES AND PROCEDURES
Booking Process.pdf
Clarity tts and its abilities
Request centre training
Gl brochure 2016
Ad

Recently uploaded (20)

PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
A Presentation on Artificial Intelligence
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Spectroscopy.pptx food analysis technology
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Encapsulation theory and applications.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
1. Introduction to Computer Programming.pptx
PPT
Teaching material agriculture food technology
PPTX
Big Data Technologies - Introduction.pptx
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Getting Started with Data Integration: FME Form 101
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
MIND Revenue Release Quarter 2 2025 Press Release
NewMind AI Weekly Chronicles - August'25-Week II
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
A Presentation on Artificial Intelligence
Unlocking AI with Model Context Protocol (MCP)
Spectroscopy.pptx food analysis technology
Assigned Numbers - 2025 - Bluetooth® Document
Encapsulation theory and applications.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
20250228 LYD VKU AI Blended-Learning.pptx
1. Introduction to Computer Programming.pptx
Teaching material agriculture food technology
Big Data Technologies - Introduction.pptx
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Spectral efficient network and resource selection model in 5G networks
Network Security Unit 5.pdf for BCA BBA.
Getting Started with Data Integration: FME Form 101
Encapsulation_ Review paper, used for researhc scholars
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
The Rise and Fall of 3GPP – Time for a Sabbatical?
Ad

Real World Test Automation

Editor's Notes

  • #3: TODO: visual
  • #5: Schiphol oost Low cost airline Huisstijl vernieuwd
  • #6: Drie teams
  • #7: Blue zit er vanaf het begin Begonnen met de mijn omgeving
  • #8: Al snel kwam team groen ICI
  • #9: Huidige team Net gestart SAFE (Agile release trains) Overal verbeteringen mogelijkheden (architects)
  • #10: Context hele presentatie Werken in sprints Post it’s overal
  • #20: - Hoofd features
  • #21: Zwarte statement slide
  • #22: Zwarte statement slide
  • #23: Sneller dan handmatig testen maar het bespaart geen tijd. Je kan wel meer testen in korte tijd, als je het eenmaal goed hebt ingericht
  • #24: Test meer en nauwkeuriger dan handmatig testen
  • #25: Grip op de kwaliteit
  • #26: Witte statement slide
  • #44: Witte statement slide
  • #45: - Toen ik zelf terugkeek, dacht ik WTF!
  • #46: Witte statement slide
  • #47: Witte statement slide
  • #48: Witte statement slide
  • #49: Witte statement slide
  • #50: Witte statement slide
  • #51: Witte statement slide
  • #52: Witte statement slide
  • #53: Witte statement slide
  • #54: Witte statement slide
  • #55: Witte statement slide
  • #56: Witte statement slide
  • #57: Witte statement slide
  • #58: Zwarte statement slide
  • #59: Witte statement slide
  • #60: Witte statement slide
  • #61: Witte statement slide
  • #62: Witte statement slide
  • #64: Witte statement slide
  • #65: Witte statement slide
  • #66: Witte statement slide
  • #67: Witte statement slide
  • #68: Witte statement slide
  • #69: Witte statement slide
  • #70: Witte statement slide
  • #71: Witte statement slide
  • #72: Witte statement slide
  • #73: Witte statement slide
  • #74: Witte statement slide
  • #75: Witte statement slide
  • #76: Witte statement slide
  • #77: Witte statement slide
  • #78: Witte statement slide
  • #79: Witte statement slide
  • #80: Witte statement slide
  • #81: Witte statement slide
  • #82: Witte statement slide
  • #83: Witte statement slide
  • #84: Witte statement slide
  • #85: Witte statement slide
  • #86: Witte statement slide
  • #87: Witte statement slide
  • #90: Witte statement slide
  • #92: Witte statement slide
  • #93: Witte statement slide
  • #94: Witte statement slide
  • #95: Witte statement slide
  • #96: Witte statement slide
  • #97: Witte statement slide
  • #99: Witte statement slide
  • #100: Witte statement slide
  • #101: Witte statement slide
  • #102: Witte statement slide
  • #103: Witte statement slide
  • #104: Witte statement slide
  • #105: Witte statement slide
  • #106: Witte statement slide
  • #107: Witte statement slide
  • #108: Witte statement slide