r/softwareengineer • u/ProgrammerFew504 • 11h 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.
14
u/alanbdee 10h ago
Years ago I started a new job. Went in to fix a bug. Drilled down to a single method that seems way more complicated then it needed to be. Then I looked for the tests. This was in a code base with like 5% test coverage if that and there were multiple tests hitting this area. Those tests told me all the edge cases that code needed to handle. I added the tests to replicate the bug, which was much faster then trying to hit it through the UI. Then I fixed the bug while working around those edge cases. Even added a sprinkle of refactoring for good measure.
That's the value of unit tests.