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

New
axelson
ElixirConf 2017 - Elixir by the Bellyful - @bryanhunter Elixir makes me happy! Since 2007 I have been on the...
New
axelson
ElixirConf 2017 - Live APIs with GraphQL Subscriptions - @bruce and @benwilson512 APIs have gone live with G...
New
AstonJ
Just starting to go up - did you attend? Have any faves? Here are the keynotes:
New
zporter
ElixirConf US 2018 – Breaking Down the User Monolith – Zach Porter Coming from Ruby on Rails, the convention is to have a...
New
ElixirConf
ElixirConf: ElixirConf 2023 - Charlie Holtz - Building AI Apps with Elixir Comments welcome! View the <span class="hashtag-icon-placehol...
New
axelson
ElixirConf US 2018 – Building Video Chat with Elixir &amp; Phoenix – Anil Wadghule (@anildigital) In this t...
New
CodeSync
Code Sync: Celebrating the 10 Years of Elixir | José Valim | ElixirConf EU 2022 Comments welcome! View the <span class="hashtag-icon-pl...
New
axelson
ElixirConf US 2018 – Docker and OTP: Friends or Foes? – Daniel Azuma (@dazuma) Docker is the hot deployment...
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

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
chrismccord
As promised, the first release candidate of Phoenix 1.3.0 is out! This release focuses on code generators with improved project structure...
New
Lily
In templates/appointment/index.html.eex: &lt;%= for appointment &lt;- @appointments do %&gt; &lt;tr&gt; &lt;td&gt;&lt;%= appoi...
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
AstonJ
We’ve put together this wiki for Phoenix LiveView - please feel free to add any info you feel is worth including. What is Phoenix LiveV...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 54250 245
New
jaysoifer
Is there a way to rollback a specific migration and only that one (“skipping” all the other ones)? Would mix ecto.rollback -v 200809061...
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

We're in Beta

About us Mission Statement