# P03-B. Acto: проверки и уменьшение - **Версия и дата проверки:** 1.1, 07.09.2026. - **Статус:** готово к назначению. ## Статья и исходные материалы - **Основная статья:** Jiawei Tyler Gu и соавт. — [Acto: Automatic End-to-End Testing for Operation Correctness of Cloud System Management](https://research.ibm.com/publications/acto-automatic-end-to-end-testing-for-operation-correctness-of-cloud-system-management). SOSP 2023. - **Кратко о статье:** Операторы Kubernetes должны многократно приводить управляемую систему к объявленному состоянию, поэтому отдельные тесты обработчиков не покрывают поведение длинных последовательностей операций. Acto представляет операции как переходы состояния и автоматически проверяет, достигла ли система требуемого состояния. В проекте основной акцент сделан на качестве сквозных проверок состояния и уменьшении найденной последовательности до воспроизводимого объяснения сбоя. - **Почему результат актуален:** Acto продолжает развиваться и применён уже к одиннадцати операторам; [работа NSDI 2026 о надёжности операторов](https://www.usenix.org/conference/nsdi26/presentation/gu) подтверждает, что ошибки во взаимодействии оператора с управляемой системой остаются существенным классом отказов. - **Артефакты и данные:** [xlab-uiuc/acto](https://github.com/xlab-uiuc/acto) под Apache-2.0, с локальными режимами Kind, Minikube и K3d, воспроизводимыми ошибками и конфигурациями реальных операторов. При [проверке артефакта](https://sysartifacts.github.io/sosp2023/summaries/acto) подтверждены его доступность, работоспособность и воспроизведение результатов. Зафиксированная основная ревизия: `xlab-uiuc/acto@a0d0fb7bb840` (Apache-2.0). - **Что уже предоставляет артефакт:** Acto предоставляет генерацию и проигрывание последовательностей, встроенные проверки, конфигурации операторов и примеры ошибок. Их можно использовать как стенд и исходные тестовые последовательности. ## Обязательный результат - **Проверяемый вопрос или утверждение:** Сквозная проверка состояния и автоматическое уменьшение последовательности превращают сбой оператора в воспроизводимый диагноз; качество результата зависит от полноты наблюдаемого состояния и правил эквивалентности сценариев. - **Технический результат:** Развернуть небольшой оператор и управляемую систему в Kind. Реализовать две независимые проверки — достижения желаемого состояния и предметного инварианта — и средство уменьшения ошибочной последовательности с сохранением сбоя. - **Обязательное приращение команды:** Реализовать предусмотренные заданием две проверки и средство структурного уменьшения с сохранением сбоя, собрать набор из не менее пяти ошибок и сравнить его с исходными последовательностями и удалением суффикса. Собственные проверки и алгоритм уменьшения оцениваются отдельно от встроенных возможностей Acto. - **Эксперимент:** На наборе не менее чем из пяти известных или намеренно внесённых ошибок сравнить исходные последовательности без уменьшения как baseline, удаление суффикса и структурное уменьшение. Измерить долю воспроизведённых сбоев, длину результата, число перезапусков, время и ложные срабатывания проверок. - **Границы выводов:** качество проверок и уменьшения оценивается на выбранных известных или намеренно внесённых ошибках; результат не определяет точность на неизвестных естественных сбоях и других операторах. - **Ресурсный профиль:** расширенно локально, Linux, Docker, Kind, CPU, желательно 16 ГБ памяти. Если выбранный оператор слишком тяжёл, использовать демонстрационную конфигурацию Cassandra либо собственный минимальный оператор с намеренно внесёнными ошибками согласования. ## Содержательные направления - локальный оператор и набор ошибок. - проверки состояния и эталонная разметка. - алгоритмы уменьшения, повторные запуски и анализ ошибок. ## Возможное продолжение Добавить причинно-зависимое уменьшение, новый вид проверки, восстановление после промежуточного сброса состояния или перенос на второй оператор.