T

TestTasks

Категория проекта: Ожидает модерации

Вступительные задания для стажёров в ЦК АТ

Данный репозиторий содержит набор тестовых заданий для стажировки в Центре Компетенций Автоматизации Тестирования в ДИТ. Для выполнения задания необходимо сделать форк текущего репозитория, выполнить все задания и прислать на проверку ссылку на репозиторий, где задания выполнены. Допускается выполнять не все задания, но чем больше, тем лучше. В Файле Readme.md указать свои ФИО и комментарии к заданиям, если потребуется.

Репозиторий должен быть приватным и в нём должны быть доступы для следующих пользователей:

Доступ для репозитория @lichie_lich @ashipovalov @vnardin @andrew-br11 @jungen.garten

Системные требования

  • Java 8+
  • Git

Задание №1

В классе ProblemTests есть ряд тестов, но они написаны с ошибками. Задание состоит в том, чтобы исправить ошибки и сделать тесты рабочими. Они все должны проходить успешно. Смысл тестов должен сохраниться исходя из их названия.

Критерии выполнения:

  • Проект компилируется
  • Все тесты из ProblemTests проходят успешно
  • Проверки в тестах соответствуют их названиям

Задание №2

Создать тестовый класс FileTests. В нём написать тест, который будет считывать файл test/java/resources/TraineeCharacteristics.txt. Тест должен проверить, содержит ли файл строку "Упорство".

Критерии выполнения:

  • Создан класс FileTests
  • Данный класс содержит тест, проверяющий наличие строки "Упорство" в заданном файле
  • Тест проходит успешно

Задание №3

Написать набор юнит-тестов для класса Calculator. Сам класс содержит ошибку, тесты должны её показать. Для написания тестов не подключать дополнительных библиотек.

Критерии выполнения:

  • Создан класс CalculatorTests
  • Класс содержит набор юнит-тестов, покрывающий работу класса в достаточной степени
  • Все тесты, кроме тех, что связаны с методом, содержащим ошибку, проходят успешно
  • Тесты, связанные с дефектным методом должны падать

Задание №4

В классе Stack написана простая реализация для такой структуры как стек, но она содержит ошибку. Необходимо исправить ошибку и написать набор юнит тестов, которые будут успешно проходить.

Критерии выполнения:

  • Исправлена ошибка в классе Stack
  • Создан класс StackTests, содержащий достаточное количество тестов
  • Тесты проходят успешно

Задание №5

На основе реализации класса Stack написать аналог DynamicStack, только который не будет иметь ограничений по размеру и его размер будет изменяться динамически в зависимости от его заполнения (увеличиваться, если стек должен переполниться, и уменьшаться, если он стал пуст более, чем на половину). Для этого класса написать набор тестов, демонстрирующих корректность работы класса.

Критерии выполнения:

  • Реализован класс DynamicStack с учётом описанных выше требований
  • Реализован класс DynamicStackTests, содержащий достаточное количество тестов
  • Все тесты проходят успешно

Задание №6

Написать XPath и CSS локаторы для строки с заголовком сайта https://mos.ru/dit (выделен красным прямоугольником на скриншоте). Локаторы написать в виде текста и записать в файле locators.txt в корне проекта. img_.png

Критерии выполнения:

  • Создан файл locators.txt
  • Файл содержит 2 строки: одна с XPATH выражением для поиска локатора, вторая с CSS выражением
  • Оба выражения должны быть рабочими для поиска заданного элемента

Задание №7

Реализовать пакет robots, который будет содержать иерархию классов, отображающих различных роботов в соответствии с описанием ниже. Классы должны быть составлены с учётом принципов ООП. Для каждого робота должны быть написаны тесты. Дополнительный плюс, если указать в виде комментариев, где какой принцип ООП используется и в чём выгода его придерживаться.

Описание роботов

Робот умеет ходить, ездить или летать. Робот имеет тип назначения:

  • медицинский робот снабжён набором инструментов (для анализа или выполнения операции) и умеет производить соответствующие действия;
  • сварщик сваривает детали;
  • повар готовит.

Роботы заправляются по определённому циклу в зависимости от вида энергии:

  • атомной раз в 50 лет;
  • внутреннего сгорания (дизельное топливо, бензин) по мере опустошения бака в зависимости от его объёма;
  • электрической по мере уменьшению заряда до 20%.

Существуют роботы с гибридным типом питания

Существуют мультизадачные роботы: медики-сварщики, сварщики-повара и роботы, умеющие всё сразу.

Всего получается 6 типов роботов по назначению. Распределить тип питания и движения между ними (включая гибридные) самостоятельно.

Критерии выполнения:

  • Создан пакет robots, содержащий необходимый набор классов.
  • Созданы реализации классов, описывающих следующих роботов по назначению: Сварщик, медицинский, повар, медик-сварщик, сварщик-повар и мультизадачный робот, умеющий всё.
  • Для каждого типа робота подобран свой тип питания. Существует как минимум 2 типа робота с гибридными типами питания.
  • У каждого робота есть свой доступный тип перемещения
  • Классы построены с учётом принципов ООП.
  • Реализован пакет с тестами robotstests, содержащий классы с тестами.
  • Все функции роботов покрыты тестами.
  • Все тесты проходят успешно.