Unit Test vs Functional Test
Test types
Unit testing- InProcedural programmingunit is a procedure, inObject oriented programmingunit is a class. Unit is isolated and reflects a developer perspectiveFunctional testing- more thanUnit. User perspective, which describes a feature, use case, story...Integration testing- check if all separately developedcomponentswork together. It can be other application, service, library, database, network etc.Narrow integration test- double[About] is used. The main purpose is to check if component is configured in a right wayBroad integration test(End to End test, System test) - live version. The main purpose is to check if all components are configured in a right wayUI testing- checks if user input triggers a correct action and the UI is changed when some actions are happenedSmoke test- used to get a sense for whether or not there is some major break in the system. Smoke tests are by convention not all-inclusive, thorough test suites, but a select subset that can be run quickly and give a developer a decent idea of the health of all parts of the system.Non functional testing- other casesPerformance testing- calculate a speed and other metricsUsability testing- UX- ...
- Functional tests should only break if we are intentionally changing functionality of the system, whereas unit tests could break during a refactoring or an implementation change.