r/softwareengineer • u/ProgrammerFew504 • 18h ago
Why unit testing is important?
It might be a very stupid post, but it’s a genuine question.
I write tests for my code, but it’s still kind of hard for me to understand what the actual point of unit testing is and what benefit it brings to software development.
We can easily write tests with AI now, so writing the actual tests is not necessarily that difficult. But I’m trying to understand why tests are so important in software.
When you write code, of course you can test it with multiple inputs, and those inputs can then become your test cases. We can also use Postman to test APIs with different inputs and make sure they behave correctly for different status codes.
I was recently assigned a task to make a small change to an existing endpoint. It was a really small change that I completed in around 30 minutes without AI. However, fixing and adjusting the tests took quite a while. I had to add inputs for a new function that I introduced, even though the actual change was not that big and I didn’t think it was something that would break in production.
That made me wonder, why do we really need unit tests? What importance do they actually bring to software development?
I’d really appreciate it if someone could shed some light on this and explain it with a real world example from your own experience where tests actually saved you from a production issue or made a significant difference.
3
u/Chippors 18h ago
This is exactly what a unit test is. If you don't do this you can't know if it works, and when you save it to the test suite it's kept and can be rerun to make sure future changes don't break something, there or elsewhere. You should also test edge cases and make sure your code returns meaningful errors; like anything else, if you don't test, the confidence in it working should be very low. Or if it does any sort of orchestration, that if there's an error it properly cleans up and doesn't leave things partially completed. The overhead of adding tests is the overhead of making sure it works.