SlideShare ist ein Scribd-Unternehmen logo
1 von 137
Downloaden Sie, um offline zu lesen
Designing Top-Class Test Suites
  FOR WEB APPLICATIONS




                             Lukas Fryc
$ whoami

       Lukas Fryc
      @LFryc

JBoss Software Engineer
  Arquillian Commiter
Agenda
●   Agility in Testing
●   Testing: Basics & Principles
●   Client-Side Testing
    ●   Unit Testing
    ●   UI Automation
●   Foundations of Real Tests
    ●   JSFUnit.NG
●   Speeding up Development
    ●   JRebel extension
Testing
       Testing
       Testing
       Testing     #Agile
       Testing
       Testing
#TDD   Testing
       Testing
       Testing
       Testing   “You can hear about testing
       Testing   from everywhere!”
“How would you complete
equation?

What word do you
imagine when someone
says testing?”




                          Testing = ?
Testing = Pain
“What about changing
that equation a little bit?”




                    Testing = Enjoyable!
“But testing of large
enterprise application can
hardly can be enjoyable.”




     Enterprise Java Web Application


                             “You need to write all the
                             test harness at own and
                             study all the tools.”
Reinventing the Wheel
No one saves the World?
“There is one: his name is
Ike. He comes from far,
deep space from planet
Arquillian...”
“Ike brings heavy gear for
fighting with alien
bugs...”
“...and he is proud to
share his powerful gear
with us!”
“At first, he comes with
   Ability to split one big
  deployment into many
small - testing as little as
 components as possible
            in separation.”
“And he makes sure
these deployments work
    on various of Earth's
    application servers.”
“...and once he deploys
        the deployment into
 container, he makes sure
you have all the goodness
       from inside available
          using dependency
                  injection.”
“...and that all backed
with strong development
                     tools.”
“You can run it just from
                  your IDE, re-using what
                      you already know.”




JUnit   TestNG
Testing Revolution
Ike brings tests to the Server
But what about the Client?
The little bit of Theory...
“Let's have ideal testing
pyramid in mind,
otherwise...”
Enough Theory!
Let's bring tests to the Client
JUnit
TestNG
“But it isn't as simple as
in Java - many different
environments.”
“Fortunately there is tool
which allows you to write
tests in unified API for all
those browsers.”
“And the even supports
mocked browsers with
same API.”
W3C: Browser Automation Spec
Oh, such a great tool!
Let's invade client!
“Ouch, we need some
        abstraction!”
“Even if we use favorite
programming language,
we can end up with many
tests which take days to
pass and may quickly
turn out into maintenance
burden!”                     Java
                              C#
                            Python
                             Ruby
                             PHP
                             Perl
At least, the app is covered...
“But this is what actually
Selenium see.”
Black Box
“Selenium is able to test
transitions between
pages.”




                      State Transitions
“...and a portion of all the
page source code –
JavaScript handlers,
selected CSS and DOM
changes as reaction to
user interaction.”




                   A little bit of...
                DOM / JavaScript / CSS
Let's change the game...
Right tool for the Job
“Let's take an
outstanding UI
automation tool...”
“and add your favorite
language.”
“and little bit of Alien
technology.”
Arquillian Drone
 Ike's Hard-Worker
“Drone comes to bring
the browser to your test.”
Help Devs get along with QA
 Developers focused on tests
 QA focused on automation
   arquillian.xml configuration for cross-browser testing
Let Ike invade the Client
“But something else is
needed to make your
tests green.”
“Something enough
strong to handle all the
inconsistencies.”
“Let's deploy that to the
browser page and see
what happens!”
Arquillian Graphene
Shielding Ike from Maintenance Burden
Strongly type-safe
Proven to handle AJAX
 Request Guards
 jQuery Selectors
guardXhr(button).click();
guardHttp(button).click();
Strongly type-safe
Proven to handle AJAX
 Request Guards
 jQuery Selectors


Page Extensions – Script Injection
Cross-cutting concerns
 Interceptors
@JavaScript(“document”)
public interface Document() {
    String getTitle();
}


@Inject
Document document;

// calls 'return document.title;'
document.getTitle();
Isn't that too low-level?
“Let's look for something
on higher level.”




                Reusable Abstractions
“Introducing well-known
Selenium pattern:”




                          Page Objects
“Imagine you have
page with all the
elements and you
express them as
fields in the class.”
“Page Objects allows
you to abstract page-
oriented logic into
objects.”
“But for modern AJAX-
based application, it's
simply not enough.”
“In enterprise
applications, you use
UI components that
encapsulates low-
level logic.”
“We could create the
model of these
components from
their user's point of
view?”
@FindBy(id=”form:calendar”)
Calendar calendar;


calendar.setDate(new Date());
@Component
public class Calendar {

    @Root
    WebElement driver;

    @FindBy(css=”.dateButton”)
    WebElement button;

    public void setDate() {
        input.click();
    }
}
Component Objects
Will be part of Arquillian Graphene 2.x
“When each
framework and library
providing UI
components will
design component
objects the same as it
share their code, it
will be testing much
more simpler.”

                         Call to Action:
                 Write & Share Component Objects
Let's do the review...
“Now, we can simply
write tests on proper
level of abstraction
with minimum
efforts.”
3   Missing
    Pieces
“What is missing here?

         No manual coverage and
           no unit and integration
             tests for client-side!”




 JUnit
TestNG
How to avoid manual testing?
“We can automatically
                  snap screen-shots of the
                          whole pages and
                       compare them with
                       historical data – it's
                 proven that rendering on
                    one particular browser
                 and platform, images will
                         be binary same.”



Screen-shot Comparison
Automated Visual Verification
The Music of the Future?
Arquillian RushEye
  Google Summer of Code 2012
“Server is already
         covered with unit and
          integration tests, but
         what about the same
          goodness for client?”




 JUnit
TestNG
“Unit testing of client
is even more
important than unit
testing of server,
since it suffers from
environment
diversity.”




                      Unit Testing Client
Unit Testing Frameworks
 QUnit, Jasmine, JsMockito


Test Runners
 JSTD, Selenium, Maven
“But once those unit
tests are written, how
to automate them?

Without automation,
they are not tests.”




       Yet another tool to configure?
Reuse the Automation Setup
“For writing actual
tests, you can use
your favorite JS client
testing tool.

We are actually
working on
integration with
QUnit.”




                             Arquillian
                          Drone + QUnit | JSTD
                          Maven / Jenkins / IDE
“JavaScript testing does not
          scale!”

                            ~John Resig


   http://ejohn.org/blog/javascript-testing-does-not-scale/
TestSwarm
Crowd-sourcing for Browser Coverage
        Jenkins integration



                             “But it is rather for
                             open source projects,
                             right?”
“For corporates, it is
more suitable to use
cloud services:”




           Browser Tests in the Cloud
                     SauceLabs On Demand
               Integration with Arquillian comming
“And once the client is
                  covered too, only
         integration tests for client
                      are missing.”




 JUnit
TestNG
“The integration
testing of client is
actually making sure
it communicates with
server as expected.”




          Client + Server Integration
“We have browser and
  test on one side and
server on opposite side.”
“With UI automation, we
are sending request from
  client to the server.”
“And server generates
     response.”
Black Box
“On the other hand, when
  we are testing server
  from its JVM, we are
 mocking requests, which
   invokes verification
         code.”
Don't mock me
The Tour to the Server
   There and Back Again
“Let's make the
connection between client
    and server live.”
“Once the requests goes
 to the server, the test
 code is serialized and
   sent as part of the
        request.”
“Server de-serializes the
testing code from request
and uses it for verification
   of the server state in
several lifecycle phases.”
“Offering all the gear
  which Arquillian offers,
including test enrichment
    for injection of test
      dependencies.”
“Then the testing object
 is serialized again and
 sent back to the client,
 which can validate it.”
“Client can verify the
 response and send
subsequent request.”
Crazy idea?
“But it is already
possible!”




                     JSFUnit
JSFUnit
 HtmlUnit
 Asserts end of the Request State
 JSF only


JSFUnit .NG (next generation)
 Selenium / any other HTTP client
 Lifecycle
 Any injectable resource
 Any Servlet based framework
“Now, we are covered!”




 JUnit
TestNG
Client Invasion
That's it...
No, It can't be without....
Mobile
“Drone can instantiate
   browser emulator or
connect to real device.”
“And create the browser
              within the
      emulator/device.”
Arquillian Android
Emulating Mobile Platform
Development on Steroids
Speeding up Development
  Reusable Browser Session
  Arquillian JRebel Extension
Arquillian
Experience the Future Now
I must know more...
http://bit.ly/arq-preview
http://bit.ly/arq-users
Getting Involved
http://github.com/arquillian
http://bit.ly/arq-devs
http://bit.ly/jboss-testing
#jbosstesting @ irc.freenode.net
#Arquillian
Enjoy the Testing!
Questions for Ike?


    @LFryc

http://bit.ly/arq-blog
http://bit.ly/lfryc
Some photographs and pictures used in this
   presentation are authored by various authors
    and released under the Creative Commons
                      license


http://www.flickr.com/photos/nickrussill/150410613/
http://www.flickr.com/photos/audreyjm529/1240909256/
http://www.flickr.com/photos/jo-h/6200225665/
http://www.flickr.com/photos/stevendepolo/3796415185/
http://watirmelon.com/2012/01/31/introducing-the-software-
testing-ice-cream-cone/

Weitere ähnliche Inhalte

Was ist angesagt?

HoloLens Unity Build Pipelines on Azure DevOps
HoloLens Unity Build Pipelines on Azure DevOpsHoloLens Unity Build Pipelines on Azure DevOps
HoloLens Unity Build Pipelines on Azure DevOpsSarah Sexton
 
From zero to hero with React Native!
From zero to hero with React Native!From zero to hero with React Native!
From zero to hero with React Native!Commit University
 
Kirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UIKirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UIjhugman
 
Front-End Testing: Demystified
Front-End Testing: DemystifiedFront-End Testing: Demystified
Front-End Testing: DemystifiedSeth McLaughlin
 
GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”
GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”
GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”GlobalLogic Ukraine
 
Test your Javascript! v1.1
Test your Javascript! v1.1Test your Javascript! v1.1
Test your Javascript! v1.1Eric Wendelin
 
Automated Smoke Tests with Protractor
Automated Smoke Tests with ProtractorAutomated Smoke Tests with Protractor
Automated Smoke Tests with Protractor🌱 Dale Spoonemore
 
Introducing Playwright's New Test Runner
Introducing Playwright's New Test RunnerIntroducing Playwright's New Test Runner
Introducing Playwright's New Test RunnerApplitools
 
Better Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternBetter Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternSQALab
 
Protractor Testing Automation Tool Framework / Jasmine Reporters
Protractor Testing Automation Tool Framework / Jasmine ReportersProtractor Testing Automation Tool Framework / Jasmine Reporters
Protractor Testing Automation Tool Framework / Jasmine ReportersHaitham Refaat
 
A Closer Look At React Native
A Closer Look At React NativeA Closer Look At React Native
A Closer Look At React NativeIan Wang
 
Web Performance & Latest in React
Web Performance & Latest in ReactWeb Performance & Latest in React
Web Performance & Latest in ReactTalentica Software
 
AngularJS Beginner Day One
AngularJS Beginner Day OneAngularJS Beginner Day One
AngularJS Beginner Day OneTroy Miles
 
OSMC 2009 | Application Monitoring - Bridging the gap... by Michael Medin
OSMC 2009 |  Application Monitoring - Bridging the gap... by Michael MedinOSMC 2009 |  Application Monitoring - Bridging the gap... by Michael Medin
OSMC 2009 | Application Monitoring - Bridging the gap... by Michael MedinNETWAYS
 
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...Edureka!
 
Need forbuildspeed agile2012
Need forbuildspeed agile2012Need forbuildspeed agile2012
Need forbuildspeed agile2012drewz lin
 

Was ist angesagt? (20)

2015 in tothebox-introtddbdd
2015 in tothebox-introtddbdd2015 in tothebox-introtddbdd
2015 in tothebox-introtddbdd
 
HoloLens Unity Build Pipelines on Azure DevOps
HoloLens Unity Build Pipelines on Azure DevOpsHoloLens Unity Build Pipelines on Azure DevOps
HoloLens Unity Build Pipelines on Azure DevOps
 
From zero to hero with React Native!
From zero to hero with React Native!From zero to hero with React Native!
From zero to hero with React Native!
 
Kirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UIKirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UI
 
Front-End Testing: Demystified
Front-End Testing: DemystifiedFront-End Testing: Demystified
Front-End Testing: Demystified
 
GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”
GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”
GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”
 
learning react
learning reactlearning react
learning react
 
Test your Javascript! v1.1
Test your Javascript! v1.1Test your Javascript! v1.1
Test your Javascript! v1.1
 
Automated Smoke Tests with Protractor
Automated Smoke Tests with ProtractorAutomated Smoke Tests with Protractor
Automated Smoke Tests with Protractor
 
Introducing Playwright's New Test Runner
Introducing Playwright's New Test RunnerIntroducing Playwright's New Test Runner
Introducing Playwright's New Test Runner
 
Better Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternBetter Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component Pattern
 
Protractor Testing Automation Tool Framework / Jasmine Reporters
Protractor Testing Automation Tool Framework / Jasmine ReportersProtractor Testing Automation Tool Framework / Jasmine Reporters
Protractor Testing Automation Tool Framework / Jasmine Reporters
 
A Closer Look At React Native
A Closer Look At React NativeA Closer Look At React Native
A Closer Look At React Native
 
Protractor overview
Protractor overviewProtractor overview
Protractor overview
 
Web Performance & Latest in React
Web Performance & Latest in ReactWeb Performance & Latest in React
Web Performance & Latest in React
 
AngularJS Beginner Day One
AngularJS Beginner Day OneAngularJS Beginner Day One
AngularJS Beginner Day One
 
OSMC 2009 | Application Monitoring - Bridging the gap... by Michael Medin
OSMC 2009 |  Application Monitoring - Bridging the gap... by Michael MedinOSMC 2009 |  Application Monitoring - Bridging the gap... by Michael Medin
OSMC 2009 | Application Monitoring - Bridging the gap... by Michael Medin
 
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
 
Need forbuildspeed agile2012
Need forbuildspeed agile2012Need forbuildspeed agile2012
Need forbuildspeed agile2012
 
Introduction to Node.JS
Introduction to Node.JSIntroduction to Node.JS
Introduction to Node.JS
 

Andere mochten auch

Test coverage in a jiffy v0 9
Test coverage in a jiffy v0 9Test coverage in a jiffy v0 9
Test coverage in a jiffy v0 9Indium Software
 
Toronto alm v1
Toronto alm v1Toronto alm v1
Toronto alm v1PowerStory
 
Pytest testmon - executing large test suites quickly
Pytest testmon - executing large test suites quicklyPytest testmon - executing large test suites quickly
Pytest testmon - executing large test suites quicklytib0r
 
Kanban 101 - 0 - Introduction
Kanban 101 - 0 - IntroductionKanban 101 - 0 - Introduction
Kanban 101 - 0 - IntroductionMichael Sahota
 
Storyboarding an existing concept
Storyboarding an existing conceptStoryboarding an existing concept
Storyboarding an existing conceptRajesh R. Nair
 
Acceptance Test Driven Development using Robot Framework
Acceptance Test Driven Development using Robot FrameworkAcceptance Test Driven Development using Robot Framework
Acceptance Test Driven Development using Robot FrameworkAsheesh Mehdiratta
 
Web testing automation
Web testing automationWeb testing automation
Web testing automationkuozui
 
PowerStory - a better way to define requirements and test cases
PowerStory - a better way to define requirements and test casesPowerStory - a better way to define requirements and test cases
PowerStory - a better way to define requirements and test casesPowerStory
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing BasicsBelal Raslan
 

Andere mochten auch (11)

Test coverage in a jiffy v0 9
Test coverage in a jiffy v0 9Test coverage in a jiffy v0 9
Test coverage in a jiffy v0 9
 
Toronto alm v1
Toronto alm v1Toronto alm v1
Toronto alm v1
 
Pytest testmon - executing large test suites quickly
Pytest testmon - executing large test suites quicklyPytest testmon - executing large test suites quickly
Pytest testmon - executing large test suites quickly
 
Kanban 101 - 0 - Introduction
Kanban 101 - 0 - IntroductionKanban 101 - 0 - Introduction
Kanban 101 - 0 - Introduction
 
Storyboarding an existing concept
Storyboarding an existing conceptStoryboarding an existing concept
Storyboarding an existing concept
 
Acceptance Test Driven Development using Robot Framework
Acceptance Test Driven Development using Robot FrameworkAcceptance Test Driven Development using Robot Framework
Acceptance Test Driven Development using Robot Framework
 
Web testing automation
Web testing automationWeb testing automation
Web testing automation
 
PowerStory - a better way to define requirements and test cases
PowerStory - a better way to define requirements and test casesPowerStory - a better way to define requirements and test cases
PowerStory - a better way to define requirements and test cases
 
JavaCro'14 - Test Automation using RobotFramework Libraries – Stojan Peshov
JavaCro'14 - Test Automation using RobotFramework Libraries – Stojan PeshovJavaCro'14 - Test Automation using RobotFramework Libraries – Stojan Peshov
JavaCro'14 - Test Automation using RobotFramework Libraries – Stojan Peshov
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing Basics
 
Test link
Test linkTest link
Test link
 

Ähnlich wie Designing Top-Class Test Suites for Web Applications

Arquillian: Effective tests from the client to the server
Arquillian: Effective tests from the client to the serverArquillian: Effective tests from the client to the server
Arquillian: Effective tests from the client to the serverLukáš Fryč
 
JLove - Replicating production on your laptop using the magic of containers
JLove - Replicating production on your laptop using the magic of containersJLove - Replicating production on your laptop using the magic of containers
JLove - Replicating production on your laptop using the magic of containersGrace Jansen
 
JBCN_Testing_With_Containers
JBCN_Testing_With_ContainersJBCN_Testing_With_Containers
JBCN_Testing_With_ContainersGrace Jansen
 
Visual Testing Of Web Apps in a Headless Environment
Visual Testing Of Web Apps in a Headless EnvironmentVisual Testing Of Web Apps in a Headless Environment
Visual Testing Of Web Apps in a Headless EnvironmentManish Katoch
 
Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)Yan Cui
 
Java script unit testing
Java script unit testingJava script unit testing
Java script unit testingMats Bryntse
 
The Future of Selenium Testing for Mobile Web and Native Apps
The Future of Selenium Testing for Mobile Web and Native AppsThe Future of Selenium Testing for Mobile Web and Native Apps
The Future of Selenium Testing for Mobile Web and Native AppsSauce Labs
 
vodQA(Pune) 2018 - Visual testing of web apps in headless environment manis...
vodQA(Pune) 2018 - Visual testing of web apps in headless environment   manis...vodQA(Pune) 2018 - Visual testing of web apps in headless environment   manis...
vodQA(Pune) 2018 - Visual testing of web apps in headless environment manis...vodQA
 
NodeSummit - MEAN Stack
NodeSummit - MEAN StackNodeSummit - MEAN Stack
NodeSummit - MEAN StackValeri Karpov
 
Yan Cui - Serverless in production, an experience report - Codemotion Milan 2017
Yan Cui - Serverless in production, an experience report - Codemotion Milan 2017Yan Cui - Serverless in production, an experience report - Codemotion Milan 2017
Yan Cui - Serverless in production, an experience report - Codemotion Milan 2017Codemotion
 
Building Rich User Experiences Without JavaScript Spaghetti
Building Rich User Experiences Without JavaScript SpaghettiBuilding Rich User Experiences Without JavaScript Spaghetti
Building Rich User Experiences Without JavaScript SpaghettiJared Faris
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Sauce Labs
 
Javascript spaghetti stirtrek_5_17
Javascript  spaghetti stirtrek_5_17Javascript  spaghetti stirtrek_5_17
Javascript spaghetti stirtrek_5_17Jared Faris
 
Angular Unit testing.pptx
Angular Unit testing.pptxAngular Unit testing.pptx
Angular Unit testing.pptxRiyaBangera
 
How we tested our code "Google way"
How we tested our code "Google way"How we tested our code "Google way"
How we tested our code "Google way"Oleksiy Rezchykov
 
Continous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and JenkinsContinous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and JenkinsSylwester Madej
 
Dependency Injection in .NET applications
Dependency Injection in .NET applicationsDependency Injection in .NET applications
Dependency Injection in .NET applicationsBabak Naffas
 
7 automated visual testing tools for you
7 automated visual testing tools for you7 automated visual testing tools for you
7 automated visual testing tools for youOpenSense Labs
 

Ähnlich wie Designing Top-Class Test Suites for Web Applications (20)

Arquillian: Effective tests from the client to the server
Arquillian: Effective tests from the client to the serverArquillian: Effective tests from the client to the server
Arquillian: Effective tests from the client to the server
 
JLove - Replicating production on your laptop using the magic of containers
JLove - Replicating production on your laptop using the magic of containersJLove - Replicating production on your laptop using the magic of containers
JLove - Replicating production on your laptop using the magic of containers
 
JBCN_Testing_With_Containers
JBCN_Testing_With_ContainersJBCN_Testing_With_Containers
JBCN_Testing_With_Containers
 
Visual Testing Of Web Apps in a Headless Environment
Visual Testing Of Web Apps in a Headless EnvironmentVisual Testing Of Web Apps in a Headless Environment
Visual Testing Of Web Apps in a Headless Environment
 
Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)
 
Java script unit testing
Java script unit testingJava script unit testing
Java script unit testing
 
The Future of Selenium Testing for Mobile Web and Native Apps
The Future of Selenium Testing for Mobile Web and Native AppsThe Future of Selenium Testing for Mobile Web and Native Apps
The Future of Selenium Testing for Mobile Web and Native Apps
 
vodQA(Pune) 2018 - Visual testing of web apps in headless environment manis...
vodQA(Pune) 2018 - Visual testing of web apps in headless environment   manis...vodQA(Pune) 2018 - Visual testing of web apps in headless environment   manis...
vodQA(Pune) 2018 - Visual testing of web apps in headless environment manis...
 
CI
CICI
CI
 
NodeSummit - MEAN Stack
NodeSummit - MEAN StackNodeSummit - MEAN Stack
NodeSummit - MEAN Stack
 
Yan Cui - Serverless in production, an experience report - Codemotion Milan 2017
Yan Cui - Serverless in production, an experience report - Codemotion Milan 2017Yan Cui - Serverless in production, an experience report - Codemotion Milan 2017
Yan Cui - Serverless in production, an experience report - Codemotion Milan 2017
 
Building Rich User Experiences Without JavaScript Spaghetti
Building Rich User Experiences Without JavaScript SpaghettiBuilding Rich User Experiences Without JavaScript Spaghetti
Building Rich User Experiences Without JavaScript Spaghetti
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)
 
Javascript spaghetti stirtrek_5_17
Javascript  spaghetti stirtrek_5_17Javascript  spaghetti stirtrek_5_17
Javascript spaghetti stirtrek_5_17
 
Foolangjs
FoolangjsFoolangjs
Foolangjs
 
Angular Unit testing.pptx
Angular Unit testing.pptxAngular Unit testing.pptx
Angular Unit testing.pptx
 
How we tested our code "Google way"
How we tested our code "Google way"How we tested our code "Google way"
How we tested our code "Google way"
 
Continous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and JenkinsContinous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and Jenkins
 
Dependency Injection in .NET applications
Dependency Injection in .NET applicationsDependency Injection in .NET applications
Dependency Injection in .NET applications
 
7 automated visual testing tools for you
7 automated visual testing tools for you7 automated visual testing tools for you
7 automated visual testing tools for you
 

Mehr von Lukáš Fryč

Role of QA in Continuous Delivery
Role of QA in Continuous DeliveryRole of QA in Continuous Delivery
Role of QA in Continuous DeliveryLukáš Fryč
 
Arquillian: Helping web developers and QA get along
Arquillian: Helping web developers and QA get alongArquillian: Helping web developers and QA get along
Arquillian: Helping web developers and QA get alongLukáš Fryč
 
JSF 2.2 Deep Dive with RichFaces 5
JSF 2.2 Deep Dive with RichFaces 5JSF 2.2 Deep Dive with RichFaces 5
JSF 2.2 Deep Dive with RichFaces 5Lukáš Fryč
 
Web Components: Rethinking Web App Development
Web Components: Rethinking Web App DevelopmentWeb Components: Rethinking Web App Development
Web Components: Rethinking Web App DevelopmentLukáš Fryč
 
Web Technologies in Java EE 7
Web Technologies in Java EE 7Web Technologies in Java EE 7
Web Technologies in Java EE 7Lukáš Fryč
 
Going mobile with RichFaces
Going mobile with RichFacesGoing mobile with RichFaces
Going mobile with RichFacesLukáš Fryč
 
RichFaces CDK: Rapid JSF Component Development
RichFaces CDK: Rapid JSF Component DevelopmentRichFaces CDK: Rapid JSF Component Development
RichFaces CDK: Rapid JSF Component DevelopmentLukáš Fryč
 
Testing JSF with Arquillian and Selenium
Testing JSF with Arquillian and SeleniumTesting JSF with Arquillian and Selenium
Testing JSF with Arquillian and SeleniumLukáš Fryč
 
RichFaces 4 rolling to Mobile Era
RichFaces 4 rolling to Mobile EraRichFaces 4 rolling to Mobile Era
RichFaces 4 rolling to Mobile EraLukáš Fryč
 

Mehr von Lukáš Fryč (9)

Role of QA in Continuous Delivery
Role of QA in Continuous DeliveryRole of QA in Continuous Delivery
Role of QA in Continuous Delivery
 
Arquillian: Helping web developers and QA get along
Arquillian: Helping web developers and QA get alongArquillian: Helping web developers and QA get along
Arquillian: Helping web developers and QA get along
 
JSF 2.2 Deep Dive with RichFaces 5
JSF 2.2 Deep Dive with RichFaces 5JSF 2.2 Deep Dive with RichFaces 5
JSF 2.2 Deep Dive with RichFaces 5
 
Web Components: Rethinking Web App Development
Web Components: Rethinking Web App DevelopmentWeb Components: Rethinking Web App Development
Web Components: Rethinking Web App Development
 
Web Technologies in Java EE 7
Web Technologies in Java EE 7Web Technologies in Java EE 7
Web Technologies in Java EE 7
 
Going mobile with RichFaces
Going mobile with RichFacesGoing mobile with RichFaces
Going mobile with RichFaces
 
RichFaces CDK: Rapid JSF Component Development
RichFaces CDK: Rapid JSF Component DevelopmentRichFaces CDK: Rapid JSF Component Development
RichFaces CDK: Rapid JSF Component Development
 
Testing JSF with Arquillian and Selenium
Testing JSF with Arquillian and SeleniumTesting JSF with Arquillian and Selenium
Testing JSF with Arquillian and Selenium
 
RichFaces 4 rolling to Mobile Era
RichFaces 4 rolling to Mobile EraRichFaces 4 rolling to Mobile Era
RichFaces 4 rolling to Mobile Era
 

Kürzlich hochgeladen

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Kürzlich hochgeladen (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Designing Top-Class Test Suites for Web Applications