TestNG is a testing framework for the Java programming language. The design goal of TestNG is to cover a wider range of test categories: unit, functional, end-to-end, integration, etc., with more powerful and easy-to-use functionalities.
TestNG’s main features include:
– Annotation support.
– Support for parameterized and data-driven testing (with @DataProvider and/or XML configuration).
– Support for multiple instances of the same test class (with @Factory)
– Flexible execution model. TestNG can be run either by Ant via build.xml (with or without a test suite defined), or by an IDE plugin with visual results. There isn’t a TestSuite class, while test suites, groups and tests selected to run are defined and configured by XML files.
– Concurrent testing: run tests in arbitrarily big thread pools with various policies available (all methods in their own thread, one thread per test class, etc.), and test whether the code is multithread safe.
– Embeds BeanShell for further flexibility.
– Default JDK functions for runtime and logging (no dependencies).
– Dependent methods for application server testing.[clarification needed]
– Distributed testing: allows distribution of tests on slave machines.
Thus, testing will be more effective using a tool like TestNG.
Alex Lozitskyi
QA-Engineer of Bineks