1. TestNG provides parallel execution of test methods
2. It allows to define dependency of one test method over other method
3. It allows to assign priority to test methods
4. It allows to grouping of test methods into test groups
5. It has support for parameterizing test cases using @Parameters annotation
6. It allows data driver testing using @DataProvider annotation
7. It has different assertions that helps in checking the expected and actual results
8. Detailed (HTML) reports
9. TestNG Listeners