it seems that many articles treat unit testing, integration testing, end-to-end testing, and functional testing as UI testing through headless browsers.
so I want to make it clear, what is the difference between the tests? what is the purpose of these tests?