Behaviour Driven Development at BSkyB
[EuroPython 2012] Russell Sherwood- David Sale - 5 JULY 2012 in "Track Lasagne"
BSkyB is a major player in the broadcasting and telecoms market in the United Kingdom. Skyâ??s offering of premium sports, movies and entertainment channels puts it at the forefront of Television entertainment in more than 10 million homes. Its ample broadband and telephone products have allowed the company to expand its customer base and offer an all round package to its customers. With a focus on quality and stability in everything Sky produces, testing of applications is paramount. As part of this business, the company needs a successful and efficient way to sell these products to its customers and as such the modelling, rules and pricing of packages need to lay a firm foundation for different parts of a sales application to function well. Testing plays a key role to ensure that delivery of a product is always as incident free as possible. Within the agile framework, unit tests, behaviour driven development (BDD) and continuous integration play a key role in making this possible. Ensuring we discover defects early enables us to deliver software fortnightly. BDD tests allow the team to test the application as the user will use it, highlighting any issues from front end through to back end. More importantly with BDD tests written in plain English and python code underneath it allows the Quality Assurance personnel (QAâ??s), developers and business owners to work together in constructing and writing tests. This brings together the entire team rather than separating the separate stages of application development. In this EuroPython presentation, we will cover the following aspects of BDD: â?¢ The role of BDD in Agile Development â?? a brief introduction to the usage of BDD on a daily basis and the process of QAâ??s and developers working together to form quality tests. â?¢ Creating a successful and useful BDD test â?? writing the feature file (plain English definition of what the test will achieve), underlying step definitions and how working collectively can maximize the coverage of routes through the code. â?¢ BDD usage in continuous integration â?? the movement of code through a continuous build process, catching defects early and how BDD tests ensure confidence in your application as it moves into production.