JavaCro'14 - Taking testing to its limits – Aleš Justin

  • 998 views
Uploaded on

Google App Engine (GAE) is a popular PaaS offering. While its scalable and reliable environment is hidden behind custom API, this makes GAE apps hard to port over to other non-GAE environments. What …

Google App Engine (GAE) is a popular PaaS offering. While its scalable and reliable environment is hidden behind custom API, this makes GAE apps hard to port over to other non-GAE environments. What if one could implement such similar environment? And you could simply move your GAE application’s .war file to this new environment and it would just work? But the question we need to ask ourselves first, how do we know that such alternative environment works in the first place? Java EE has had its Technology Compatibility Kit (TCK) from day one. This time we’ll introduce you to GAE TCK and show you how to run it against an alternative JBoss CapeDwarf GAE API implementation. The GAE TCK is built completely on open source software, and it is a collaboration between Red Hat and Google on making the GAE API and its implementations better. The goal is not just to run the tests, but also engage users and developers with a bunch of exciting extensions that range from cool html reporting to bytecode manipulation of external tests.
If you care about GAE, testing, Arquillian, ShrinkWrap, this is the session not to miss!

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
998
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Taking testing to its limits Aleš Justin, Red Hat http://javacro.org/http://javacro.org/
  • 2. Agenda • Testing? • GAE TCK • JUnit, ShrinkWrap,Arquillian • Code coverage, reports, CI, …
  • 3. Testing? • Do you test? • Never enough time • Hard to test • “If there is no test, it doesn’t work” • ~50% test code • New frameworks to actually test
  • 4. GAE TCK • GAE? • Google App Engine • JBoss CapeDwarf • Open source GAE API impl • Does it work? • Voila TCK - www.appengine-tck.org
  • 5. JUnit • Simple as @Test • Together with Maven Surefire plugin • Extendable • @RunWith • Assert,Assume, @Ignore, …
  • 6. ShrinkWrap • Binaries abstraction • No more Ant or Maven assemblies • Nice and simple, yet powerful API to create *programmatic* deployments
  • 7. Arquillian • Environment / runtime abstraction • Proper and easy in-container testing • “Container” imp • A ton of existing container impls • Invocation protocol • Servlet, JMX, @RunAsClient, etc
  • 8. Arquillian • Transparent container usage • Exactly one container impl on classpath • JUnit,TestNG support • Extendable • Drone, Graphene, etc
  • 9. TCK Features • NOTE — It’s all *generic* • Not tied to GAE API or TCK • TODO of moving this into separate project
  • 10. Code coverage • Display API usage • Bytecode check • Fast • No runtime involved • Link against source code • JSP check
  • 11. Reports • Graphical results presentation • Pie and XY chart • Drill-down for more info • Pushed from TeamCity CI • Custom push TeamCity plugin • Endpoints stubs
  • 12. Utils • Multisuite • One big deployment • Environment info and extension • “Events” • @WithinNamespace, @UserIsLoggedIn • Transformers • Turn plain JUnit test into ARQ test
  • 13. Q&A • ajustin@redhat.com / @alesj • www.capedwarf.org • www.appengine-tck.org • https://github.com/GoogleCloudPlatform/ appengine-tck