The goal of the Avocado project, as a generic test automation framework, is to provide a solid foundation for software projects to build their testing needs on. With Avocado, common testing problems are solved at the framework level, and developers can spend more of their time writing tests that, by default, will adhere to best practices. Avocado has support for different test types that could be written in different programming languages.
Despite Avocado being written in Python, developers are not tied to one specific language or the language native unit test tools. Because most software projects are complex and can encompass multiple languages, Avocado can serve as a centralized point for running tests and presenting test results. One of the common problems that Avocado solves at the framework level (and thus makes it available to all test types), is the ability to pass parameters to tests in a uniform way. When tests are written to cover complex software, parameters abound. The execution of tests with different parameters to maximize coverage while optimizing test execution time tends to be a big problem in itself. Avocado is unique in the sense that it includes, out of the box, a Combinatorial Independent Testing (CIT) solution developed in collaboration with professor Bestoun S. Ahmed. With that, any test type that Avocado is made aware of, can make use of, among other things a very capable CIT solution.