by Alex Soto
Unit tests should follow the FIRST rules (Fast, Isolated, Repeatable, Self-Validated and Timely). When persistence layer is under test, fast and isolated rules are the most violated. For relational database management systems, embedded databases and DbUnit framework exist to help us to not break them, but there is no like DBUnit framework for heterogeneous NoSQL systems.
NoSQLUnit aids us to not break these rules by providing a JUnit extension which helps us to manage lifecycle of NoSQL systems and also it takes care of maintaining databases into known state. NoSQLUnit can be used during unit tests, but also in high level tests like integration or acceptance tests.
by Romain Sertelon and Stephane Landelle
Your application is going live tomorrow, the new marketing campaign is about to start, you enjoy a margarita, life is good. Yet something keeps bugging you, are you sure your webapp won't crash down? "Damn, forgot about the stress tests!"
Traffic grows, data grows, our applications have to withstand increasing loads, so stress tests are more and more of a critical issue.
Gatling is a new generation stress tool developed in Scala. Its fully async engine based on Akka actors and Netty NIO makes it very efficient, and the rich yet simple DSL makes it very user-friendly. Your project managers will love it too, thanks to its relevant and portable reports.
This talk will cover the main principles of Gatling's architecture and demonstrate how quick and easy building stress tests with Gatling is.
More information about Gatling here: http://gatling-tool.org https://github.com/excilys/gatling
by Alex Soto, Bartosz Majsak, John Ferguson Smart, Paul Bakker, Dan Allen, Aslak Knutsen, Sarah White, Mircea Markus, Lukáš Fryč and David Blevins
The bugs are building another Death Star. What's our invasion plan?
Bugs don't rest when you go to sleep. In fact, you should worry most when they are left alone. They are tireless creatures, hard at work to destroy your home. In software, it's no different. We are at constant war with bugs. News flash, the bugs are building another Death Star and we're just standing by! Let's plot an invasion plan during this moderated discussion on the topic of enterprise testing.
There are all kinds of bugs, ranging from logic errors to security holes. With so many types of bugs working to destroy our software, how can we expect to defend it with a one type of testing and marginal effort? What if car makers told us, "It should be safe. We tested most of the parts individually." Dare to drive?
Instead, we need to put those dummies in the car and crash it into the wall a bunch of times. What's that called? Real tests.
We'll discuss human errors, integration failures, performance bottlenecks, memory leaks, vulnerabilities and other flaws in software, then see who's testing for them and which tools, strategies and methodologies they are using. What we're likely to find is that there are many more ways for software to fail than to succeed, yet we're caught coding for a peaceful world.
What's preventing you from invading? What do you need to take action? If you are, what are you using? Is it working for you? Do you need more juice in your ray gun? Can we automate everything or do we still need human test pilots? Let's strike back!
by Andres Almiray, Bartosz Majsak, Ben Evans, Emmanuel Bernard, Geoffrey De Smet, John Ferguson Smart, Julien Viet, Koen Aers, Martijn Verburg, Sanne Grinovero, Stéphane Épardaud, Stephen Chin, Dan Allen, Hans Dockter, Aslak Knutsen and Jonathan Fuerth
Your chance to make a positive impact in an Open Source project of your choice. Hackergarten meetings are all about having fun, meeting new friends, learning new skills and making the world a better place, one code patch at a time.
Hackergarten @ Devoxx is scheduled for the second day of the Devoxx University. It will take place in the two extra rooms (Area 1 & 2, each approx. 50m2) in the exhibition floor. The Hackergarten session is a FREE (that's right, GRATIS) event, open to anyone in the area that's willing to get their hands dirty with some code.
Hackergarten contributions have been sent to the following projects in the past: Groovy, Grails, Griffon, Gradle, Spock, Arquillian, JBoss Forge, Intellij IDEA, ScalaFX and more. Come join us for a full day of fun and open source goodness. Let your voice be heard! Bring your laptop and enjoy the opportunity to rub shoulders with project team members.
Organizer: Andres Almiray
Note: The speakers listed are actually just the coordinators and project mentors. There are no formal presentations at this event.
Backend architecture matters, but chances are, most of the performance problems in your new and awesome web app are in the frontend: too many external resources, request serialization, suboptimal layout and JavaScript execution.
We'll start at the beginning: how does the browser layout the page, what are the HTML5 optimizations that can help us improve the user experience, and what are the tools that can assist us in this quest? We'll dive into Chrome Dev Tools, explore the new W3C performance specs and what they can offer, and investigate several case studies to illustrate the common pitfalls. By the end of the session, you'll be able to shave several seconds off your page load time - yes, all in the frontend!
And for the backend geeks, we'll take a quick look at lessons learned with SPDY, talk about open source page optimization (and automation) tools like PageSpeed, and also take a quick foray into the optimizations for the mobile web.
We release our dependency information as pom.xml files on a maven repository. But how well do we understand the effect of these pom.xml files on our users? What problems do we create in ours and their dependency resolution?
In this session, you’ll be presented with several Maven puzzlers. Each Maven puzzler is a small POM configuration with a multiple-choice question about the output. Some puzzlers are easy, others are hard. Whoever answers most puzzlers correctly, wins.
We all know JUnit rulez. But do you know JUnit Rules? Rules are a not so well known feature of JUnit. They allow us to encapsulate setup and teardown in a reusable package. You can manipulate the way tests get executed as well.
In this session we'll see what Rules actually are, how they work and what can get achieved with them.
by Sven Peters
Developing a product over years is a tough job. It is hard for the team to stay excited on a day to day basis. So how can you improve motivation and innovation of agile teams and still keep the focus on building a great product?
I want to share with you how we at Atlassian used an agile approach to become one of the most successful developer tool companies in the world. This talk will cover topics like Ship It days, 20-percent time, keeping distraction away from developers, lunchtime talks, dogfooding and much more.
by Mike West
HTML5 has changed the way we build and deploy code on the web, moving much of an application's logic from the server down to a user's browser, caching data locally via storage APIs, and delivering exciting experiences without touching the network. This has excellent effects on both speed and availability, but makes it more critical than ever to practice what we preach in terms of security best practices. This talk will outline some of the ways in which you can mitigate the effects of cross-site scripting and other attacks, ranging all the way from practical use of Content Security Policy to properly sandboxing user-generated content.
The Persistence Layer is one of the most crucial parts of enterprise applications, and we use many different frameworks and patterns to keep it clean. We write sophisticated queries and use optimization techniques to give our end users the greatest possible experience.
So why is Persistence very often skipped in testing efforts? Is it really that complex and painful to setup? The Arquillian Persistence Extension removes that burden and boilerplate to make you a happy and productive programmer again! Join this session and see for yourself that writing tests for your database logic is as easy as writing normal unit tests! Don't expect too many slides, be prepared for live demo!
by David Delabassee and Markus Eisele
Informal meeting with Java EE spec. leads and enthusiasts
Apache TomEE is the Java EE 6 Web Profile certified version of Apache Tomcat and combines the simplicity of Tomcat with the power of Java EE. The first half of this session introduces TomEE and shows how Tomcat applications leveraging Java EE technologies can become simpler and lighter with a Java EE 6 certified solution built right on Tomcat. The second half focuses on those already familiar with TomEE and goes into detail on latest advancements, testing techniques including Arquillian, clustering features and production considerations. If you're a Tomcat lover or a TomEE enthusiast, this is the session you don't want to miss!