Have something to share about engineering practices, architecture or DevOps?
Become a speaker now

Writing clean and DRY code for executable specifications

Writing clean and DRY code for executable specifications

Abstract: Automation of specifications written in a subset of natural language requires translation layer. This layer often falls outside established TDD practice and may even be managed by people different from those writing production code. How to make sure it has clean code, avoids duplicates and easily maintained? Can we simplify translation layer by writing specifications differently? And what can we bring from development community? This is what this session is about.

A gap between high level system validation requirements and capabilities of component API opens testers for use of different methods and even different programming languages when implementing test infrastructure code. This code is not deployed to production, so testers often get more liberty in choice of frameworks and tools used to validate system behavior. In this talk we will show that such freedom can be turned into an advantage to keep the test code clean and non-redundant. The main focus will be on implementing scenario steps for specifications written in Gherkin – a widely adopted language for specifications and user requirements. We will walk through a series of examples and short case studies.

The talk is technology agnostic but most of examples are taken from systems running on .NET platform.

Format: Talk (50 minutes)
Language: Russian
Vagif Abilov

Vagif Abilov

Miles, Norway

Vagif Abilov is a Russian/Norwegian software developer and architect working for Miles in Oslo. He has more than twenty years of programming experience that includes various programming languages, currently using mostly C# and F#.

Vagif writes articles and speaks at user group sessions and conferences. He is a contributor to several open source projects, such as SpecFlow and Simple.Data, and a maintainer of several open source projects, such as Simple.OData.Client and MongOData.