UniTESK is a technology for testing application program interfaces (API) which is primarily designed for unit testing. UniTESK stands for Unified TEsting Specification based toolKit. UniTESK uniformity is provided by the fact that the common testing methodology and general architecture can be implemented for testing modules written in almost all programming languages. Currently there are UniTESK implementations for such languages as C (CTESK), C++ (C++TESK), Java (JavaTESK and Summer), Python (PyTESK).
UniTESK technology has two major differences from the common testing tools:
- UniTESK allows to describe the specification of software modules contract in the form of pre- and post-conditions for extensions of programming languages (for C++TESK case extension is not required);
- instead of manual development of test cases UniTESK allows to describe the so-called generalized scenario - a compact description of the test logic, which allows the test sequence generator to automatically call each specified interface in all of its use cases and to verify whether the result matches the required postcondition.
The closest analogue for UniTESK is Microsoft Spec Explorer tool. Unlike Spec Explorer UniTESK tools are open source and can be easily used on all software platforms.