Корпоративное ПО
Java (Spring), React JS
В рамках NDA мы не можем раскрывать информацию о компании-заказчике, но расскажем о созданном решении и его возможностях.
У клиента есть платформа онлайн-рекрутинга. Ранее для тестирования кандидатов на работу использовался сторонний сервис. Однако со временем возникли сложности:
В итоге было принято решение создать собственный сервис, при этом:
Одним из ключевых элементов тестирования стало PST-тестирование (заочные тесты, подтверждающие профессиональные навыки соискателей). Кандидаты, успешно их прошедшие, получали зелёный маркер в профиле, что помогало работодателям быстрее находить подходящих специалистов.
Система включала два типа заданий:
Компания обратилась к нам, основываясь на успешном опыте совместных проектов, для разработки именно PST-части системы.
Аналитика и статистика
Методологам, разрабатывающим тесты, требовались инструменты для анализа вопросов:
Интеграция с существующей системой
Компания уже реализовала часть функционала для проверки кода на Python и Java. Нам нужно было учесть эти наработки, наладить взаимодействие с внутренними командами и встроить практическую часть в общую систему.
1. Разработка интерфейса для создания, редактирования и управления тестами.
2. Поддержка различных типов вопросов: одиночный/множественный выбор, программирование, формулы, мультимедиа.
3. Интеграция с существующей инфраструктурой, чтобы данные передавались бесшовно.
4. Сохранение всей предыдущей статистики пользователей.
5. Адаптация системы для работы в мобильных приложениях и браузерах.
6. Добавление инструментов аналитики для методологов.
«Наша цель заключалась в создании единой, хорошо интегрированной системы, которая бы объединяла все эти процессы и была удобной для всех участников: методологов, пользователей и внутренней команды клиента.» Виталий Трясцин, руководитель проекта
Мы начали с детального анализа, чтобы понять, как решение будет взаимодействовать с текущей инфраструктурой клиента. На основе этого исследования мы составили подробную дорожную карту (роадмап) проекта, разбив его на три ключевых этапа:
После этого мы проработали логику работы системы. Мы хотели сделать процесс понятным и удобным, поэтому всё построили на чёткой последовательности шагов:
1. Контент-менеджеры добавляют вопросы в базу, указывая к ним теги и правила.
2. Система автоматически формирует персонализированный тест для каждого пользователя.
3. Пользователь проходит тестирование, а его результаты отправляются в аналитику.
Кроме того, чтобы клиенту было легче понять, как будет работать система, мы создали концепт-проект. В нём детально проработали:
Этот концепт позволил ещё до начала разработки показать заказчику, что именно он получит, и избежать возможных недопониманий.
Мы разработали систему, которая позволяет легко управлять списком заданий и формировать персонализированные опросники для пользователей. В её основе лежит механизм тегов и чёткая структура статусов вопросов.
Сначала создаётся банк данных. Например, в базе для тестирования по Python могут быть задания по таким темам, как:
Каждому вопросу присваиваются тематические теги, которые помогают распределять их по категориям. Это даёт возможность собирать тесты, соответствующие нужной тематике.
Для удобства администрирования мы внедрили систему управления статусами:
Методологи могут настраивать правила выбора вопросов. Например, тем по Python должен включать в себя:
Когда пользователь запускает тест, система на основании правил создаёт уникальный набор вопросов, называемый контекстом:
«Эти правила важны по нескольким причинам. Во-первых, контекст позволяет получить уникальный набор заданий. Это важно чтобы разные пользователи получали разные тесты и не могли друг другу подсказать верные ответы. Во-вторых, благодаря случайной выборке вопросов из базы, система всегда обновляет задания, что снижает риск утечек или повторений. И наконец, контроль качества, который включает управление статусами и их архивацию, помогает поддерживать актуальность, а также сохраняет данные о пользователях для анализа и улучшения тестирования. Сохранение контекста также важно для обработки рекламаций. Например, если пользователь не согласен с результатами своего теста - то методолог легко может понять какие именно вопросы были у, как он на них отвечали. Это позволит определить, оправдана ли жалоба пользователя или нет.» Виталий Трясцин, руководитель проекта
Каждому тесту устанавливается ограничение по времени. Например, 10 вопросов – 10 минут. Однако система учитывает возможные сбои и непредвиденные ситуации:
Мы значительно расширили функционал тестирования, добавив поддержку мультимедийных материалов: аудио, видео и изображений.
Ранее система не поддерживала математические выражения, что усложняло создание технических тестов. Мы внедрили поддержку LaTeX — мощного инструмента разметки, который позволяет чётко и аккуратно отображать формулы. Чтобы методологам не приходилось разбираться в технических тонкостях, мы разработали удобный редактор, позволяющий добавлять математические выражения без знания кода LaTeX. Это значительно упростило процесс создания вопросов и сделало систему более гибкой.
Для тестов, связанных с программированием, мы реализовали подсветку синтаксиса, которая делает код более читаемым. Теперь важные элементы, такие как ключевые слова, переменные и операторы, выделяются цветом, что помогает кандидатам лучше воспринимать задачи. Использовали библиотеку Markdown, которая автоматически форматирует вставленный код. Это упростило работу контент-менеджеров: теперь достаточно просто вставить код в вопрос, и система сама оформит его корректно.
Так как значительная часть пользователей заходит на платформу с мобильных устройств, мы сделали систему полностью адаптивной. Интерфейс автоматически подстраивается под размер экрана, обеспечивая комфортное взаимодействие как на смартфонах, так и на планшетах. Это особенно важно для пользователей, проходящих тестирование в дороге или в ограниченных условиях. Теперь система гарантирует удобный и плавный процесс работы независимо от используемого устройства.
Мы создали сервис, который легко интегрируется в текущую инфраструктуру клиента. Добавили новые функции, сделав систему удобнее.
Что улучшилось
Система гибкая и поддерживает различные типы заданий:
Классические:
Задачи по программированию:
Java, React, GitHubFlow
Этот кейс — пример современного, удобного и масштабируемого онлайн-решения для тестирования сотрудников, позволяющего проводить оценку навыков и компетенций.