Unit testing and integration testing