Functional test vs unit test