Содержание

Проект - варианты заданий и правила выполнения

Общие требования

Список будет пополнятся :)

Dockerfile:

Docker-compose:

Варианты заданий

https://docs.google.com/spreadsheets/d/1Tk7py40c2guXg82FIlYvp5BF9DYnMFcatnOCnKyLXH4/edit#gid=0

Подсказки по условиям вашего задания - ниже.

Расшифровка условий задания

Selenium-тесты

Задача в написании Selenium-тестов - написать автотесты для нескольких форм ИС ИОТ. Тестовый инстанс находится по адресу https://dev.digital.etu.ru/trajectories-test/.

Тест должен включать в себя следующие шаги:

  1. Авторизация через ETU ID.
    • Используйте ваш логин/пароль из ЛК ЛЭТИ. Укажите их в .env-файле, коммитить в репозиторий не нужно
    • Вы должны получить в системе права администратора. Если не получите - пингуйте нас в Discord.
    • В системе все персональные данные заменены на сгенерированные.
  2. Если ваш вариант включает в себя работу с ОПОП, РП или формой «Распределение документов», авторизуйтесь за пользователя id=1305 (Schimmel Вадим August) на форме «Авторизация за другого пользователя». У этого пользователя есть все права на все документы.
  3. Проверьте функционирование формы, указанной в задании:
    • Инструкции по формам есть по ссылке: https://digital.etu.ru/doku.php?id=navigation:iot
    • Большинство форм включают в себя сохранение какого-то состояния (вкладки документа, выдача прав и т.п.). В таком случае задача - ввести в форму какие-то значения (не обязательно осмысленные), сохранить, обновить страницу и проверить, что внесенные данные сохранены.
    • В работе с документами - можете создать новый документ или взять существующий в статусе «черновик». Если создаете новый, не забудьте удалить.
    • В работе с документами - берите документы с кафедрой, соотвествующей вашему положению в таблице «Варианты заданий» (см. ниже). Так мы избежим конфликтов из-за одновременного выполнения тестов.
    • В работе с пользователями - берите пользователей, у которых фамилия соответствует вашей сгенерированной (можно посмотреть сверху в сайдбаре).

Перечень кафедр

Кафедра, в которой вы работаете = (ваш номер в «Варианты заданий») % 40 + 1.

Кафедры:

  1. каф.АМ
  2. каф.ЛИНС
  3. каф.ЭПУ
  4. каф.ИИСТ
  5. каф.ВМ
  6. каф.МНЭ
  7. каф.РАПС
  8. каф.ЭП
  9. каф.ЭУТ
  10. каф.ФЛ
  11. каф.ИМ
  12. каф.ТВ
  13. каф.МОЭВМ
  14. каф.МСК
  15. каф.БЖД
  16. каф.СО
  17. каф.ВТ
  18. каф.САПР
  19. каф.ФЭТ
  20. каф.Фот
  21. каф.МВЭ
  22. каф.ПМИГ
  23. каф.ИНЯЗ
  24. каф.ТОЭ
  25. каф.СП
  26. каф.ПЭ
  27. каф.ТОР
  28. каф.БТС
  29. каф.РС
  30. каф.САУ
  31. каф.ИКГП
  32. каф.ЭТПТ
  33. каф.РЯ
  34. каф.МИТ
  35. каф.ФХ
  36. каф.РЭС
  37. каф.ИЗОС
  38. каф.АПУ
  39. каф.ИС
  40. каф.ФВиС

Это не все кафедры ЛЭТИ, только те, по которым есть более 100 РП.

Варианты средней сложности

Вам необходимо реализовать docker-compose конфигурацию из двух узлов (не больше и не меньше):

Оба контейнера должны использовать написанные вами образы, собираемые из локальных Dockerfile. Шаблоны для имен Dockerfile:

Помимо Dockerfile, вам также необходимо сделать файл README.md, содержащий примеры команд для запуска тестов и проверки всей конфигурации. Это сильно ускорит проверку:)

Параметры конфигурации задаются в таблице вариантов + общие требования (http://se.moevm.info/doku.php/courses:devops:project#общие_требования).

Варианты высокой сложности

1. Автоматизация тестирования курсовых по Android

Идея - разработать набор github actions, которые будут по состоянию репозитория проверять (базово) соответствие этапам выполнения работы и генерировать / отображать статус в readme.

Подробности об этапах:

https://se.moevm.info/doku.php/staff:courses:application_development_for_mobile_platforms:course_work:topics

Проверяем:

  1. Макет и UC (есть вики страница, файл макета загружен в репо)
  2. UI на заглушках (если задан нужный тег- проверяем наличие исходников андроид проекта, его собираемость через github actions, .gitignore , название пакета )
  3. Юнит-тесты ( тег, сборка и запуск)
  4. App is ready (тег, требования, запуск, запуск стресстестов)
  5. Оценка сложности UI вашего приложения (вики станица и ее содержимое)
  6. Пояснительная записка (наличие файлов )
  7. Интеграционные тесты ( тег, сборка и запуск)

Используем в качестве технологий github actions. Сдаем отдельным репо.

2. Проверка корректности учебных работ на языке Python (командная строка)

Идея - автоматизировать процесс проверки лабораторных и курсовых работ.

Для проверки кода - pylint, для тестирования работы в командной строке https://github.com/cucumber/aruba, для профилирования работы - valgrind.

Формат выполнения github actions. Сдаем отдельным репо.

Этапы проверки

3. Проверка корректности учебных работ на языке С (командная строка)

Аналогично теме 2, но компилируем в gcc (и проверяем что все ок с компиляцией) + другие линтеры.

Правила оценивания

Оценка за проект складывается из следующих критериев (пропорционально степени выполнения вашего варианта задания):

Подробно о процедуре проверки https://docs.google.com/document/d/1iqn_jtQ7yP_jgMv1a-jw3qriWTVHDyAeEPAnQT51tl8/edit

Правила работы в репозитории

Все работы сдаются только и исключительно в виде PR в репозиторий курса. Подробно:

https://github.com/moevm/devops-1h2024/blob/main/README.md

По работе в selenium

Если у вас сложности: