  Detecting online hate is a difficult task that even state-of-the-art models
struggle with. In previous research, hate speech detection models are typically
evaluated by measuring their performance on held-out test data using metrics
such as accuracy and F1 score. However, this approach makes it difficult to
identify specific model weak points. It also risks overestimating generalisable
model quality due to increasingly well-evidenced systematic gaps and biases in
hate speech datasets. To enable more targeted diagnostic insights, we introduce
HateCheck, a first suite of functional tests for hate speech detection models.
We specify 29 model functionalities, the selection of which we motivate by
reviewing previous research and through a series of interviews with civil
society stakeholders. We craft test cases for each functionality and validate
data quality through a structured annotation process. To illustrate HateCheck's
utility, we test near-state-of-the-art transformer detection models as well as
a popular commercial model, revealing critical model weaknesses.
