Evgeny Poberezkin
Feb 24, 2017 · 1 min read

Alexei Kovalev I don’t like slow running integration tests… The amount of instability they usually have (or efforts required to make them stable) very much undermine their efficiency. But I like writing tests with very wide coverage (as opposed to the unit tests) and without external dependencies (as opposed to integration tests) — they usually run very fast and also do not lock the design making refactoring simple.

Even 100% coverage doesn’t guarantee that all the scenarios are tested and the code is bug free. The opposite is true though, the coverage less than 100% guarantees that there are untested scenarios. So for the lack of a better metric I’ll continue to use it as a rough indication of sufficiency of tests.

As one of of my colleagues said, “I believe there’s no “one testing way to rule out all problems” and every project, UI or back end, polyfill of library, should be flexible enough to grant quality, whatever it takes to achieve that.” I agree with that and I was provocatively suggesting coverage as a main development driver as something that makes as much sense as TDD (or maybe just a bit more).

But using coverage is very important, as Isaac Schlueter (creator of npm and one of the main contributors to nodejs) wrote: “running tests with coverage changes the way that you think about your programs, and provides much deeper insight.” I can’t agree more, it did change the way I think about code.

    Evgeny Poberezkin

    Written by

    CTO @ Threads (https://www.threadsstyling.com/)

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade