New Open-Source Python Package Simplifies Computerized Adaptive Testing (CAT)

Introducing adaptivetesting — an open-source Python package developed in our department. This software bridges the gap between CAT simulation and experimental application, offering customizable Bayesian estimation and cross-platform R compatibility.

Logo des Python-Pakets adaptivetesting

Illustration: Linda Polten
Logo des Python-Pakets adaptivetesting

We are excited to introduce adaptivetesting, a new open-source Python package designed to streamline the creation, simulation, and deployment of Computerized Adaptive Testing (CAT).

Computerized Adaptive Testing customizes assessments in real-time, tailoring item difficulty to the user's estimated ability level based on their previous answers. While highly efficient, implementing CAT has traditionally required complex programming or reliance on software outside the Python ecosystem. This new package directly addresses that gap by introducing sophisticated, Bayesian-driven ability estimation to Python users.

Tutorial Paper Published in Behavior Research Methods

A comprehensive tutorial paper detailing the package has been published in Behavior Research Methods as part of the special issue "Combining Adaptivity and Bayesian Methods in Empirical Behavioral Research." The paper outlines the theoretical relevance of the tool and provides a practical, step-by-step walkthrough example to guide researchers through its implementation.

Engicht, J., Bee, R.M. & Koch, T. Customizable Bayesian adaptive testing with Python – The adaptivetesting package. Behav Res 58, 250 (2026). https://doi.org/10.3758/s13428-026-03079-wExterner Link 

Bridging the Gap Between Simulation and Practice

A key innovation of the adaptivetesting package is its ability to bridge the gap between theoretical test simulation and practical application.

Traditionally, researchers face major hurdles and extensive code rewrites when transitioning an adaptive test from a simulated environment to a real-world experiment. This package eliminates that friction by providing a dedicated API for direct integration with experiment software, allowing for a seamless transition from the lab to live testing.

Key Features of the Package

  • Customizable & Extendable: Built on Python’s object-oriented programming principles (using abstract classes, protocols, and inheritance), the package is highly adaptable. Researchers can easily modify functionalities, such as customizing priors for Bayesian estimators.
  • Cross-Platform Compatibility: While native to Python, the package features cross-language support. By leveraging R's reticulate package, researchers can access and run adaptivetesting directly within RStudio.
  • Accessible & Fully Documented: The paper includes a complete walkthrough example demonstrating its practical relevance.

Availability

The package is fully open-source with its source code hosted on GitHub. It is available for immediate installation via Python’s standard package manager pip or via conda-forge.