Asercja () – predykat (forma zdaniowa w danym języku, która zwraca prawdę lub fałsz), umieszczony w pewnym miejscu w kodzie. Asercja wskazuje, że programista zakłada, że ów predykat jest w danym miejscu prawdziwy. W przypadku gdy predykat jest fałszywy asercja powoduje skutki zdefiniowane przez dany język lub zmienne środowiskowe programu. Może to być przykładowo jego przerwanie z odpowiednim wyjątkiem lub zalogowanie informacji.
Istotną własnością asercji, która odróżnia ją od wyjątków, jest założenie (choć nie zawsze wymuszane technicznie), że sprawdzany predykat nie może wystąpić i jej wykonanie dowodzi niepoprawność programu.
Historia asercji w oprogramowaniu sięga lat 50. XX wieku, gdy Alan Turing zauważył istotę weryfikacji poprawności programu komputerowego. Zautomatyzowanie tego procesu zostało zaproponowane i wprowadzone w drugiej połowie lat 60. XX wieku. Koncepcja asercji jest związana z rozwojem formalnych metod weryfikacji programów (zob. asercja (logika)). W 1969 roku Hoare opisał system logiczny wykorzystujący tzw. trójki Hoare'a do formułowania i dowodzenia własności programów.
Zastosowania
W programowaniu kontraktowym Asercje są jednym z podstawowych mechanizmów programowania kontraktowego.