Почитай про подход TDD (Test Driven Development если мне не изменяет память). А так, в целом, когда ты пишешь функцию/класс ты всегда должен четко понимать что должно приходить на вход, и как реагировать если пришло что то не то. А, ну и логированием обмазывать все полезно, для отладки.