0

Getting over integration/end-to-end testing ‘fatigue’

Profile picture
Software Engineering Intern at Taro Community5 months ago

Every time I complete a project (regardless of setting), integration (or end-to-end) testing is the task I least look forward to. In my mind, I’ve probably spent weeks building and individually testing each component, sometimes testing 2 or 3 components simultaneously. By the end of the project, I feel tired and just want to work on something new, so I rush to the finish line and call it a day the moment I get all my components working together.

I’ve seen the course on creating a test plan. I tried implementing this, but as mentioned above, by the time I’ve gotten to this stage, I’m so fed up with the project where I just write a couple of basic tests and tell my boss I’m done.

As much as I have an icky feeling shipping something I don’t know is fully working, I also feel so tired and just want to move on to the next thing.

One solution I tried was using automated tests (sort of like TDD to a certain extent) - I’d set up some expected behaviors at the start of the project and run these integration tests at the very end. It’s great if it works - making it automated significantly reduces friction of running the tests, and you get to ‘eat the frog’ by coming up with a more comprehensive set of tests at the start.

The bad part is it only works if you can get automated testing to work. Most times integration testing gets tricky to automate, especially if you can’t mock out stuff like networking code and databases. Automated tests also take time to maintain. As a result I tend to forgo automated testing.

A naive approach is to apply my strategy but instead of doing automated testing, just do it manually. The issue is that it feels painful having to verify correctness manually. And it’s especially discouraging if you manually verify your code to be wrong.

So what are some solutions that can help me get over that last mile? Any suggestions for some low friction ways to set up tests without using automated testing?

40
1

Discussion

(1 comment)
  • 1
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    5 months ago

    Are tests required? It seems like the testing infrastructure for your company isn't very good, which makes sense as most companies get automated testing infrastructure wrong. If they're not required, is it possible to just not do them?

    If tests are required and you are unable to fix the crappy dev environment (likely as you're just an intern), my recommendation (if possible) is to split up the pull requests:

    1. The 1st PR is for the feature code, and you just thoroughly test manually to create the test plan
    2. The 2nd PR is a fast-follow PR solely focusing on adding the automated tests