Bug killing proposals accepted for 2012 Google Summer of Code!

The much anticipated announcement about which students were selected to participate in the 2012 Google Summer of Code program was published earlier today. In total, there are 1,212 students participating. We’d like to congratulate all the students accepted and wish you all best of luck this summer!

The JBoss Community is proud to be participating as an independent mentor organization for the first time this year. We were selected thanks to a strong showing of volunteer mentors and an overwhelming number of compelling and creative ideas. More than half of the ideas came from the Arquillian community ~:)

I’d like to extend a big thank you to everyone who came forward with ideas. Acceptances aside, these ideas are already helping shape the future of the various JBoss projects.

Accepted projects

The Arquillian project is excited to announce that we have 2 students participating this year!

Google granted the JBoss Community 8 student slots. From those 8 slots, Arquillian was allotted 2 slots—far less than the number of excellent proposals submitted. After much agonizing over the decision for the last week, the Arquillian mentors decided to award the slots to the following two student proposals:

Project #1

Title Extend Arquillian to support Spring testing (beans and MVC controllers)
Student Jakub Narloch
Mentor Marius Bogoevici
Summary Arquillian provides an extensible testing platform that can be used for testing any type of Java-based component. The initial focus for Arquillian was testing Java EE components, such as CDI beans, EJBs and JPA. However, Arquillian provides all the infrastructure and hooks necessary to make it an ideal testing platform for Spring applications. So the main of this project would be introducing suport for Spring testing.

Project #2

Title Automated Visual Verification
Student Jakub Dunia
Mentor Lukas Fryc
Summary Testing is important part of development. It is a procedure we need to perform many times, that is why there are many tools to automate it. There are cases where it is not that easy, like Visual Verification. Normally we need real person to check whether the web page looks good or not. The goal of this project is to write a tool that allows to easily review set of automatically collected screenshots generated by tests, and also improve existing comparision algorithms.

Jakub Narloch is already well on his way to bringing Spring testing support to Arquillian having implemented a prototype. You can read about the status of his prototype in the GSoC – Arquillian Spring integration forum thread.

Jakub Dunia, with his insight into problem solving, has already demonstrated he’ll be invaluable member of our community. The project he has chosen to support is extremely innovative, not only in scope of Arquillian, but in UI testing in general.

Congratulations Jakub * 2!

There’s an additional testing-related proposal, sponsored by the Errai team, that was also accepted:

Project #3

Title A Jenkins plugin to visualize Jacoco code coverage reports
Student Ognjen Bubalo
Mentor Jonathan Fuerth
Summary JaCoCo is a tool which generates code coverage reports based on Java unit tests. The project is about writing a Jenkins plugin to visualize JaCoCo code coverage reports.

Congratulations Ognjen!

Next steps

Jakub, Jakub and Ognjen, please contact your mentors immediately. Make a plan to communicate with your mentor regularly, at minimum, once each week. Since we’re big believers in openness, the best way to keep in touch is through a public channel such as the Arquillian development forum or the #arquillian channel on Freenode IRC.

We plan to publish status reports on these projects here at arquillian.org to allow the community to follow your progress and provide feedback. For those watching, stay tuned!

Promising proposals

Although we could only accept two proposals, there were many well-written proposals that truly deserved a slot (if only we had more to give). I’d like to thank the students for the time they spent preparing and submitting the proposals by highlighting them here. The rating shown under each proposal is the average rating (out of 5) given by the JBoss mentors who voted.

Unleash the Jester on integration tests by adding support for mutation testing in Arquillian

Student: Adam Sznajder
Rating: 5 / 5

Server-Side Performance Testing Framework reusing Arquillian Core

Student: Oliver Kišš
Rating: 4.8 / 5

RushEye Manager for Automated Visual Verification

Student: Udesh Liyanaarachchi
Rating: 4.5 / 5

Integrate Robotium into Arquillian Drone and Android extensions for complete automated application testing on Android

Student: Aleksey Shilin
Rating: 4.25 / 5

Provide an object-oriented format for defining test data for the Arquillian Persistence Extension

Student: Martin Skurla
Rating: 4 / 5

Automate JavaScript tests in an integration environment using Arquillian

Student: Chaitanya Nalla
Rating: 3.67 / 5

Provide an object-oriented format for defining test data for the Arquillian Persistence Extension

Student: Houssem
Rating: 3.67 / 5

Integrate Sahi into Arquillian Drone for automated browser testing

Student: Asanka Amarasinghe
Rating: 3.5 / 5

Despite the fact that these proposals were not accepted into GSoC, we really want to see them pursued. We view this program as an opportunity to interact with the next generation of the JBoss Community and to help them discover, or reinforce, their passion for open source. In fact, several students, including Chaitanya Nalla, have already expressed interest in contributing to Arquillian despite not being accepted to GSoC. That’s the spirit!

As Anil mentioned on the JBoss GSoC mailinglist, we’re exploring a diverse approach to enable students to continue their proposals, ranging from Red Hat summer internships to community-supported projects. Our plan is to closely track the GSoC schedule to keep the projects on track and to give you, the students, the experience the comes with completing a summer project (and likely increase your chance of being awarded a slot next year). Stay tuned for details.

What’s next?

Keep an eye on this blog for periodic progress reports about the GSoC student projects and any additional non-GSoC summer projects.

The first milestone is May 21st, when coding officially begins (trust me, these guys will be way ahead of that scheduled date). The mid-term evaluations happen mid July and the projects wrap up in mid August. See the official timeline for all the dates.

Even when GSoC ends, the community continues on! We hope summer students stay involved in the community long after the hacking days of summer.

Death to all bugs! Arquillian testing platform reaches first stable release

Red Hat, Inc. and the JBoss Community today announced the 1.0.0.Final release of Arquillian, its award-winning testing platform built to run on the Java Virtual Machine (JVM). Arquillian substantially reduces the effort required to write and execute Java middleware integration and functional tests. It even enables test engineers to address scenarios previously considered untestable or too expensive to test.

The Arquillian project is led by Aslak Knutsen and has received contributions from over 100 contributors and community members (between Arquillian and ShrinkWrap combined). At the JavaOne 2011 conference, Arquillian received the Duke’s Choice Award for innovation in integration testing.

The 1.0.0.Final release of Arquillian Drone, a key add-on to the platform, is included in this release. Final versions of select container adapters will be released later in the week. ShrinkWrap, a central component of Arquillian, announced its 1.0.0.Final release last week.

Mission and History

Arquillian adheres to three core principles:

  • Tests should be portable to any supported container
  • Tests should be executable from the IDE to eliminate the need for an explicit build step and to simplify debugging
  • The platform should unify the Java testing ecosystem by extending or integrating with existing test frameworks

By focusing on these principles, Arquillian makes integration and functional tests as simple to write and execute as unit tests.

Arquillian originated from the test harness developed for the CDI 1.0 (JSR-299) specification in 2009. It spun off as an independent project and has evolved into an extensible testing platform. Coming full circle, the test suite in CDI 1.1 (JSR-346), the next iteration of the CDI specification, has migrated to Arquillian. Other specifications are expected to follow. Arquillian is also used by numerous open source projects, including Hibernate, JBoss AS 7, Drools, RHQ, JClouds and Apache DeltaSpike.

Functionality

Arquillian brings test execution to the target runtime, alleviating the burden on the developer of managing the runtime from within the test or project build. To invert this control, Arquillian wraps a lifecycle around test execution that does the following:

  • Manages the lifecycle of one or more containers
  • Bundles the test case, dependent classes and resources as ShrinkWrap archives
  • Deploys the archives to the containers
  • Enriches the test case with dependency injection and other declarative services
  • Executes the tests inside (or against) the containers
  • Returns the results to the test runner for reporting

Arquillian runs with Java 1.5 and above, integrates seamlessly with familiar testing frameworks such as JUnit and TestNG and allows tests to be launched using existing IDE, Ant and Maven test plugins.

Loving quotes about Arquillian

…using Arquillian, we were able to cut the setup needed to run a plugin in-container by 90% and we were able to introduce a number of convenience annotations from which you can get a variety of data injected into your tests.”

— Lukáš Krejčí, RHQ core developer

Arquillian is a really great integration testing tool full of potential. It’s just great that the JBoss guys are aiming to provide support for almost all widely used application servers and web containers. If you are writing an application for the Java EE 6 stack, not using Arquillian is a serious mistake!”

— Bartosz Majsak, Cambridge Technology Partners

[Arquillian] reminds me of the old Cactus project back in the day, but done much, much better.”

— Laird Nelson

Newest features

Arquillian can manage more than a dozen container vendors, including JBoss AS, GlassFish and Tomcat, and supports running tests in cloud services. The container support allows developers to target a variety of technology platforms, including Java EE 5 and 6, Servlet environments, OSGi, Embedded EJB and standalone CDI.

Additional new features include:

  • Orchestration of multiple deployments across multiple containers in a single test
  • Support for multiple protocol contexts within a single deployment
  • Descriptor deployment
  • Assertions for deployment exceptions
  • A new configuration schema that supports multiple configurations per container
  • EL-like evaluation in properties and configuration overrides via Java properties
  • Explicit ordering of test methods
  • Control over when the container is started and stopped

Arquillian’s extensibility is reflected in its growing ecosystem of extensions. The most mature extension, Arquillian Drone, is included in today’s release. Drone is an abstraction over browser controllers such as Selenium and WebDriver that enables the developer to write browser-based tests without having to fuss with the typical setup and plumbing. Other extensions under active development include an Android test controller, DBUnit integration, a SeamTest replacement for testing Seam 2, BDD runners (Spock and JBehave), performance metrics, code coverage (Jacoco) and Arquillian Graphene (a type-safe Selenium API). Expect more extensions to emerge now that the platform has reached a stable release.

Availability

The Arquillian platform and extensions are available in the Maven Central and JBoss Community artifact repositories. The Arquillian libraries are typically added to the test suite of a project using a dependency management tool such as Apache Maven or Apache Ivy. Instructions for setting up Arquillian in your project and writing Arquillian tests are covered in the newly-minted Arquillian Guides.

Arquillian is released under the Apache License, v2.0, an OSI-approved open source software license.

For more information and updates about the Arquilian project, follow the Arquillian project blog and circle the Arquillian project on Google+.

arquillian.org: The Bridge of the Arquillian Project

The short version

Arquillian now has guides! If you want to know how to get started with Arquillian, head over to arquillian.org to check them out…in one of 8 languages! If you want to make them better, fork the website project and get involved.

The slightly longer version

When I thought of how to present arquillian.org, naturally images of alien spacecraft came to mind. These days, there’s a lot of activity flowing in an out of the Arquillian mothership. To manage and make sense of all that information, we were in need of a central view of everything. In other words, we needed to get to “the bridge” of the ship. From there we can monitor activity, publish the lastest information, collect and exchange ideas and decide which actions to take.

Well, we’ve made it, finally. Welcome to arquillian.org. As Bob McWhirter likes to say, “You’re soaking in it.”

The full story

We’ve been thrilled to witness the impact Arquillian has made over these last two years and the agility it’s brought to the Java ecosystem. There’s no question, the Arquillian invasion is in full force.

But even as we stood on stage at JavaOne to receive a Duke’s Choice Award for Arquillian on behalf of our awesome community, I kept thinking about how much more successful it could be. I mean, if developers have been able to figure out how to use and build on Arquillian so far, just imagine how many more developers would use it—and how much easier it would be for them—if the project actually had some decent guides to get started.

We felt your pain. We heard your voice.

That’s why we decided at JavaOne it was time to get serious about closing this gap by writing several step-by-step guides. We didn’t leave off there, though. We recognized the whole experience of discovering Arquillian for the first time (or coming back to it after a break) needs to be extremely easy and rewarding. So after we drafted the guides, we molded them into a visually appealing website with a call to action button you can’t possibly miss. We then called on our noble community members to volunteer to translate those guides into as many languages as possible. And they came through!

The long road

Ever since then, we have been trying to get these guides into your hands. It’s been a long and rather ridiculous journey. I describe it as ridiculous for contrasting reasons.

On one hand, the reason we couldn’t make it available was ridiculous. But that’s a long and boring story. On a positive note, it was ridiculous to see how much effort the community has contributed to driving this vision to make Arquillian easy to adopt and use—to a website that wasn’t even being published, no less. It certainly demonstrated a lot of spirit. That’s why we kept pressing against that first ridiculous reason to get it launched :)

The final stretch

Over the past several weeks, I’ve been working with Sarah and Aslak (with blood, sweat and tears) to get this website ready to publish. We have curated as much information as we can find—at least so far—and organized it into a website that’s going to give you a view into the Arquillian project like you’ve never seen before. Heck, even while building the website, I was stunned to finally see a list of modules, releases and changelogs in one place for the first time. And now, it’s finally out there.

A new beginning

This is just the beginning. By no means do I consider the website to be set in stone for you just to look at (though I need a few days off to sleep). Quite the opposite. arquillian.org is an open book. It’s a Creative Commons (CC BY-SA 3.0) open source project hosted on, you guessed it, github. Clone (or fork) the repository named arquillian.github.com and checkout the README. The project comes complete with an issue tracker and wiki.

It’s important to recognize that the website needs to be a part of the Arquillian project just like any other module. After all, the project is only as good as the information we put out there. I’m envisioning have contributors that join the website team much the same as they might join a module. The group will be a cross section of design, outreach, messaging, documentation and, of course, automation.

We got it spun up (nearly writing it twice) because we knew Arquillian was severely lacking in good documentation and reference material, but we want you to be as involved in it as you like.

The website reflects the quality of the software—especially in the eyes of new users—and therefore it represents all of our work. That’s why my favorite page on the site is the list of contributors ;) It’s all about you, the nobles.

What’s inside

Before I close, I want to mention some key highlights of the website. Then, I’ll leave you to explore and discover the rest :)

  • All content managed in git and hosted on Github
  • Baked with Awestruct, a static site generator
  • A data curating pipeline written in Ruby (JRuby) as Awestruct extensions
  • Pages written in Haml (with a mix of Textile)
  • Easy to read, step-by-step guides (written in Textile, changelog retrieved via git)
  • Blogs written in Textile (or Markdown)
  • Guest blogs and improvements integrated via pull requests
  • Layout and components built on Twitter Bootstrap and jQuery
  • CSS3 goodness and cross-browser support compiled by SASS
  • Designed to be responsive for mobile phones and tablets (give it a try!)
  • Module, release and commit information mined from git repositories
  • Auto-generated, in-depth blog entry plus custom notes for each release (example)
  • Detailed summary page for each module (repository, versions, dependencies, contributors, etc)
  • Contributor information backed by Github and Gravatar
  • Dynamic information retrieved via json-p (tunneled through jgfeed when necessary)
  • Upcoming talks on Arquillian syndicated from Lanyrd
  • Blogs and articles about Arquillian syndicated from Diigo
  • Under the watchful eye of Ike (as you can see in the upper-left hand corner)

If you are curious about more details, check out the Information Architecture page I drafted on the wiki about the site. Take a look at the README if you want to build the site locally.

The vision

Our vision is to automate as much as the documentation as we can possibly accomplish. It ain’t (just) because we’re lazy. It’s because we know it’s the only way to get you the most accurate, up to date information about Arquillian and to reasonably manage the growing Arquillian ecosystem. In other words, we need to be in “the bridge”. And now we have it. Just check out the module pages. What a start!

Use it. Enjoy it. Pass it on. And fork it if you want it to be better.

If words could do

I want to give a huge thanks to Sarah White, who has stuck with me through trying times to get this website looking visually stunning, organized and logical (and for just putting up with my intense focus on this project).

I also want to recognize the following translators, who have brought the guides to 8 languages in total: Markus Eisele (German), Antoine Sabot-Durand and Badr El Houari (French), Takayuki Konishi (Japanese), Hantsy Bai (Simplified Chinese), Bartosz Majsak (Polish), Jose Rodolfo Freitas (Portuguese) and Tommy Tynja (Swedish). Arquillian is forever changed because of your effort.

Finally, I want to thank all of the contributors who have embraced writing release blog entries—Vineet Reynolds, Bartosz Majsak, Karel Piwko and Lukas Fryc—and contributing guides—Karel Piwko, Paul Bakker, Lincoln Baxter and Marek Schmidt.

That’s exactly the participation I envision will make this website a key communication hub of the Arquillian project. Let’s keep the invasion strong!

Goodbye, Ajocado - Welcome, Graphene!

Goodbye, Ajocado

Wait, the Ajocado project is not leaving us!
It is just undergoing rename.
Why such a change?

Ajocado has always been a proud member of Arquillian family, however its name didn’t tell very well what’s its purpose is in the true alien world. In other words, the name didn’t fit the story.

Moreover, we have experienced many troubles explaining how Ajocado should be even pronounced.

I must admit it was unlucky choice.

Choosing the new name…

The project is like a diamond – very strong in its basis:

  • a strongly-typed, chaining API
  • efficient jQuery-based locators
  • proven to handle AJAX successfully

But on the other hand, diamonds can’t be simply manufactured.

Let’s look what more could Ajocado offer us:

  • rapid test development
  • readability
  • high-level abstractions

What can be as strong as diamond, but be much more flexible?

Welcome, Graphene

Graphene is stronger and stiffer than diamond, yet can be stretched by a quarter of its length, like rubber.

Let me introduce the Graphene – the strong and flexible UI automation tool – the old/new member of the alien crew, on the way to save the world!

What’s next?

The rename is already done, waiting in Maven repositories as Graphene 1.0.0.CR3.

And what about migration? It’s pretty straight-forward, as you can see in my previous post.

Thank you all who participated in choosing new name, renaming and migration testing (Vlasta Elias, Dan Allen, Jan Papousek, Karel Piwko)!

Project Links

Arquillian wins a Duke's Choice Award!

Mark the date, October 2, 2011: Arquillian wins a Duke’s Choice Award for Innovative Integration Testing at JavaOne 2011!

Is there a better way to start of a though week then to get a solid acknowledgement for the hardwork that you have already put in? I can’t think of any…

Members of the Arquillian team receiving the Duke’s Choice Award (Andrew Lee Rubinger, Dan Allen and Aslak Knutsen).

We accept this award as an ongoing challenge to innovate. We’ll continue our mission to explore strange new testing gaps, seek out new integration points and boldly go where no integration testing software has gone before. This award goes out to the entire Arquillian community: coders, bloggers and evangelists. Excellent work!

After receiving the award, we were invited as guests on the Java Spotlight podcast, which was recorded on site at JavaOne, to talk about Arquillian. You can find our interview at 11:02 into Episode 51 in the series.

We’d also like to congratulate the other Duke’s Choice Award winners as well: dooApp, Inductive Automation, jHome, JFrog, JRebel, LMAX, Rockwell Automation and one of our own, Netty. Great work! Duke certainly made some great choices this year.