RU

Все пять safety-свойств Raft прошли. Две реплики разошлись

Реализация Raft на TypeScript под сидированной симуляцией: каждый тик, каждая задержка сообщения и каждое падение узла берутся из сида. На двадцать…

raftконсенсусдетерминированное тестированиемутационное тестированиеmodel checkingлинеаризуемостьизоляция транзакцийpostgresqltypescript.
Habr
RU

Мой тестовый харнесс нашёл баг в моей же реализации Raft. Рассказываю, как именно

Набор тестов, который всегда зелёный, содержит непроверяемое допущение: он может ловить ошибки, а может не смотреть вообще — по цвету это неразличим…

raftконсенсусдетерминированное тестированиераспределённые системытестированиелинеаризуемостьотказоустойчивостьtypescript
Habr
RU

Как тестируют баги, которые невозможно воспроизвести

Редкий сбой в распределённой системе может месяцами ускользать от команды, а при попытке воспроизведения исчезать из‑за изменивш…

детерминированное тестированиераспределённые системывоспроизводимость ошибокотказоустойчивостьасинхронные системыконкурентное выполнениеfault injectionфаззингFoundationDBTigerBeetle