РУБРИК · портал

← Ко всем документам

Рубрик — руководство тестировщика

Для человека, который видит проект впервые. Читать сверху вниз: сначала что это такое и из чего состоит, потом словарь, потом тест-кейсы.

Ничего не нужно знать про код. Нужен ноутбук, полчаса и внимательность.


Часть 1. Что это за продукт

Рубрик — образовательный робототехнический набор для школ. Ребёнок собирает робота и пишет для него программу: сначала из блоков (как в Scratch), потом на настоящем Python.

Аналог LEGO EV3, но «мозг» робота — не специальный блок, а обычный Android-телефон.

Из чего состоит одна работающая связка

Ноутбук ученика  ──Bluetooth──▶  Телефон на роботе  ──USB-кабель──▶  Модуль робота
   (пишет программу)               (выполняет её)                    (крутит моторы)

Ноутбук учителя  ──Wi-Fi класса──▶  ноутбуки учеников
   (класс, ученики, курсы)

Четыре разные программы, и тестируются они по-разному:

ЧтоГде работаетЗачем
Приложение учениканоутбук (Windows/macOS)ребёнок пишет и запускает программу
Приложение учителяноутбук учителясписок класса, ученики, курсы, права
Приложение роботаAndroid-телефонпринимает программу и выполняет её
Порталсайтучитель скачивает курсы и обновления

Это руководство — про приложение ученика и его связку с учительским. Телефон и модуль нужны только там, где сказано явно.

Три вещи, которые важно понять до тестов

1. Интернет не нужен. Совсем. Урок обязан идти в классе без сети: ребёнок пишет программу, запускает её на роботе, видит результат. Сеть нужна только учителю — чтобы видеть класс. Если что-то ломается без интернета, это баг.

2. Ноутбук общий. За одним компьютером сидят разные дети в разные дни. Поэтому приложение никогда не запоминает, кто вошёл, — каждый урок ребёнок выбирает себя заново.

3. Устройство один раз спрашивают, где оно стоит. «В классе» — ученики и курсы придут от учителя. «Самостоятельно» — всё хранится локально. Вопрос задают ровно один раз за устройство.


Часть 2. Словарь

Термины встречаются в интерфейсе и в отчётах о багах. Пользуйся ими — так тебя поймут.

ТерминЧто это
Ученик / профиль / карточкаодин ребёнок в приложении. У него имя, фамилия, аватар и, возможно, PIN
Группакласс, кружок или секция. Каждый ученик всегда в какой-то группе
Локальная группагруппа, которую приложение создаёт само, если учителя нет. В ней живут ученики самостоятельного режима
PINчетыре цифры, чтобы войти под своей карточкой. Необязателен — карточка может быть без него, и это не баг
Роботтелефон с приложением робота плюс модуль с моторами
Виртуальный роботпрограммная имитация робота на самом ноутбуке. Позволяет запускать программы без железа
Сопряжение (pairing)разовое рукопожатие между ноутбуком ученика и ноутбуком учителя. После него приезжают ученики и курсы
Код (при сопряжении)короткая строка, которую ученик сверяет с экраном учителя. Совпали — соединение то самое
Мастерскаяэкран, где ребёнок собирает программу из блоков и запускает её
Блоки / Pythonдва режима программирования. Переход с блоков на Python необратим для конкретного проекта
Автопроверкапроверяет, выполнил ли ребёнок задание урока, по данным прошедшего запуска
Телеметрияпоток данных от робота: скорость моторов, заряд, ошибки
Курс / урокучебный материал. Создаёт учитель, ученикам приезжает по сети класса
Режим устройства«В классе» или «Самостоятельно». Задаётся при первом запуске, меняется в настройках
Драйвер экрановинструмент разработки: открывает нужный экран одной командой. Тестировщику не обязателен

Слова, которые в интерфейсе быть НЕ должны

Правило проекта: строка живёт, только если меняет следующее действие читателя. Если видишь такое — это находка, сообщай:

Проверка одной строкой: закрой её пальцем. Если следующий клик не изменился — строка мёртвая.


Часть 3. Подготовка

Что нужно

Установка

Установщики лежат на портале, вход не нужен: https://rubrick.beys.tech/downloads

Там два приложения — «Рубрик» (ученик) и «Рубрик — учитель». Для веток A, B, E, F хватит ученического; для C и D нужны оба.

Учительское приложение называется так же, но начинается с teacher-.

Рядом с каждым установщиком лежит файл .rbu — это не установщик, а пакет обновления для раздачи с флешки. Для установки он не нужен, качай .exe или .dmg.

Остальные документы (включая этот) — https://rubrick.beys.tech/docs

Если тестируешь из исходников, тебе дадут команды отдельно.

Сброс к «первому запуску»

Многие проверки начинаются с чистого устройства. Закрой приложение, потом удали базу.

macOS:

rm -f ~/Library/Application\ Support/student-app/rubrick.db

Windows (PowerShell):

Remove-Item "$env:APPDATA\student-app\rubrick.db" -ErrorAction SilentlyContinue

⚠️ Файл db.key.enc рядом не трогать — это ключ шифрования. Без него новая база не откроется.

⚠️ Не удаляй базу при запущенном приложении — оно этого не переживёт.


Часть 4. Тест-кейсы

Шесть веток. A и B — без учителя. C и D — с ним. E и F — отдельные ситуации.

Ветки A–D начинаются со сброса базы: вопрос про режим задают один раз за базу.

Как отмечать: каждый шаг — «прошёл» или «не прошёл». Если не прошёл, пиши: что сделал → что ожидал → что увидел, и прикладывай скриншот. Расхождение с колонкой «ожидание» — это находка, даже если кажется мелочью.

Ветка A — самостоятельный режим (учитель не нужен)

Домашний сценарий: ребёнок с ноутбуком и без школы.

№ДействиеОжидание
A1Сбросить базу, запустить приложениеЭкран «Где работает этот компьютер?» с двумя карточками
A2«Самостоятельно»«Выбери свою карточку»: поиск, «ГРУППЫ», чип «Локальная группа»
A3Закрыть приложение, запустить сноваВопрос про режим не появляется — сразу выбор карточки
A4Чип «Локальная группа» → «Добавить ученика» → «Сохранить» с пустыми полями«Напиши имя и фамилию — без них карточку не создать»
A5В поле «Имя» только пробелы → «Сохранить»То же сообщение
A6Имя, фамилия, PIN из двух цифр → «Сохранить»«PIN — это ровно четыре цифры. Допиши его или оставь поле пустым.» Карточка не создаётся
A7Дописать PIN до четырёх цифр → «Сохранить»Карточка появилась в группе
A8«Добавить ученика» → те же имя и фамилия → «Сохранить»«Такая карточка уже есть. Твоя — выбери её; другого человека — сохрани ещё раз»
A9«Сохранить» ещё раз, ничего не меняяКарточка-тёзка создана. Так и задумано: два ребёнка могут быть тёзками
A10Ещё карточка: имя, фамилия, PIN пустойСоздана
A11Выбрать карточку без PINСразу экран робота, PIN не спрашивают
A12Вернуться, выбрать карточку с PIN, ввести неверныйТочки краснеют, «Неверный PIN-код, попробуй ещё раз»
A13На экране PIN нажать «Это не я — выбрать другую карточку»Возврат к выбору карточек
A14Снова войти в карточку с PIN, ввести неверный 5–6 раз подрядМежду попытками появляется задержка. Навсегда заблокировать не должно

Ветка B — работа без робота и без сети

Продолжается из A, базу не сбрасывать. Проверяет, что автономное устройство самодостаточно.

№ДействиеОжидание
B1Экран робота: посмотреть на две кнопки внизуОбе активны: «Найти робота» и «Виртуальный робот». Серых нет
B2«Найти робота» (робота рядом нет)«Роботов не нашлось» и два шага, что сделать. Инструкция ровно одна, не повторяется
B3«Виртуальный робот»Главный экран
B4Посмотреть на главный экранКарточки «Продолжить урок» нет — проходить нечего. Нигде не должно быть «0% выполнено»
B5Меню слева → «Курсы»«Курсы появятся после синхронизации» и кнопка. Разделов-заглушек («скоро», «в разработке») быть не должно
B6«Настройки» → «Синхронизация»Текст совпадает с индикатором в шапке. Противоречия быть не должно
B7«Настройки» → «Режим устройства»Написано «Самостоятельно»
B8«Главная» → «Новая программа»Диалог с «Блоки» и «Python». Рекламных подписей быть не должно
B9«Блоки» → собрать: старт → вперёд 20 см → поворотСправа появляется код на Python
B10«Старт»Программа идёт, видна телеметрия, кнопка становится «Стоп»
B11Собрать длинную программу (повтор 20 раз), «Старт», затем «Стоп»Останавливается сразу, не досматривая до конца
B12Уйти в «Проекты» и вернуться в мастерскуюПрограмма на месте. В списке проектов один проект, не два
B13Создать новый проект → «Проверить работу» до запускаКнопка называет условие («Сначала запусти») и сама запускает

Ветка C — класс, учитель работает

Главный школьный сценарий. Сбросить базу. Запустить учительское приложение.

№ДействиеОжидание
C1Учитель: создать класс, добавить 2–3 учеников. Записать PINPIN показывают один раз и больше никогда
C2Учитель: вкладка «Подключение» → открыть сопряжениеВиден код и срок
C3Ученик: чистая база → «В классе»Сразу поиск учителя. Создавать карточку не требуют
C4ДождатьсяУчитель находится сам. Если он один — сопряжение начинается автоматически
C5Учитель: подтвердить устройствоУ ученика «Готово! Устройство сопряжено» и код
C6Сверить код с экраном учителяСовпадают
C7«Продолжить»Экран выбора карточки, а не главный: ученик ещё не выбран
C8Посмотреть списокПриехали класс и ученики учителя. Кнопки «Добавить ученика» быть не должно
C9Выбрать себя, ввести PIN из C1Вход
C10«Курсы»Курсы учителя, если он их опубликовал. Иначе — «Учитель пока не опубликовал ни одного курса»
C11«Настройки» → «Синхронизация»«Синхронизировано с приложением учителя»
C12Закрыть учительское приложение, у ученика открыть «Настройки»Через несколько секунд «сопряжено, нет связи». Урок при этом не прерывается

Ветка D — класс, учителя ещё нет

Ноутбук привезли в класс раньше преподавателя. Сбросить базу. Учительское приложение не запускать.

Внизу экрана поиска два выхода, и они отвечают на разные вопросы. «Подключиться позже» уводит работать дальше, оставляя компьютер классным: учитель подключится, когда придёт. «Работать самостоятельно» отказывается от класса совсем — ростер учителя этому компьютеру больше не нужен. Поэтому второй проверяется последним: он меняет режим, и вернуться к первому в той же базе уже нельзя.

№ДействиеОжидание
D1Чистая база → «В классе»Идёт поиск, потом «Ничего не найдено в сети» и поле для ручного адреса. Внизу два выхода: «Подключиться позже» и «Работать самостоятельно»
D2Нажать «Подключиться позже»Выбор карточки. Видна строка «Компьютер ещё не подключён к классу» и кнопка «Подключиться к учителю» — режим остался классным
D3Открыть группу, проверить кнопку «Добавить ученика»Её нет: на неподключённом классном устройстве плодить карточки нельзя. Вместо неё — «В этой группе пока никого нет — попроси учителя добавить тебя»
D4Нажать «Подключиться к учителю»Снова экран поиска. Путь не тупиковый — кольцо замкнуто в обе стороны
D5Нажать «Работать самостоятельно»Выбор карточки, режим стал самостоятельным: строки про класс больше нет

Ветка E — смена режима задним числом

Базу не сбрасывать, продолжение любой ветки.

№ДействиеОжидание
E1«Настройки» → «Режим устройства» → «Сменить режим»Сначала показывают, что изменится, и только потом кнопку подтверждения
E2Подтвердить переход в классныйУводит на экран сопряжения
E3Повторить и нажать «Отмена»Ничего не изменилось
E4Сменить обратно в самостоятельныйПрофили и работы на месте

Ветка F — повреждённая база

Единственная ветка, которую надо подстроить руками. Закрыть приложение.

macOS:

printf 'мусор' > ~/Library/Application\ Support/student-app/rubrick.db

Windows (PowerShell):

Set-Content "$env:APPDATA\student-app\rubrick.db" "мусор"
№ДействиеОжидание
F1Запустить приложениеДиалог «Локальная база данных повреждена или недоступна» с двумя кнопками
F2«Закрыть»Приложение закрывается
F3Запустить снова, «Начать заново»Стартует с чистой базы и снова спрашивает про режим
F4Прочитать сообщение и найти файл по указанному путиПовреждённый файл лежит рядом и не удалён

Отдельный заход — проход глазами по текстам

Без кликов по функциям: пройти все экраны и искать мёртвые строки по правилу из Части 2.

Дополнительно смотреть на вёрстку — её не ловит ни один автотест:


Часть 5. Мини-справочник по учительскому приложению

Нужен только для веток C и D. Полного теста учительского в этом этапе нет.

Запускается отдельно, на том же или соседнем ноутбуке. Вкладки сверху:

ВкладкаЧто там
Классысоздать класс, добавить учеников, выдать и сбросить PIN
Классживой вид урока: кто подключён, приостановить работу, снять ограничение
Курсы и урокиконструктор курсов; там же импорт и экспорт курса файлом
Код учениковчужие программы только на чтение, запустить можно у себя
Разрешениячто разрешено ученику: блоки, Python, запуск на роботе
Подключениеоткрыть сопряжение, подтвердить или отклонить устройство
Порталскачать курсы из интернета
Обновленияобновить себя и раздать обновление ученикам по сети класса

Для ветки C нужны только Классы (создать класс и учеников) и Подключение (открыть сопряжение, потом подтвердить устройство).

PIN показывают один раз. Записывай сразу — второй раз приложение его не покажет, только сбросит на новый.

Первый запуск на Windows попросит разрешение сети. Разрешать обе галочки — и частные, и общественные сети. Школьный Wi-Fi обычно считается общественным, и без этой галочки ученики не подключатся, а учитель будет видеть зелёный индикатор. Это известная слабость, о ней уже знают.


Часть 6. Как сообщать о находках

Одна находка — одно сообщение. В нём:

Мёртвую строку из Части 2 можно прислать одной строкой: сам текст и на каком экране.

Что НЕ является багом


Часть 7. Чего этот этап не проверяет

Честный список, чтобы не искать несуществующее: