turn a failing integration test into failingYou may need more than one. unit tests;
if a function/method fails its unit test, turn the failing test into unit tests for all the functions/methods that it calls.
eventually this "divide and conquer" method locates the bug in a narrow slice of your code. Focus on this "slice" for bug fixes.
In other words, systematic debugging is just like systematic coding. It sounds like it takes extra time but in the end it will save you time because you’re guaranteed to get to the goal.