ragamuf
A little halloween hocus-pocus on the value proposition of having a reliable test suite in place.
You are not scared, are you?
Trending in Blog Posts
Hey folks,
I just published a post about Hologram’s funding and where the project goes next - the short version:
Curiosum as Main Spons...
New
An educational side project in Elixir, Phoenix, and Tauri. I share what I learned while wiring Automerge into the BEAM, including how I s...
New
What happens if you design tools for LLMs instead of letting LLM use human tools ?
Wrote a blog on why and what that enables.
As I see ...
New
:pencil: Phoenix’s built-in LiveView test helpers require you to hand-build the form payload and start a fresh pipe after every click. Wo...
New
In the previous part of this series, we built a Worker Pool from scratch, exploring point-to-point communication where a coordinator assi...
New
Up until then, I found it very hard to communicate to LLMs that I specifically do not want to handle X case because maybe it has never ha...
New
In Elixir, send/2 is non-blocking, which means an eager producer can easily flood a slow consumer’s mailbox. Because BEAM process mailbox...
New
Other Trending Topics
Edit: 2026 May 15 - This post is archived.
Mob is alive!!
Main docs: mob v0.7.11 — Documentation
A bit of explanation for the slightly c...
New
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
Hi everyone!
The first release candidate for the Expert language server project is now available!
We’ve published a press release detai...
New
A little off-topic, but I feel like people here have a good head on their shoulders.
I used to be quite good at making software. Was luc...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ai
- #ecto-query
- #elixirconf-us
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #metaprogramming
- #hex










Showing Posts 1 to 7- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
dimitarvp
Many of us know this, man, the problem is, 80% of the time, leadership who indeed (as you said) asserts “if it ain’t broke don’t fix it”. The other 20% are spoiled programmers that constantly have to touch their code out of some misguided sense of perfection or vanity.
The job of us the senior programmers should also be to educate. Use any analogy you can – car needs changing of oil and while doing that the mechanic might notice a bigger problem is a good example that I found stuck with a good amount of business people – and do your best to get the message across.
We have to find a way to communicate the challenges of just letting the code sit and never get updated. Because unfortunately people come to tech with a lot of uninformed bias and prejudice and they have to be either educated out of it, or we should leave. Or we can just make peace with it, collect paycheck and do the minimum – I don’t blame the people doing it because fighting with leadership is (a) not everyone’s goal in life and (b) very hard.
quda
…or just the programmer is too busy, has a family, multiple jobs, multiple customers, other priority projects, other personal issues so he won’t update its code unless it’s requested by leadership/customer: “it’s broken, fix it!”. IMO, this happens 99% of the time.
dimitarvp
Yes, that’s another possibility.
derpycoder
Testing is a first class citizen in Elixir and same for Phoenix framework as well.
Elixir’s founder, Jose Valim even pointed out in his talk about his future with Elixir, that Types don’t solve the errors or help greatly with refactors, it’s the tests that enable us to have the fearless refactors. (See: Types lead to fewer tests)
Testing is so well integrated that the code examples mentioned in the documentation are verified as well, so they don’t end up breaking later on!!
Testing with Live View takes it to whole another level, i.e. you test your whole site in parallel, and without a headless chrome or browser instance slowing your tests down!!
Everyone realise the importance of testing, otherwise the tooling won't exist!!!
There’s a course which I have my eyes on for testing Live View: Test LiveView effectively. Trust your code. Ship confidently.
There’s Property Based tests: StreamData: Property-based testing and data generation
There are libraries to enable those:
PropCheck - Property based testing for Elixir
Faker - Fake data generation for Elixir
Ecto allows creation of test databases and what not, so you don’t end up messing up production db. Emails can be previewed without really sending them to real Email receivers in development mode!!
But man it depends on the company, I have been part of 2 such companies in my 7+ years of experience and they make us work as if the world is about to halt without their products and services.
Sprint after sprint with no breathing room, while “SCRUM Master” tersely explains, after office hours, that the ticket needs to go by this sprint & that deployment needs to happen by weekend.
And the beautiful architecture you dreamt for yourself, gets thrown into the mixer. It gets unrecognisable with each sprint.
Business use cases gets so twisted that even the browser groans while rendering your simple form, while it happily plays shadertoy or youtube on the side.
GitHub action pipeline consists of shallow metrics, that is so detached from reality that it shows a green tick even when the changes made will fail at runtime.
The application so unnecessarily distributed that you can’t make heads from tails. Good luck running distributed testing on a graph of micro services that’s so dense, even OOP inheritance gets put to shame.
So perhaps testing is not the root cause of our fear, rather its Scrum, Sprints & Microservices!.
I believe ousting people who have no business in Software Engineering and getting rid of the
scrumbi-weekly waterfall model, for development, will be a step in the right direction.And to top it all of, maybe we should return back to
monkeMonoliths, with a dash of Tests on the side.joey_the_snake
So true (for me, at least).
ragamuf
Thanks for the feedback. I definitely favor the “more” communication option as everyone stands to win.
ragamuf
Funny you should mentioned the experience of testing in Elixir vs some other languages. We definitely have it good in this respect in Elixir.