Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

My current team is the first one in my career as a software engineer in which our testing infrastructure is robust enough to think like this. I just resolved a bug this week by writing a test that failed due to its presence (and leaving a comment with the ID of the bug), changing the code, then re-running the test to ensure that it passed. This confidence in our code base is wonderful; I have never felt so little fear when deploying.

Looking back, it amazes me that I ever didn't develop software this way.



Can you expound on the kind of infrastructure you have in mind? In my experience it's enough to have some tests and a documented way to run them.

(Poorly written tests, though, is another story. Having to spend an hour figuring that out in order to write a new case isn't fun.)


May I ask what language this code base is in?


Probably Ruby. No other language makes testing that easy or fun.


Go does. So does Rust. Both languages have some sort of unit testing facilities packaged with the standard distribution. And both are dead simple to use.


You can't mock out your dependencies as easily in Go as you can monkey patch them in Ruby.

However I've found the explicit error handling in Go to be more valuable in making reliable software than a torrent of test in Ruby, or Java.


The new XCTest in Objective-C is fairly nice as well.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: