Привет, сообщество Discourse! ![]()
Я работаю над технологией Colimit, которая помогает применять тестирование на основе моделей для проверки фронтенда веб-приложений/браузеров/DOM, бэкенда API, а также ORM-моделей или моделей представлений. Если вы не знакомы с этой концепцией, то суть в следующем: вы определяете высокоуровневую спецификацию того, что должно делать ваше приложение, в терминах возможных действий, и на её основе получаете сотни или тысячи последовательностей допустимых действий пользователя (т.е. пользовательских сценариев). Эти сценарии могут интеллектуально исследовать большое пространство состояний и находить ошибки, которые трудно обнаружить с помощью написанных вручную тестов.
Я завершил фазу использования Colimit на небольших примерах и подумал, что Discourse может стать отличным кандидатом для следующей проверки, поскольку это сложное приложение, работающее в продакшене, и при этом полностью с открытым исходным кодом, что упрощает эксперименты. Интересная особенность Colimit в том, что он написан абстрактно, поэтому одну и ту же спецификацию/модель можно переиспользовать (написав адаптеры) для различных стилей тестирования: например, тесты API Discourse через gem, интеграционные тесты с использованием Capybara или дымовые тесты с помощью Puppeteer и т.д.
Прежде чем начать, я хотел бы узнать: может ли кто-то из сообщества Discourse указать области приложения, которые в настоящее время являются основными источниками ошибок или имеют недостаточное покрытие, и на которых стоит сосредоточить время?
Также, просто из любопытства, я буду благодарен за любые ответы от тех, кто считает эту идею интересной и видит потенциальную ценность для тестирования проекта Discourse, или если мнение таково, что текущее состояние тестирования уже достаточно хорошее (в этом случае всё равно есть потенциальная ценность в обслуживании, поскольку можно заменить вручную написанные тесты теми, которые могут быть автоматически сгенерированы на основе модели).
Спасибо!