functional tests (positive/negative, UI) smoke tests regression tests integration tests API Database end to end testing data driven