Legacy Code is a nightmare to maintain. Escape this by introducing TDD. I created the TDD in the Legacy Code series to help you achieve this step-by-step.
I've heard many developers say that they have integration and unit tests that span the entire system to check that it's working, so why would they need more tests?
When they say they have integration tests, it generally refers to Broad Integration Tests. The problem with Broad Integration Tests is that they don't provide us with component isolation. For example, a Broad Integration test for Microservice 1 is also spanning its dependencies - which might be Microservice 2, Microservice 3 and PayPal. So a Broad Integration Test fails, we have no idea is the problem with Microservice 1 or Microservice 2 or Microservice 3 or PayPal... That's why instead of Broad Integration Tests I like to replace it with Component Tests & Contract Tests, so that Microservice 1 team gets feedback if Microservice 1 works, and each team gets feedback if their component works...
So I wouldn't say "more tests", but rather "instead of". So instead of Broad Integration Tests, we'd have Component Tests and Contract Tests.
I've heard many developers say that they have integration and unit tests that span the entire system to check that it's working, so why would they need more tests?
When they say they have integration tests, it generally refers to Broad Integration Tests. The problem with Broad Integration Tests is that they don't provide us with component isolation. For example, a Broad Integration test for Microservice 1 is also spanning its dependencies - which might be Microservice 2, Microservice 3 and PayPal. So a Broad Integration Test fails, we have no idea is the problem with Microservice 1 or Microservice 2 or Microservice 3 or PayPal... That's why instead of Broad Integration Tests I like to replace it with Component Tests & Contract Tests, so that Microservice 1 team gets feedback if Microservice 1 works, and each team gets feedback if their component works...
So I wouldn't say "more tests", but rather "instead of". So instead of Broad Integration Tests, we'd have Component Tests and Contract Tests.