axelson

axelson

Scenic Core Team

ElixirConf 2019: UI Testing is Ruff; Hound Can Help - Vanessa Lee

by @girlsleuth

Whether you call it UI testing, End-to-End Testing, End-to-User Testing, or Acceptance Testing–it is often an intensely manual and time-consuming process. An Elixir library, Hound, can carry some of the load through browser automation. Browser automation means that I can automate my user interactions — clicks, fill inputs, file uploads, selecting options, radio buttons, etc. Hound tests saved me days of manual end-user testing on a project, and I want to share those benefits with you.

In addition, I found that using property-based testing principles with Hound amplifies the benefits. With the recent publication of Fred Herbert’s Property-Based Testing with PropEr, Erlang, and Elixir: Find Bugs Before Your Users Do, I have been more determined than ever to increase my understanding of property-based testing and incorporate it in my applications.

I recently had to rewrite in Elixir & Phoenix an internal credit card processing application I originally wrote in PHP in 2000. The original code had very few tests. This project provided the perfect opportunity to incorporate property-based testing in my acceptance tests. As Fred Herbert says, “Property-based testing is not a replacement for all testing, just a new tool that can often improve results.” Property-based testing gets us closer to knowing more of what he refers to as the “unknown unknowns”

I want to share that experience using examples from my recent experiences as well as by using an application I wrote specifically to show off the spectacular benefits of Hound. I will demonstrate an overview of Hound, Hound’s helpers, and StreamData. Hound, together with Elixir’s StreamData, allows us to achieve St. Bernard-level peace of mind. They can rescue us from the anxiety of failing QA and future code changes.

View all threads tagged with hound
View all threads tagged with property-based-testing
View all elixirconf2019 talks

Where Next?

Popular in Talks Top

axelson
Hey everyone! I hope everyone enjoyed ElixirConf! I know that I did. In order to facilitate and continue the discussion (especially since...
New
brightball
Since the comments are turned off on the YouTube videos, I'm going to post on talk per day on here for viewing and discussion...starting ...
New
AstonJ
File uploads are an essential part of many web applications, but often handling them can be tricky, which explains why they are one of th...
New
axelson
ElixirConf 2017 - Live APIs with GraphQL Subscriptions - @bruce and @benwilson512 APIs have gone live with G...
New
axelson
Architecting communication between microservices is a vital decision to be made when building scalable, sustainable software. In this tal...
New
axelson
Here’s today’s talk: ElixirConf 2017 - Don’t Write Macros But Do Learn How They Work - by @jessejanderson You may have ...
New
rodrigues
Day 1 Keynote about Lumen - An alternative BEAM implementation, designed for WebAssembly by @bcardarella @KronicDeth @bitw...
New
axelson
ElixirConf 2017 - Building an Artificial Pancreas with Elixir and Nerves - by @tmecklem People with Type 1 Diabetes have...
New
axelson
ElixirConf US 2018 – You Can Never Debug the Code You Run, But You Can View the Code the Debugger is Running – Luke Imhoff (@KronicDeth) ...
New
Lawrence_elixir
ElixirConf EU 2019 talk videos ElixirConf EU 2020 - Early bird tickets on sale now! Website: http://www.elixirconf.eu Twitter: www.t...
New

Other popular topics Top

TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
273 38985 115
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
dotdotdotPaul
Okay, I'm having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I'm sure I'...
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
mgjohns61585
Could someone help me? I'm making my first elixir program, number guessing game. I can't figure out how to convert the user's guess from ...
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? https://hexdocs.pm/ecto/Ecto.Repo.h...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
Nvim
Elixir appears to be a superior language to Python. I don’t see any advantage of Python over Elixir. Are there any?
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New

We're in Beta

About us Mission Statement