Testing is a huge time and cost consuming task in software development. Moving most of the testing strategies from manual to automation has significantly reduced time and efforts a lot. Still, regression testing pays a lot in time, effort and cost for testing the whole software for each change in the code. Thus, test case prioritization is highly researched and improved domain in last decade which covers and prioritizes all the test cases for early fault detection and cost saving. In this paper, 27 scholar articles are reviewed ranging from year 2000 to 2019. Objective of this paper is to review and compare top TCP approaches for their strengths and limitations. This comparative study will be beneficial for beginners and experts in the domain of TCP for further study.