Thomas Sundberg is a consultant at Sigma in Stockholm, Sweden. He has a Masters degree in Computer Science from the Royal Institute of Technology, KTH, in Stockholm. Thomas has been working as a developer for more than 20 years. He has taught programming at The Royal Institute of Technology, KTH, one the leading technical universities in Sweden. Thomas has developed an obsession for technical excellence. This translates to Software Craftsmanship, Clean Code, Testing and Automation.
Thomas is also a speaker at different conferences and developer venues, including eXtreme Programming XP, Agila Sverige, Öredev, Turku Agile Day, Agile Central Europe, GeeCON, Java Developer Day, Agile By Example, Scandinavian Developer Conference and Agile Testing Days. Thomas runs a blog where he writes about programming, Software craftsmanship and whatever problem he wants to share a solution about. It can be found at http://thomassundberg.wordpress.com/
Software development is an industry that has been around for a little bit more than 50 years. There are a lot of really smart people working in this industry. How is it possible that these smart people are so good at failing? How can we as an industry continue year after year with failing or really slow development?
The answer is embarrassingly easy, we tend to apply methods and techniques we don't understand or that don't bring any value.
There are many anti patterns that can be applied to software projects. They tend to fall into these categories: Architectural, Development, User interface, Organisational, Management.
We will look at a selection of these anti patterns and see why they are so bad and the problems they contribute with.
Just looking at bad examples may be depressing. But if you can identify a bad example in your own project or product then you have a chance to do something about it. Understanding and accepting that you have a problem is always the first step to fix it.
Cucumber has been around a long time in the Ruby world. It is a popular tool that allows development teams to describe how software should behave in plain text. The text is written in a business-readable domain-specific language and serves as documentation, automated test and development-aid - all rolled into one format. Cucumber-JVM has been available to the Java community since March 2012.
I will walk you through what Behaviour Driven Development (BDD) is and how Cucumber-JVM can be used as a tool to actually implement the desired behaviour using the format:
- Given a system setup
- When we perform an action
- Then we expect a specific result
I will also develop a very simple example where we can see how a model can grow from the desired external behaviour to the very core of a system. Another example will demonstrate how a web application can be verified using Cucumber and Selenium.
Finally I will show you how Cucumber can be fitted into your continuous integration/delivery system using Maven and thus be a crucial part of your automated acceptance test suite.
Keywords:Cucumber-JVM, Automated testing, Continuous integration, Maven