Automated Acceptance-Testing using Concordion

See on Scoop.itcatosplace

This introduction to Concordion for acceptance testing is aimed at assessing the tools capabilities from a acceptance testing perspective. It uses a BDD concepts to enable comparisons between the tool and JBehave and as such I feel has missed the point of Concordion as a more specification based tool.

Saying that, the introduction is clear, clean and concise and is recommended for someone new to Concordion. I believe strongly that its strength is the ‘living document’ it provides – this is not a report but a ‘living, breathing representation of the specifications’ which is a cause for the ‘lack of reporting’ prescribed in this introduction.

Whilst it is great to see Concordion examples being posted online, I still feel it is a misunderstood and under utilised tool (something the writer allures to in this introduction). I shall add it to my list of candidate blog posts…until then I highly recommend reading ‘Specification By Example’ by Gojko Adzic.

I would also recommend those looking at BDD Acceptance Tests review easyB as an alternative to JBehave. easyB has the ability to do both BDD stories and specification  – whilst not providing the ‘living document’ that Concordion does, it provides the reporting comparable to JBehave.
See on blog.codecentric.de

YOW! 2011 Brisbane Conference – Day 1 Attendance Summary

YOW! 2011 Australia

Day 1 of the YOW! 2011 Brisbane Conference was full of fantastic talks, book recommendations and great giveaways as usual. As well as the YOW! 2011 Conference t-shirt I picked up an Atlassian t-shirt and enjoyed some micro dots for afternoon tea thanks to ThoughtWorks.

I had been really looking forward to the DevOps stream in the morning featuring Jez Humble of Continuous Delivery fame and ‘The Build Doctor’ himself Julian Simpson and had an enjoyable morning session. After lunch things begun to hit another level with two presentations by Joshua Kerievsky author of Refactoring To Patterns on Lean Startup and The Limited Red Society. I also enjoyed learning about QuickCheck testing capabilities from John Hughes, and Haskell from one of its founding fathers Simon Peyton-Jones. The JVM keynote from Oracle Vice President of Development Camron Purdy, which opened the conference, was interesting but not really worthy of its keynote status. I also failed to heed the lessons of conference pasts and went to another labourious IBM SOA presentation this time provide by Rachel Reinitz.

In this blog entry I will provide a brief synopsis of each of the sessions I attended. Comprehensive notes and details of the presentations I attended will hopefully follow over the coming weeks.

Continue reading “YOW! 2011 Brisbane Conference – Day 1 Attendance Summary” »

YOW! 2011 Brisbane Conference – Planned Attendance

YOW! 2011 Australia

The YOW! 2011 Brisbane Conference starts today and I am lucky enough to be attending.

My plan over the next few days is to attend the following sessions and I will write up my notes over the next few days.

Monday 5th December
9.00-10.00 Top 10 JVM Erroneous ZonesCameron Purdy
10.30-11.25 Continous DeliveryJez Humble and Martin Fowler
11.30-12.30 We’re All Developers Now – Adventures in Infrastruture as CodeJulian Simpson
1.15-2.15 Lean StartupJoshua Kerievsky
2.15-3.15 The Limited Red SocietyJoshua Kerievsky
3.30-4.30 SOA Connectivity and Integration…Real World ExamplesRachel Reinitz
4.30-5.30 Better Testing with Less Work: QuickCheck Testing in PracticeJohn Hughes
6.15-7.30 Escape from the Ivory Tower: The Haskell Journey From 1990 to 2011Simon Peyton Jones

Tuesday 6th December
9.00-10.00 Temporally Quaquaversal Virtual Nanomachine Programming In Multiple Topographically Connected Quantum-Relavistic Parallel Timespaces…Made Easy! – Damian Conway
10.30-11.30 Problem-solving and Decision-making in Software DevelopmentLinda Rising
11.30-12.30 Domain-Driven Design for RESTful SystemsJim Webber
1.15-2.15 Product Engineering Innovation in Legacy CodeDave Thomas
2.15-3.15 Three ‘Tall’ TalesKevin O’Neill
3.30-4.30 The Future is Parallel, and the Future of Parallel is DeclarativeSimon Peyton Jones
4.30-5.30 Feedback Makes Everything Better: Understanding the Software Engineering ProcessBjorn Freeman-Benson

The Evolution of Test Driven Developers

Evolution

Evolution

Test Driven Development (TDD) since its rediscovery by Kent Beck in the early noughties has led to an evolution in the information technology developers of our species. So where on the test driven developer evolutionary tree do you or your developer kind sit?

This is a light hearted look, with some serious undertones, at the evolutionary state of Test Driven Developers. I hope you enjoy your journey of discovery…

Continue reading “The Evolution of Test Driven Developers” »

Simple WordPress Embedded Content, JUnit Updates and introducing Tohu!

With my dad and step-mum currently visiting from the UK I have found it hard to find blogging time of late. A lot has been going on in my technical areas of interest lately, Java has announced closures in Java 7, WordPress and JUnit have been updated, JUnit has also had a bug release update pushed out already! In this entry I will outline the best WordPress functionality added by the update, the main reason for the JUnit releases and let you know about exciting developments at work.

WordPress has recently been updated to version 2.9. This new version includes a super easy way to include embeddable media in posts via Embeds. Thought I would give this new feature a work out by embedding one of my favourite television moments of all time…from classic BBC Comedy Only Fools and Horses – Del Boy prepares to make a move on some hot chicks whilst out on the town with Trigger…

Am sure I will find more uses for this great new feature. To find out what other new features are included check out the release blog post.

JUnit has also recently been updated to version 4.8.1. This version  follows close on the heals of the 4.8 release which introduced Categories to JUnit. Check out the Category changes and implementations  in the release notes.  The Categories implementation is marked by the authors as preliminary, not sure what is meant by that – as surely it would be difficult to remove it once people start using it! 4.8.1 fixes bugs in the Categories documentation and implementation reported by early implementors. I shall be taking a look at the implementation ASAP.

Lately I have been working on an interesting project at work that implemented a Grails/Groovy server and a .NET Extraction client. Most of my time was spent on the .NET client extractor which has been an interesting, if somewhat frustrating experience.

Today I got moved to a new project which looks like it could be really interesting. It involves the use of Tohu, an open source JBoss Drools based library for use in dynamic questionnaire based implementations. Solnet Solutions are the main developers of this open source implementation. I have been interested in making commercial use of Drools for a long time, and this project will give me the opportunity to get some real experience in this area. Tohu also currently only supports a JQuery UI. With JQuery being another of the technologies I have dabbled in but never really used in earnest as yet.

I have set myself a few goals for the coming months. Among them is blogging about the JUnit Categories updates and completing my review of the 3.7 changes. I will outline more of my plans and goals for the year in upcoming blog posts.

JUnit Goodness

Testing: The Dark Side?

Testing: The Dark Side?

It feels like an eternity since I last sat down to write some blog content!!

The last month or so I have been busy updating a ‘JUnit Goodness’ presentation for use at the Auckland JUG October 2009 meeting. The presentation focuses on 3 aspects of JUnit 4 that I feel may have slipped under the radar of developers introduced to JUnit at version 3. Parameterized tests, matcher assertions and the @Ignore annotation were the 3 aspects I chose to include in this presententation.

The parameterzied test section of the presentation attempts to outline a process that may lead a developer to utilize a parameterized test. The realization that duplicated code can be replaced by a looping test leads the devloper naturally in  the direction of a parameterized test. The presentation aims to offer answers regarding why and when to use parameterized tests and how to write them. Also included in the presentation is a named parameterized test extension and an XML data driven parametrized test extension that I had recently implemented.

Matcher assertions arrived in JUnit 4 via JMock. The presentation aims to demonstrate the advantages of using matcher assertions compared to the legacy JUnit assertions. Matcher assertion readability, clarity of failure messages, combination matcher usage and the benefits of list matchers are all presented. The creation of custom matchers is also present, albeit through a crude over simplified example.  To finish the presentation there is a look at the somewhat under utilized IMHO @Ignore annotation and how it can fit in to improved testing practices.

Auckland JUG Duke

Auckand JUG Duke

The majority of those present at the presentation were still using JUnit even though TestNG has built up quite a following and viewed by some as the next generation test tool. TestNG has useful features such as parallel testing and data driven testing using the @DataProvider annotation that JUnit does not. Why has there not been a shift to this next generation test tool? Is it down to the lazy developer syndrome? The we know this tool, why waste time learning a similar tool attitude? Some of the attendees were aware of TestNG and the benefits it offers when writing certain types of tests – yet still used JUnit for there project test needs.

Many of those present were unaware of the benefits that the 3 aspects presented provided. There was the odd attendee who had dabbled with one or two of the aspects, but none had really dug too deep. Hopefully I provided everyone with something to think about whenever they are writing JUnit tests in the future.

I had expected the parameterized tests section, particularly the named and XML data-driven extensions would be the ‘WOW’ factor of this particular presentation. This was not the case though. The actual ‘WOW’ factor turned out to be the clarity of the matcher assertion failure messages compared to their legacy equivalents. Flicking between the two versions on the big projector screen seemed to exacerbate the clarity.

I would be surprised to see any of the developers present not using matcher assertions from now on based on what they saw. The @Ignore annotation usage did lead into a group discussion regarding how useful it was, how it could be abused and the best ways to use it.

I plan to upload a slightly updated version of the presentation to SlideShare later this week.

Purchase JUnit In Action 2nd Edition MEAP Edition

Purchase JUnit In Action 2nd Edition MEAP Edition