SlideShare uma empresa Scribd logo
1 de 103
How to Test Enterprise Java Applications
Alex Soto Bueno
Computer Engineer
World Is Changing

The World Is Changing So Fast




            {text/html}




   Client   Protocol      Server   Persistence

                                                 2
World Is Changing

The World Is Changing So Fast




            {text/html}




   Client   Protocol      Server   Persistence

                                                 2
World Is Changing

The World Is Changing So Fast




            {text/html}




   Client   Protocol      Server   Persistence

                                                 2
World Is Changing

The World Is Changing So Fast




            {text/html}
            {app/json}




   Client   Protocol      Server   Persistence

                                                 2
World Is Changing

The World Is Changing So Fast




            {text/html}
            {app/json}
            {app/xml}




   Client   Protocol      Server   Persistence

                                                 2
World Is Changing

The World Is Changing So Fast




            {text/html}
            {app/json}
            {app/xml}




   Client   Protocol      Server   Persistence

                                                 2
World Is Changing

The World Is Changing So Fast




            {text/html}
            {app/json}
            {app/xml}




   Client   Protocol      Server   Persistence

                                                 2
World Is Changing



     Testing Frameworks are
        Changing Too



                              3
Bio




      Alex Soto Bueno

      Computer Engineer
      Diagnostic Grifols
      Compiler Tutor
      Active Blogger & Speaker
                                 4
Overview


     Unit Tests   - 80 % of code




                                   5
Overview


     Unit Tests               - 80 % of code



      Integration Tests - 15 % of code




                                               5
Overview


     Unit Tests                         - 80 % of code



      Integration Tests - 15 % of code
           Acceptance Tests - 5 % of code




                                                         5
Unit Tests

  Tests small pieces of production code




                                          6
Unit Tests

  Tests small pieces of production code

             Confidence to Change




                                          6
Unit Tests

  Tests small pieces of production code

             Confidence to Change

               Quick Feedback




                                          6
Unit Tests

  Tests small pieces of production code

             Confidence to Change

               Quick Feedback

               Documentation




                                          6
Unit Tests

   FIRST Important Rules




                           7
Unit Tests

       Fast




              8
Unit Tests

       Fast

        Resist Temptation




                            8
Unit Tests

       Isolation




                   9
Unit Tests

       Repeatable




                    10
Unit Tests

       Self-Validating




                         11
Unit Tests

       Timely




                12
Unit Tests




Different Layers - Different Frameworks




                                          13
Client Side

 JS TestDriver xUnit approach to Javascript
Apache License 2.0




                                              14
Client Side

 JS TestDriver xUnit approach to Javascript
Apache License 2.0




          code




                                              14
Client Side

 JS TestDriver xUnit approach to Javascript
Apache License 2.0




          code




       fixtures




                                              14
Client Side

 JS TestDriver xUnit approach to Javascript
Apache License 2.0




          code




       fixtures




   configuration                               14
Client Side

 JS TestDriver xUnit approach to Javascript
Apache License 2.0




          code




       fixtures
                     JSTestDriver Server




   configuration                               14
Client Side

 JS TestDriver xUnit approach to Javascript
Apache License 2.0




          code




       fixtures
                     JSTestDriver Server   browsers




   configuration                                       14
Client Side

Sinon.js mocking library for Javascript
BSD License




                                          15
Client Side

Sinon.js mocking library for Javascript
BSD License




sinon.stub(jQuery,
“ajax”).yieldsTo(“success”,’{“name”:”Alex”}’);




                                                 15
Demo




       16
Server Side

Unit Test Framework for Java
                               Common Public License




                                                       17
Server Side

Hamcrest is about expressiveness

                                   New BSD License




                                                     18
Server Side

Hamcrest is about expressiveness

                                          New BSD License




String officerRank = getRankByDate(officer);
List<String> ranks = [(“Captain”, “Commander”)];

assertEquals(true, ranks.contains(officerRank));




                                                            18
Server Side

Hamcrest is about expressiveness

                                   New BSD License




                                                     18
Server Side

Hamcrest is about expressiveness

                                          New BSD License




String officerRank = getRankByDate(officer);

assertThat(officerRank,
isOneOf(“Captain”,”Commander”));

assertThat(age, is(10));
assertThat(name, is(not(“Alex”));
assertThat(calculated, isNotANumber());
                                                            18
Server Side

Simple & Clean Mock API
                          MIT License




                                        19
Server Side

Simple & Clean Mock API
                                        MIT License



@Mock private OfficerDao officerDao;
...
MockitoAnnotations.initMocks(this);
...

when(officerDao.findOfficerByAge(22))
    .thenReturn(newOfficer);

when(officerDao.findOfficerByAge(greaterThan(50)))
    .thenThrow(new OldOfficerException());

                                                      19
Persistence Side


       RDBMS are Homogeneous

       NoSQL are Heterogeneous




                                 20
Persistence Side (SQL)

Avoid HIT   Database




                         21
Persistence Side (SQL)

Avoid HIT   Database

              In-Memory
               Databases



                           21
Persistence Side (SQL)

Avoid HIT      Database

                           In-Memory
                            Databases

      Apache License 2.0     BSD License *
                                             MPL 1.1 & EPL 1.0




                                                                 21
Persistence Side (SQL)

    Isolation problem with Database
          Insert-Delete Problem




                                      22
Persistence Side (SQL)

    Isolation problem with Database
          Insert-Delete Problem


               GNU LGPL 2.1




                                      22
Persistence Side (SQL)

    Isolation problem with Database
          Insert-Delete Problem


               GNU LGPL 2.1



         Define base data set




                                      22
Persistence Side (SQL)

          Isolation problem with Database
                Insert-Delete Problem


                     GNU LGPL 2.1



               Define base data set

@Before

DatabaseOperation.CLEAN_INSERT.execute(connection,
dataSet);
                                                 22
Persistence Side (NoSQL)




                           23
Persistence Side (NoSQL)


 GNU AGPL v3.0




        No Embedded (in-memory) Mode
        (SERVER - 1153)
        No Test Isolation Framework




                                       24
Persistence Side (NoSQL)


GPL v3 & AGPL v3




            Embedded (in-memory) Mode
            Partially supported




                                        25
Persistence Side (NoSQL)

  DBUnit for NOSQL
                      Apache License 2.0




                                           26
Persistence Side (NoSQL)

  DBUnit for NOSQL

    MongoDb
                      Apache License 2.0




    Neo4J

    CouchDb

    Cassandra



                                           26
Demo




       27
Integration Tests

  Test Collaboration Between Components




                                          28
Integration Tests

  Test Collaboration Between Components

     Database
     IO system
     Special Environment Configuration




                                          28
Integration Tests

  Common Problems in JEE 6

     CDI - @EJB, @Inject, @PersistenceContext




                                            29
Integration Tests

  Common Problems in JEE 6

     CDI - @EJB, @Inject, @PersistenceContext



     Container Lifecyle Management

     Create Deployment Archive


                                            29
Integration Tests

  Common Problems in JEE 6




                       k
                    oc
     CDI - @EJB, @Inject, @PersistenceContext




                   M
                T
     Container Lifecyle Management
           NO

     Create Deployment Archive
      Do



                                            29
Integration Tests

Arquillian brings tests to runtime

      Manage Lifecycle of Container     Apache License 2.0




  Create/Deploy MicroDeployments

              Enriching Test Classes

Run Tests Inside/Against Container

                         IDE Friendly
                                                    30
Integration Tests

Arquillian brings tests to runtime


                               ks
      Manage Lifecycle of Container
                             c
                                        Apache License 2.0




                         o
                      M Classes
 Create/Deploy MicroDeployments

             o  r e
              Enriching Test

     o   M
  N
Run Tests Inside/Against Container

                         IDE Friendly
                                                    30
Integration tests




                    31
Integration tests




                    31
Integration tests




                    31
Integration tests




                    31
Integration tests




                    31
Integration tests




                    31
Demo




       32
Acceptance Tests

  Test Customer Requirements




                               33
Acceptance Tests

  User Story

     everyday language sentence

     adds business values




                                  34
Acceptance Tests

  User Story

     everyday language sentence

     adds business values

  As administrator, I want to add new books
  to a collection, so users can borrow them



                                              34
Acceptance Tests

  Acceptance Criteria

     story completeness




                          35
Acceptance Tests

  Acceptance Criteria

      story completeness



Administrator can add new books.
Administrator can categorise books.
User can borrow books added by administrator.

                                                35
Acceptance Tests

     Concrete Examples

1. Create Lord of the Rings
Book.

2. Assign J.R.R Tolkien as
author.

3. Set Book Description.

4. Add Book to System.

5. Check that Book is shown
in screen.



                              36
Acceptance Tests




                   37
Acceptance Tests

  JEE UI is Web

     How to access to web elements




                                     37
Acceptance Tests

  JEE UI is Web

     How to access to web elements


  AT categorised by user stories

     How to organize user stories and specs



                                         37
Acceptance Tests

  Thucydides
                   Apache License 2.0




                                        38
Acceptance Tests

  Thucydides

     Selenium 2 Extension
                            Apache License 2.0




                                                 38
Acceptance Tests

  Thucydides

     Selenium 2 Extension
                                  Apache License 2.0




     Organise tests and stories




                                                       38
Acceptance Tests

  Thucydides

     Selenium 2 Extension
                                    Apache License 2.0




     Organise tests and stories

     Record/Report test execution




                                                         38
Acceptance Tests

  Thucydides

     Selenium 2 Extension
                                    Apache License 2.0




     Organise tests and stories

     Record/Report test execution

     Measure Functional Cover


                                                         38
Acceptance Tests


    Choose a user story




                          39
Acceptance Tests


    Choose a user story

      Implement PageObject/s




                               39
Acceptance Tests


    Choose a user story

      Implement PageObject/s

         Implement Test Step Library




                                       39
Acceptance Tests


    Choose a user story

      Implement PageObject/s

         Implement Test Step Library

            Implement User Story following A.C




                                                 39
Demo




       40
Continuous Integration

  Different Kind of Tests Exist




                                  41
Continuous Integration

  Different Kind of Tests Exist

     Only Unit tests are run by developers




                                             41
Continuous Integration

  Different Kind of Tests Exist

     Only Unit tests are run by developers
     Continuous Integration System




                                             41
Continuous Integration

  Provides CI services

     Build Jobs are Tasks

                            MIT License




                                          42
Continuous Integration

  Build Pipeline Plugin




                          43
Continuous Integration

  Build Pipeline Plugin

     Create chains of build jobs.




                                    43
Continuous Integration

  Build Pipeline Plugin

     Create chains of build jobs.




                                    43
Last Note


    No Time No Tests




                       44
Last Note


    No Time No Tests

      Fix an error during Production Time




                                            44
Last Note


    No Time No Tests

      Fix an error during Production Time
    Continuous Delivery




                                            44
Thanks




         45
Questions



                                               Questions ?




How many nights I prayed for this, to let my work begin First we take Manhattan, then we take Berlin - Leonard Cohen
                                                                                                                  46
Questions



                                               Questions ?

                                                                    Alex Soto Bueno

                                                                    asotobu@gmail.com
                                                                    www.lordofthejars.com
                                                                    @alexsotob
How many nights I prayed for this, to let my work begin First we take Manhattan, then we take Berlin - Leonard Cohen
                                                                                                                  46
Credits
http://www.flickr.com/photos/55182004@N04/5518854399/sizes/o/in/photostream/

http://www.flickr.com/photos/wildlifewanderer/6133286089/sizes/o/in/photostream/

http://www.flickr.com/photos/luccawithcheese/3180399980/sizes/o/in/photostream/

http://www.flickr.com/photos/wildlifewanderer/6133286089/sizes/o/in/photostream/

http://www.flickr.com/photos/joachim_s_mueller/6913623388/sizes/o/in/photostream/

http://www.flickr.com/photos/dieselpower83/7078627097/sizes/o/in/pool-62802336@N00/

http://www.flickr.com/photos/soyignatius/2476388983/sizes/o/in/photostream/

http://www.flickr.com/photos/flatbushgardener/440319534/

http://www.flickr.com/photos/justinwkern/3597152639/

http://www.flickr.com/photos/tolgasoran/5154570906/

http://www.flickr.com/photos/pennuja/5363515039/

http://www.flickr.com/photos/350org/5069209808/sizes/o/in/photostream/

http://www.flickr.com/photos/lliurealbir/3484066523/sizes/o/in/photostream/

http://www.flickr.com/photos/windsordi/3467758700/sizes/o/in/photostream/




                                                                                     47
How to Test Enterprise Java Applications
Alex Soto Bueno
Computer Engineer

Mais conteúdo relacionado

Mais procurados

Python + GDB = Javaデバッガ
Python + GDB = JavaデバッガPython + GDB = Javaデバッガ
Python + GDB = JavaデバッガKenji Kazumura
 
50 new features of Java EE 7 in 50 minutes
50 new features of Java EE 7 in 50 minutes50 new features of Java EE 7 in 50 minutes
50 new features of Java EE 7 in 50 minutesAntonio Goncalves
 
Gradle - time for another build
Gradle - time for another buildGradle - time for another build
Gradle - time for another buildIgor Khotin
 
Making Exceptions on Exception Handling (WEH 2012 Keynote Speech)
Making Exceptions on  Exception Handling (WEH 2012 Keynote Speech)Making Exceptions on  Exception Handling (WEH 2012 Keynote Speech)
Making Exceptions on Exception Handling (WEH 2012 Keynote Speech)Tao Xie
 
In the Brain of Hans Dockter: Gradle
In the Brain of Hans Dockter: GradleIn the Brain of Hans Dockter: Gradle
In the Brain of Hans Dockter: GradleSkills Matter
 
Hierarchy Viewer Internals
Hierarchy Viewer InternalsHierarchy Viewer Internals
Hierarchy Viewer InternalsKyungmin Lee
 
Conf soat tests_unitaires_Mockito_jUnit_170113
Conf soat tests_unitaires_Mockito_jUnit_170113Conf soat tests_unitaires_Mockito_jUnit_170113
Conf soat tests_unitaires_Mockito_jUnit_170113SOAT
 
OSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFishOSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFishArun Gupta
 
5050 dev nation
5050 dev nation5050 dev nation
5050 dev nationArun Gupta
 
Using Grails to power your electric car
Using Grails to power your electric carUsing Grails to power your electric car
Using Grails to power your electric carMarco Pas
 
Defcon_Oracle_The_Making_of_the_2nd_sql_injection_worm
Defcon_Oracle_The_Making_of_the_2nd_sql_injection_wormDefcon_Oracle_The_Making_of_the_2nd_sql_injection_worm
Defcon_Oracle_The_Making_of_the_2nd_sql_injection_wormguest785f78
 
Gradle talk, Javarsovia 2010
Gradle talk, Javarsovia 2010Gradle talk, Javarsovia 2010
Gradle talk, Javarsovia 2010Tomek Kaczanowski
 
Resilence patterns kr
Resilence patterns krResilence patterns kr
Resilence patterns krJisung Ahn
 
Vaadin7 modern-web-apps-in-java
Vaadin7 modern-web-apps-in-javaVaadin7 modern-web-apps-in-java
Vaadin7 modern-web-apps-in-javaJoonas Lehtinen
 
Jggug ws 15th LT 20110224
Jggug ws 15th LT 20110224Jggug ws 15th LT 20110224
Jggug ws 15th LT 20110224Uehara Junji
 
Pure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools RacePure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools RaceBaruch Sadogursky
 

Mais procurados (20)

Python + GDB = Javaデバッガ
Python + GDB = JavaデバッガPython + GDB = Javaデバッガ
Python + GDB = Javaデバッガ
 
Java On Speed
Java On SpeedJava On Speed
Java On Speed
 
50 new features of Java EE 7 in 50 minutes
50 new features of Java EE 7 in 50 minutes50 new features of Java EE 7 in 50 minutes
50 new features of Java EE 7 in 50 minutes
 
Gradle - time for another build
Gradle - time for another buildGradle - time for another build
Gradle - time for another build
 
Keynote HotSWUp 2012
Keynote HotSWUp 2012Keynote HotSWUp 2012
Keynote HotSWUp 2012
 
Making Exceptions on Exception Handling (WEH 2012 Keynote Speech)
Making Exceptions on  Exception Handling (WEH 2012 Keynote Speech)Making Exceptions on  Exception Handling (WEH 2012 Keynote Speech)
Making Exceptions on Exception Handling (WEH 2012 Keynote Speech)
 
In the Brain of Hans Dockter: Gradle
In the Brain of Hans Dockter: GradleIn the Brain of Hans Dockter: Gradle
In the Brain of Hans Dockter: Gradle
 
Hierarchy Viewer Internals
Hierarchy Viewer InternalsHierarchy Viewer Internals
Hierarchy Viewer Internals
 
Conf soat tests_unitaires_Mockito_jUnit_170113
Conf soat tests_unitaires_Mockito_jUnit_170113Conf soat tests_unitaires_Mockito_jUnit_170113
Conf soat tests_unitaires_Mockito_jUnit_170113
 
OSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFishOSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFish
 
5050 dev nation
5050 dev nation5050 dev nation
5050 dev nation
 
Using Grails to power your electric car
Using Grails to power your electric carUsing Grails to power your electric car
Using Grails to power your electric car
 
Qt Network Explained (Portuguese)
Qt Network Explained (Portuguese)Qt Network Explained (Portuguese)
Qt Network Explained (Portuguese)
 
Defcon_Oracle_The_Making_of_the_2nd_sql_injection_worm
Defcon_Oracle_The_Making_of_the_2nd_sql_injection_wormDefcon_Oracle_The_Making_of_the_2nd_sql_injection_worm
Defcon_Oracle_The_Making_of_the_2nd_sql_injection_worm
 
Gradle talk, Javarsovia 2010
Gradle talk, Javarsovia 2010Gradle talk, Javarsovia 2010
Gradle talk, Javarsovia 2010
 
Resilence patterns kr
Resilence patterns krResilence patterns kr
Resilence patterns kr
 
Vaadin7 modern-web-apps-in-java
Vaadin7 modern-web-apps-in-javaVaadin7 modern-web-apps-in-java
Vaadin7 modern-web-apps-in-java
 
Jggug ws 15th LT 20110224
Jggug ws 15th LT 20110224Jggug ws 15th LT 20110224
Jggug ws 15th LT 20110224
 
Pure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools RacePure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools Race
 
De Java 8 a Java 17
De Java 8 a Java 17De Java 8 a Java 17
De Java 8 a Java 17
 

Destaque

Resistance is futile mocks will be assimilated
Resistance is futile mocks will be assimilatedResistance is futile mocks will be assimilated
Resistance is futile mocks will be assimilatedAlex Soto
 
03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jee03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jeeyennylou
 
Mocks, Stubs and Fakes. ¿What Else?
Mocks, Stubs and Fakes. ¿What Else?Mocks, Stubs and Fakes. ¿What Else?
Mocks, Stubs and Fakes. ¿What Else?Alex Soto
 
Testing Polyglot Persistence Done Right
Testing Polyglot Persistence Done RightTesting Polyglot Persistence Done Right
Testing Polyglot Persistence Done RightAlex Soto
 
Arquillian - Integration Testing Made Easy
Arquillian - Integration Testing Made EasyArquillian - Integration Testing Made Easy
Arquillian - Integration Testing Made EasyJBUG London
 
Desarrollo de pruebas en entornos Java EE
Desarrollo de pruebas en entornos Java EEDesarrollo de pruebas en entornos Java EE
Desarrollo de pruebas en entornos Java EEJosé Manuel López
 
Jenkins Docker
Jenkins DockerJenkins Docker
Jenkins DockerAlex Soto
 
Tomcat y Java EE con TomEE {y mucho más}
Tomcat y Java EE con TomEE {y mucho más}Tomcat y Java EE con TomEE {y mucho más}
Tomcat y Java EE con TomEE {y mucho más}Alex Soto
 
Tablet types and Excipients
Tablet  types and ExcipientsTablet  types and Excipients
Tablet types and ExcipientsKomal Haleem
 
Pharmaceutical excipients
Pharmaceutical excipients Pharmaceutical excipients
Pharmaceutical excipients Nahid Hasan
 

Destaque (11)

Resistance is futile mocks will be assimilated
Resistance is futile mocks will be assimilatedResistance is futile mocks will be assimilated
Resistance is futile mocks will be assimilated
 
03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jee03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jee
 
Mocks, Stubs and Fakes. ¿What Else?
Mocks, Stubs and Fakes. ¿What Else?Mocks, Stubs and Fakes. ¿What Else?
Mocks, Stubs and Fakes. ¿What Else?
 
Testing Polyglot Persistence Done Right
Testing Polyglot Persistence Done RightTesting Polyglot Persistence Done Right
Testing Polyglot Persistence Done Right
 
Arquillian - Integration Testing Made Easy
Arquillian - Integration Testing Made EasyArquillian - Integration Testing Made Easy
Arquillian - Integration Testing Made Easy
 
Desarrollo de pruebas en entornos Java EE
Desarrollo de pruebas en entornos Java EEDesarrollo de pruebas en entornos Java EE
Desarrollo de pruebas en entornos Java EE
 
Jenkins Docker
Jenkins DockerJenkins Docker
Jenkins Docker
 
Tomcat y Java EE con TomEE {y mucho más}
Tomcat y Java EE con TomEE {y mucho más}Tomcat y Java EE con TomEE {y mucho más}
Tomcat y Java EE con TomEE {y mucho más}
 
Types of tablets
Types of tabletsTypes of tablets
Types of tablets
 
Tablet types and Excipients
Tablet  types and ExcipientsTablet  types and Excipients
Tablet types and Excipients
 
Pharmaceutical excipients
Pharmaceutical excipients Pharmaceutical excipients
Pharmaceutical excipients
 

Semelhante a How to Test Enterprise Java Applications

Apache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip HanikApache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip HanikEdgar Espina
 
Parsing and Type checking all 2^10000 configurations of the Linux kernel
Parsing and Type checking all 2^10000 configurations of the Linux kernelParsing and Type checking all 2^10000 configurations of the Linux kernel
Parsing and Type checking all 2^10000 configurations of the Linux kernelchk49
 
Resilience Testing
Resilience Testing Resilience Testing
Resilience Testing Ran Levy
 
Squeak DBX
Squeak DBXSqueak DBX
Squeak DBXESUG
 
How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018Antonios Giannopoulos
 
Update from android kk to android l
Update from android kk to android lUpdate from android kk to android l
Update from android kk to android lBin Yang
 
점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정Arawn Park
 
VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms
VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms
VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms VMworld
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Jagadish Prasath
 
Madrid JAM limitaciones - dificultades
Madrid JAM limitaciones - dificultadesMadrid JAM limitaciones - dificultades
Madrid JAM limitaciones - dificultadesJavier Delgado Garrido
 
GeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassleGeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassleAnton Arhipov
 
Isomorphic JavaScript with Nashorn
Isomorphic JavaScript with NashornIsomorphic JavaScript with Nashorn
Isomorphic JavaScript with NashornMaxime Najim
 
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...HostedbyConfluent
 
Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...
Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...
Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...Joonas Lehtinen
 
[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic
[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic
[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogicRakuten Group, Inc.
 
Android RenderScript on LLVM
Android RenderScript on LLVMAndroid RenderScript on LLVM
Android RenderScript on LLVMJohn Lee
 
InduSoft VBScript Webinar
 InduSoft VBScript Webinar InduSoft VBScript Webinar
InduSoft VBScript WebinarAVEVA
 

Semelhante a How to Test Enterprise Java Applications (20)

Apache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip HanikApache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip Hanik
 
Parsing and Type checking all 2^10000 configurations of the Linux kernel
Parsing and Type checking all 2^10000 configurations of the Linux kernelParsing and Type checking all 2^10000 configurations of the Linux kernel
Parsing and Type checking all 2^10000 configurations of the Linux kernel
 
Resilience Testing
Resilience Testing Resilience Testing
Resilience Testing
 
Squeak DBX
Squeak DBXSqueak DBX
Squeak DBX
 
How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018
 
Update from android kk to android l
Update from android kk to android lUpdate from android kk to android l
Update from android kk to android l
 
From Code to Kubernetes
From Code to KubernetesFrom Code to Kubernetes
From Code to Kubernetes
 
점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정
 
VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms
VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms
VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014
 
Madrid JAM limitaciones - dificultades
Madrid JAM limitaciones - dificultadesMadrid JAM limitaciones - dificultades
Madrid JAM limitaciones - dificultades
 
AKS: k8s e azure
AKS: k8s e azureAKS: k8s e azure
AKS: k8s e azure
 
GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6
 
GeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassleGeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassle
 
Isomorphic JavaScript with Nashorn
Isomorphic JavaScript with NashornIsomorphic JavaScript with Nashorn
Isomorphic JavaScript with Nashorn
 
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...
 
Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...
Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...
Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...
 
[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic
[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic
[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic
 
Android RenderScript on LLVM
Android RenderScript on LLVMAndroid RenderScript on LLVM
Android RenderScript on LLVM
 
InduSoft VBScript Webinar
 InduSoft VBScript Webinar InduSoft VBScript Webinar
InduSoft VBScript Webinar
 

Mais de Alex Soto

Kubernetes Native Java
Kubernetes Native JavaKubernetes Native Java
Kubernetes Native JavaAlex Soto
 
Reactive Programming for Real Use Cases
Reactive Programming for Real Use CasesReactive Programming for Real Use Cases
Reactive Programming for Real Use CasesAlex Soto
 
Chaos Engineering Kubernetes
Chaos Engineering KubernetesChaos Engineering Kubernetes
Chaos Engineering KubernetesAlex Soto
 
Chaos Engineering Kubernetes
Chaos Engineering KubernetesChaos Engineering Kubernetes
Chaos Engineering KubernetesAlex Soto
 
Microservices testing and automation
Microservices testing and automationMicroservices testing and automation
Microservices testing and automationAlex Soto
 
Testing in Production: From DevTestOops to DevTestOps
Testing in Production: From DevTestOops to DevTestOpsTesting in Production: From DevTestOops to DevTestOps
Testing in Production: From DevTestOops to DevTestOpsAlex Soto
 
Supersonic Subatomic Java
Supersonic Subatomic JavaSupersonic Subatomic Java
Supersonic Subatomic JavaAlex Soto
 
From DevTestOops to DevTestOps
From DevTestOops to DevTestOpsFrom DevTestOops to DevTestOps
From DevTestOops to DevTestOpsAlex Soto
 
Istio service mesh & pragmatic microservices architecture
Istio service mesh & pragmatic microservices architectureIstio service mesh & pragmatic microservices architecture
Istio service mesh & pragmatic microservices architectureAlex Soto
 
Zero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraZero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraAlex Soto
 
Service Mesh Patterns
Service Mesh PatternsService Mesh Patterns
Service Mesh PatternsAlex Soto
 
Supersonic, Subatomic Java
Supersonic, Subatomic JavaSupersonic, Subatomic Java
Supersonic, Subatomic JavaAlex Soto
 
Zero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraZero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraAlex Soto
 
Long Live and Prosper To Monolith
Long Live and Prosper To MonolithLong Live and Prosper To Monolith
Long Live and Prosper To MonolithAlex Soto
 
Sail in the cloud - An intro to Istio commit
Sail in the cloud - An intro to Istio commitSail in the cloud - An intro to Istio commit
Sail in the cloud - An intro to Istio commitAlex Soto
 
KubeBoot - Spring Boot deployment on Kubernetes
KubeBoot - Spring Boot deployment on KubernetesKubeBoot - Spring Boot deployment on Kubernetes
KubeBoot - Spring Boot deployment on KubernetesAlex Soto
 
Sail in the Cloud - An intro to Istio
Sail in the Cloud  - An intro to IstioSail in the Cloud  - An intro to Istio
Sail in the Cloud - An intro to IstioAlex Soto
 
Testing XXIst Century
Testing XXIst CenturyTesting XXIst Century
Testing XXIst CenturyAlex Soto
 
Arquillian Constellation
Arquillian ConstellationArquillian Constellation
Arquillian ConstellationAlex Soto
 
Testing for Unicorns
Testing for UnicornsTesting for Unicorns
Testing for UnicornsAlex Soto
 

Mais de Alex Soto (20)

Kubernetes Native Java
Kubernetes Native JavaKubernetes Native Java
Kubernetes Native Java
 
Reactive Programming for Real Use Cases
Reactive Programming for Real Use CasesReactive Programming for Real Use Cases
Reactive Programming for Real Use Cases
 
Chaos Engineering Kubernetes
Chaos Engineering KubernetesChaos Engineering Kubernetes
Chaos Engineering Kubernetes
 
Chaos Engineering Kubernetes
Chaos Engineering KubernetesChaos Engineering Kubernetes
Chaos Engineering Kubernetes
 
Microservices testing and automation
Microservices testing and automationMicroservices testing and automation
Microservices testing and automation
 
Testing in Production: From DevTestOops to DevTestOps
Testing in Production: From DevTestOops to DevTestOpsTesting in Production: From DevTestOops to DevTestOps
Testing in Production: From DevTestOops to DevTestOps
 
Supersonic Subatomic Java
Supersonic Subatomic JavaSupersonic Subatomic Java
Supersonic Subatomic Java
 
From DevTestOops to DevTestOps
From DevTestOops to DevTestOpsFrom DevTestOops to DevTestOps
From DevTestOops to DevTestOps
 
Istio service mesh & pragmatic microservices architecture
Istio service mesh & pragmatic microservices architectureIstio service mesh & pragmatic microservices architecture
Istio service mesh & pragmatic microservices architecture
 
Zero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraZero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices era
 
Service Mesh Patterns
Service Mesh PatternsService Mesh Patterns
Service Mesh Patterns
 
Supersonic, Subatomic Java
Supersonic, Subatomic JavaSupersonic, Subatomic Java
Supersonic, Subatomic Java
 
Zero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraZero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices era
 
Long Live and Prosper To Monolith
Long Live and Prosper To MonolithLong Live and Prosper To Monolith
Long Live and Prosper To Monolith
 
Sail in the cloud - An intro to Istio commit
Sail in the cloud - An intro to Istio commitSail in the cloud - An intro to Istio commit
Sail in the cloud - An intro to Istio commit
 
KubeBoot - Spring Boot deployment on Kubernetes
KubeBoot - Spring Boot deployment on KubernetesKubeBoot - Spring Boot deployment on Kubernetes
KubeBoot - Spring Boot deployment on Kubernetes
 
Sail in the Cloud - An intro to Istio
Sail in the Cloud  - An intro to IstioSail in the Cloud  - An intro to Istio
Sail in the Cloud - An intro to Istio
 
Testing XXIst Century
Testing XXIst CenturyTesting XXIst Century
Testing XXIst Century
 
Arquillian Constellation
Arquillian ConstellationArquillian Constellation
Arquillian Constellation
 
Testing for Unicorns
Testing for UnicornsTesting for Unicorns
Testing for Unicorns
 

Último

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

How to Test Enterprise Java Applications

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n