It's difficult to determine how much time to spend reviewing and testing your code before checking it in to the team's shared code base. On the one hand, you want to complete and check in code as rapidly as possible so you can meet deadlines and move on to developing new code or getting started on other projects. After all, you went into software development to develop, not to test.
Yet, if you move too fast, you might end up checking in code that causes bugs-immediately upon integration, or later on when the code is reused, extended, or maintained. In that case, any time that you originally saved by checking in the code prematurely is significantly outweighed by the time you need to spend diagnosing the problem, correcting the responsible code (and possibly code that has been layered upon that code), and verifying the correction- not to mention the hassle of having to interrupt whatever you're currently working on and return to something you previously wrote off as "done" and forgot about.