Testing In Java

69,581 views
68,528 views

Published on

Overview of testing concepts, practices, and tools in Java.

Published in: Technology
10 Comments
112 Likes
Statistics
Notes
  • Hi All, We are planning to start Hadoop online training batch on this week... If any one interested to attend the demo please register in our website... For this batch we are also provide everyday recorded sessions with Materials. For more information feel free to contact us : siva@keylabstraining.com. For Course Content and Recorded Demo Click Here : http://www.keylabstraining.com/hadoop-online-training-hyderabad-bangalore
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hi All, We are planning to start new devops online batch on this week... If any one interested to attend the demo please register in our website... For this batch we are also provide everyday recorded sessions with Materials. For more information feel free to contact us : siva@keylabstraining.com. For Course Content and Recorded Demo Click Here : http://www.keylabstraining.com/devops-online-training-tutorial
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • great effort.. thanks brother
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • cool!!!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • cool!!!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
69,581
On SlideShare
0
From Embeds
0
Number of Embeds
7,949
Actions
Shares
0
Downloads
4,249
Comments
10
Likes
112
Embeds 0
No embeds

No notes for slide
  • My background: Mostly C & Perl from 1990 – 1997 Mostly Java since then. Telemetry processing, mission ops, EIS @ JPL. BPM, workflow, assorted biz apps.
  • Testing In Java

    1. Testing in Java <ul><ul><li>San Gabriel Valley Java Users Group </li></ul></ul><ul><ul><li>http://www.sgvjug.org/ </li></ul></ul><ul><ul><li>June 25, 2007 </li></ul></ul><ul><ul><li>David Noble </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul><ul><ul><li>Sr. Solutions Architect, Exist Global </li></ul></ul>
    2. Goal <ul><li>Motivate excellence in testing </li></ul><ul><li>with concepts , practices, and tools </li></ul>
    3. Scope requirements static code analysis debugging profiling continuous integration quality assurance Testing concepts, practices, tools
    4. Agenda <ul><li>Test-Driven Development </li></ul><ul><li>Terminology </li></ul><ul><li>Tools </li></ul><ul><li>Application </li></ul><ul><li>Discussion </li></ul>
    5. http://www.flickr.com/photos/h2oalchemist/342496829/ System Concept System Requirements System Design Detailed Design Implementation Testing
    6. Demo A Taste of TDD
    7. Test-Driven Development See also: http://www.agiledata.org/essays/tdd.html Fail Pass Pass Add test Make small change Commit changes
    8. Test-Driven Development Fail Pass Add test Fix bug Commit changes
    9. Test-Driven Development Fail Pass Pass Pass Add test Make small change Refactor Code Commit changes Commit changes
    10. Test-Driven Development <ul><li>Small steps </li></ul><ul><li>Frequent check-ins </li></ul>
    11. Test-Driven Development <ul><li>Deeper than “test first” </li></ul><ul><li>Design for testability </li></ul>
    12. Test-Driven Development <ul><li>Unit tests as example code </li></ul><ul><li>Interface before implementation </li></ul><ul><ul><li>Function drives form </li></ul></ul>
    13. Test-Driven Development <ul><li>Loose coupling </li></ul><ul><li>Services with clear responsibilities </li></ul><ul><li>Mock objects </li></ul>
    14. http://flickr.com/photos/basak/227480302/ Taste the soup!
    15. Reality Intent Requirements, Architecture, Design Implementation, Deployment
    16. Gap! Reality Intent Requirements, Architecture, Design Implementation, Deployment
    17. Reality Accountability Intent Requirements, Architecture, Design Testing, QA Implementation, Deployment
    18. Intent Reality Check! Reality Accountability Requirements, Architecture, Design Testing, QA Implementation, Deployment
    19. Terminology <ul><li>QA – quality assurance </li></ul><ul><ul><li>Do the right things </li></ul></ul><ul><ul><li>Do things right </li></ul></ul><ul><ul><li>Ensure quality standards </li></ul></ul>
    20. Terminology <ul><li>Test – success criteria </li></ul><ul><ul><li>Is it right? </li></ul></ul><ul><ul><li>Is it done? </li></ul></ul>
    21. Terminology <ul><li>Test plan </li></ul><ul><li>Test case </li></ul><ul><li>Test suite </li></ul><ul><li>Test report </li></ul><ul><li>Test coverage </li></ul>
    22. Terminology <ul><li>Unit test </li></ul><ul><li>Functional test </li></ul><ul><li>Integration test </li></ul><ul><li>System test </li></ul><ul><li>Acceptance test </li></ul><ul><li>Regression test </li></ul>
    23. Terminology <ul><li>Non-functional testing </li></ul><ul><li>Performance test </li></ul><ul><li>Load test </li></ul><ul><li>Soak test </li></ul>
    24. Terminology <ul><li>Continuous integration </li></ul>
    25. Tools IDE Build Unit Tests Mock Objects Eclipse, NetBeans Ant, Maven JUnit, TestNG jMock, EasyMock
    26. Tools Databases JEE Servers Web Apps DBUnit Cactus Selenium, HttpUnit
    27. Tools Coverage Performance Acceptance Cobertura, Emma JMeter, Eclipse TPTP Selenium, FitNesse, Stiq
    28. Tools Continuous Integration Cruise Control, Continuum, Hudson
    29. Tools IDE Build Unit Tests Mock Objects Databases JEE Servers Web Apps Coverage Performance Acceptance Continuous Integration Unit testing Eclipse, NetBeans Ant, Maven JUnit, TestNG jMock, EasyMock DBUnit Cactus Selenium, HttpUnit Cobertura, Emma JMeter, Eclipse TPTP Selenium, FitNesse, Stiq Cruise Control, Continuum, Hudson
    30. Demo Tools
    31. Resources: SGV JUG <ul><li>Web Site </li></ul><ul><ul><li>http://sgvlug.net/mailman/listinfo/java-sig </li></ul></ul><ul><li>Mailing List (Hosted by SGV Linux Users Group) </li></ul><ul><ul><li>http://sgvlug.net/mailman/listinfo/java-sig </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul>
    32. Resources: TDD <ul><li>Articles </li></ul><ul><ul><li>http://www.agiledata.org/essays/tdd.html </li></ul></ul><ul><ul><li>http://en.wikipedia.org/wiki/Test_driven_development </li></ul></ul><ul><ul><li>http://www.testdriven.com/modules/xoopsfaq/ </li></ul></ul><ul><ul><li>http://www.artima.com/intv/testdriven.html </li></ul></ul><ul><ul><li>http://www.google.com/search?hl=en&q=test+driven+development (really!) </li></ul></ul>
    33. Resources: IDE & Build Tools <ul><li>Eclipse IDE </li></ul><ul><ul><li>http://www.eclipse.org/ </li></ul></ul><ul><li>NetBeans IDE </li></ul><ul><ul><li>http://www.netbeans.org/ </li></ul></ul><ul><li>Ant </li></ul><ul><ul><li>http://ant.apache.org/ </li></ul></ul><ul><li>Maven 2 </li></ul><ul><ul><li>http://maven.apache.org/ </li></ul></ul><ul><ul><li>http://www.devzuz.com/web/guest/products/resources#BBWM </li></ul></ul><ul><li>Maven & Eclipse </li></ul><ul><ul><li>http://m2eclipse.codehaus.org/ </li></ul></ul><ul><li>Maven & Netbean </li></ul><ul><ul><li>http://maven.apache.org/guides/mini/guide-ide-netbeans/guide-ide-netbeans.html </li></ul></ul>
    34. Resources: Unit Testing <ul><li>JUnit Framework </li></ul><ul><ul><li>http://junit.org/ </li></ul></ul><ul><li>JUnit FAQ </li></ul><ul><ul><li>http://junit.sourceforge.net/doc/faq/faq.htm </li></ul></ul><ul><li>JUnit with Ant </li></ul><ul><ul><li>http://ant.apache.org/manual/OptionalTasks/junit.html </li></ul></ul><ul><ul><li>http://ant.apache.org/manual/OptionalTasks/junitreport.html </li></ul></ul><ul><li>JUnit with Maven </li></ul><ul><ul><li>http://maven.apache.org/plugins/maven-surefire-plugin/ </li></ul></ul><ul><li>TestNG Framework </li></ul><ul><ul><li>http://testng.org/doc/ </li></ul></ul><ul><li>Jester – Mutation Testing </li></ul><ul><ul><li>http://jester.sourceforge.net/ </li></ul></ul><ul><ul><li>http://www.ibm.com/developerworks/java/library/j-jester/ </li></ul></ul>
    35. Resources: Mock Objects <ul><li>Mock Objects Blog </li></ul><ul><ul><li>http://mockobjects.com/ </li></ul></ul><ul><li>EasyMock Library </li></ul><ul><ul><li>http://easymock.org/ </li></ul></ul><ul><li>jMock Library </li></ul><ul><ul><li>http://jmock.org/ </li></ul></ul>
    36. Resources: Unit & Functional <ul><li>XmlUnit Library </li></ul><ul><ul><li>http://xmlunit.sourceforge.net/ </li></ul></ul><ul><li>DBUnit Library </li></ul><ul><ul><li>http://dbunit.sourceforge.net/ </li></ul></ul><ul><li>HttpUnit Library </li></ul><ul><ul><li>http://httpunit.sourceforge.net/ </li></ul></ul><ul><li>Cactus for JEE Server Code </li></ul><ul><ul><li>http://jakarta.apache.org/cactus/ </li></ul></ul><ul><li>Cargo for JEE Server Code </li></ul><ul><ul><li>http://cargo.codehaus.org/ </li></ul></ul>
    37. Resources: Test Coverage <ul><li>Cobertura </li></ul><ul><ul><li>http://cobertura.sourceforge.net/ </li></ul></ul><ul><ul><li>http://www.ibm.com/developerworks/java/library/j-cobertura/ </li></ul></ul><ul><li>Cobertura with Ant </li></ul><ul><ul><li>http://cobertura.sourceforge.net/anttaskreference.html </li></ul></ul><ul><li>Cobertura with Maven </li></ul><ul><ul><li>http://mojo.codehaus.org/cobertura-maven-plugin/usage.html </li></ul></ul><ul><li>Emma </li></ul><ul><ul><li>http://emma.sourceforge.net/ </li></ul></ul>
    38. Resources: Perf. & Load <ul><li>JUnitPerf </li></ul><ul><ul><li>http://clarkware.com/software/JUnitPerf.html </li></ul></ul><ul><li>JMeter </li></ul><ul><ul><li>http://jakarta.apache.org/jmeter/ </li></ul></ul><ul><li>Eclipse TPTP (Test & Performance Tools Platform) </li></ul><ul><ul><li>http://www.eclipse.org/tptp/ </li></ul></ul><ul><li>Netbeans Profiler </li></ul><ul><ul><li>http://profiler.netbeans.org/ </li></ul></ul>
    39. Resources: Acceptance Tests <ul><li>Selenium for Web Apps </li></ul><ul><ul><li>http://www.openqa.org/selenium/ </li></ul></ul><ul><ul><li>http://www.openqa.org/selenium-ide/download.action </li></ul></ul><ul><li>Automating Selenium (“Remote Control”) </li></ul><ul><ul><li>http://www.openqa.org/selenium-rc/ </li></ul></ul><ul><ul><li>http://wiki.openqa.org/display/SRC/Selenium-RC+and+Continuous+Integration </li></ul></ul><ul><li>Selenium & Maven </li></ul><ul><ul><li>http://raibledesigns.com/rd/entry/selenium_plugin_for_maven </li></ul></ul><ul><li>FitNesse </li></ul><ul><ul><li>http://fitnesse.org/ </li></ul></ul><ul><li>Stiq </li></ul><ul><ul><li>http://storytestiq.sourceforge.net/ </li></ul></ul>
    40. Resources: Cont. Integration <ul><li>Cruise Control </li></ul><ul><ul><li>http://cruisecontrol.sourceforge.net/ </li></ul></ul><ul><li>Continuum </li></ul><ul><ul><li>http://maven.apache.org/continuum/ </li></ul></ul><ul><li>Hudson </li></ul><ul><ul><li>https://hudson.dev.java.net/ </li></ul></ul>
    41. Resources: App used in Demo <ul><li>Open Source Medical Record System </li></ul><ul><ul><li>http://www.openmrs.org/ </li></ul></ul><ul><li>Prerequisites: SVN, MySQL 5, Tomcat 5 </li></ul><ul><ul><li>http://subclipse.tigris.org/update_1.2.x </li></ul></ul><ul><ul><li>http://mysql.org/ </li></ul></ul><ul><ul><li>http://tomcat.apache.org/ </li></ul></ul><ul><li>SVN Repository </li></ul><ul><ul><li>http://svn.openmrs.org/openmrs/branches/alpha </li></ul></ul><ul><li>Installation </li></ul><ul><ul><li>Edit build.properties and properties.xml to set tomcat.user/password, </li></ul></ul><ul><ul><li>or add test/test to $CATALINA_HOME/conf/tomcat-users.xml file. </li></ul></ul><ul><ul><li>Edit build.properties and/or properties.xml to set tomcat.home file. </li></ul></ul><ul><ul><li>Comment out creation of &quot;test&quot; MySQL user in schema if it already exists. </li></ul></ul><ul><ul><li>Default username/password is admin/test. </li></ul></ul>
    42. Thank you To all who participated!

    ×