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
Today’s talk is another one from Toyota Connected ElixirConf 2017 - Elixir with Kafka - Mathew Gardner Elix...
New
axelson
ElixirConf US 2018 – Behavior Trees and Battleship: Tapping into the Power of Advanced Data Structures – Jeff Schomay ...
New
axelson
Here’s today’s talk: ElixirConf 2017 - Don’t Write Macros But Do Learn How They Work - by @jessejanderson ...
New
New
axelson
ElixirConf 2017 - Writing an Editor in Elixir - by @ijcd (Ian Duggan) Elixir for GUIs? Yes, it’s possible. I...
New
lawik
A single packet to begin. The 1st of Goatcember. Marc Laines - A Nerves Car Also on YouTube.
New
axelson
ElixirConf US 2018 – Simple is Beautiful: Building an SLA Monitoring Tool Using Elixir/OTP at PagerDuty – Aish Dahal ...
New
axelson
by @jon At PagerDuty, we run our systems across many geographic regions to ensure we’re always available, even when you might not be. E...
New
axelson
ElixirConf 2017 - Building Realtime Mobile Apps with React Native and Elixir - Osayame Gaius Obaseki Buildin...
New
axelson
Okay, posting this day’s talk by @boydm: ElixirConf 2017 - Elixir Native UI - Boyd Multerer I will be show...
New

Other popular topics Top

senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? Ecto.Repo — Ecto v3.14.0 has exampl...
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

We're in Beta

About us Mission Statement