How to implement UI testing without shooting yourself in the foot

I’m currently interviewing lots of teams that have implemented acceptance testing for my new book. A majority of those interviewed so far have at some point shot themselves in the foot with UI test automation. After speaking to several people who are about to do exactly that at the Agile Acceptance Testing Days in Belgium a few weeks ago, I’d like to present what I consider a very good practice for how to do UI test automation efficiently. Continue reading

Putting Selenium in the right place

Although Selenium is an essential trace element, it is toxic if taken in excess. That is what Wikipedia has to say on the chemical element Selenium, but pretty much sums up my feelings about the web testing tool of the same name as well. I like very much how easy it is to implement web tests with Selenium, but I’ve seen so many teams shoot themselves in the foot by misusing it and wasting a ton of time on writing and executing tests that simply got thrown away on the end. The Page Object pattern, popularised by Simon Stewart with WebDriver, seems to be the universally accepted best practice to manage UI tests efficiently and the preferred way to implement Selenium tests. However, at the recent CITCON Europe conference in Paris, Antony Marcano spoke against this and offered an alternative. Continue reading

An excellent agile testing experience report

The agile testing evening sessions at Skills Matter are getting better and better. I thoroughly enjoyed yesterday’s session with an experience report given by Nathan Bain and Anand Ramdeo. Anand and Nathan talked about their work at Global Radio focusing on how they implemented agile testing, and the topic turned out to be so thought-provoking that the presentation often turned into a free discussion and the event lasted twice longer than expected. In spite of that, some attendees complained that it was too short. Luckily the local pub is open till much later than Skills Matter so we continued the discussion there. Continue reading

Introducing Alt.NET courses at Skills Matter

From February 2009, Skills Matter will start organising public Alt.NET courses (first in London and then across Europe).

Opensource .NET tools crash course

The first will be a three-day crash course on tools and practices aimed at .NET developers that want to learn about Alt.NET tools and Java developers that are migrating to .NET and looking for good equivalents to the tools that they are used to working with. The course gives an overview of the most popular opensource .net tools and introduces modern development practices that these tools promote, such as test driven development, continuous integration, dependency injection, object-relational mapping and web development using the model-view-controller pattern.

Learn how to:

  • Implement TDD in .NET using NUnit, MBUnit, Rhino Mocks and FitNesse
  • Utilise Aspect oriented programming and Dependency Injection using Castle Windsor
  • Efficiently build Web applications using the MVC pattern in Monorail and utilising Monorail and Script# for Ajax and test them using Selenium Remote Console.
  • Manage persistence easily using ORM tools such as ActiveRecord and NHibernate
  • Introduce continuous integration in your projects using CruiseControl.NET and CI Factory

See the full programme.

Agile Web Development with the Castle Framework

The second one is a two-day course on Agile Web Development using the Castle project, teaching the basics of the Castle Framework and helping people develop a solid understanding of its benefits. Over the course of the two days, attendees will create a simple but complete web application using agile Web development practices such as Inversion of Control, Dependency Injection, Aspect Oriented Programming, Object/Relational Mapping and applying the Model-View-Controller pattern.

Learn how to

  • Apply agile web development practices like MVC and dependency injection
  • Use ActiveRecord to manage the object-relational mapping and the database layer
  • Use the Monorail MVC engine to create web applications that are easy to maintain and test
  • Explain the basics of Monorail views, layouts, rescues
  • Use the NVelocity view engine to build web UIs for Monorail
  • Apply Windsor Microkernel to configure and wire application components
  • Unit test the data access layer with Castle
  • Unit test web controllers
  • Describe how Castle components come together to help us develop web applications easier
  • Explain why this approach is much more effective than ASP.NET
  • Apply best practices, common pitfalls, and tips and tricks for Castle Web development

See the full programme.

Video from the Selenium talk

Here is the video from the Testing Web Applications with Selenium and Selenium Remote Control talk that Milan Bogdanovic, Ivan Sanchez and I organised last week at Skills Matter. The first part of the talk introduces Selenium and some related tools that allow us to use Selenium easier. In the second part, Milan demonstrates Selenium IDE and talks about Selenese language. In the third part, Ivan talks about Remote Control, how to make tests easier to manage and introduced the Page Object pattern. Download links and slides from the talk.