BDD To The Bone: Acceptance Testing with Behave and Selenium

Oct 17 3:55 PM EDT :calendar: to 4:20 pm

About This Talk

It’s easy to get caught up in testing metrics. We all do it. We aim for 100% code coverage, try to hit all branches, write good integration tests, and all the other good developer practices. These all indicate that we are building our product right, but are we building the right product?

There’s a different mentality when it comes to answering this question. We, as developers, can’t just make sure that the code does what we want it to do. We need to think about what our users want. We need good requirements and specifications and we need to make sure that we are covering user acceptance testing.

In this talk, we’re going to discuss why requirements are hard to get right, and how we can solve some of those problems. We’ll introduce strong traceabilty with executable specifications and then talk about how to tie that directly to your Python tests.

We’ll discuss behavior driven development, primarily with the behave library. After we cover the basics, we’ll look at a Django application and talk about the challenges in performing user acceptance testing on websites. We’ll use the selenium library to drive website interactions through Python, and tie it all together with acceptance tests.

This talk assumes basic knowledge of testing practices, Python, and HTML/JavaScript.

Presenters

    Photo of Pat Viafore

    Pat Viafore (he/him)

    Pat Viafore has been in the industry for over 15 years, working on various systems such as lightning detection systems, operating systems, and virtualization. He focuses on testing, software engineering, and developer experience.

    He is the author of Robust Python and co-organizer of HSV.py. He works his day job at Cloud Software Group as a Principal Software Engineer. He also moonlights as a contractor/consultant at Kudzera, LLC, which he co-owns with his wife.

    Outside of programming, Pat likes rock climbing, going on hikes, cooking, and good quality family time.