Why people don't write tests?

People don't write tests for the following reasons:

  • lack of knowledge on how to do it

  • their code is not testable

  • fear of being judged due to their own ignorance

  • lack of a competent person in the team (e.g. tech lead) who is aware of the benefits of writing tests

Usually, this is accompanied by additional excuses such as:

  • why bother, it works anyway?

  • I tested it manually

  • I don't have time for that

  • it's too much work

  • what will it actually give me?

  • nobody writes tests in other companies either

  • this application is not widely used

Unfortunately, this is the reality in many cases, but it can be changed.

Why test at all?

It is enough to reverse the previously given examples and everything will immediately make sense. The following steps should be taken:

  • acquire knowledge on how to test code

  • improve programming skills. Writing tests requires good quality code. Otherwise, tests become very complex and time-consuming.

What do we gain when we write tests?

  • detecting errors during development

  • we have confidence that our code works (if properly tested)

  • we don't have to test anything manually - tests check the application for us

  • we immediately detect regression errors

  • we write better, maintainable code

  • in the long-term perspective, we save enormous amounts of time

  • we sleep more peacefully :)

When not to test?

There are situations where writing tests is not advisable.

In the case of creating a prototype or MVP, we want to deliver a solution as quickly as possible. Such code will probably be heavily modified or completely unnecessary. Therefore, testing it would be a waste of time.

When dealing with "legacy code", testing may prove to be very complicated or impossible. Such code requires refactoring or complete rewriting.