Специалист по тестированию

Приветствуем будущих специалистов по тестированию программного обеспечения на тестовом задании в рамках конкурса OneDayOffer.

Что делать

  1. Публикуй ответы на GitHub/GitLab/etc в любом удобном виде.
  2. Присылай свое резюме и ссылку на решение hr@bi.zone с пометкой «OFFZONE 2019 QA»
  3. Мы отбираем самые интересные решения и отправляем авторам билеты на OFFZONE 2019 и подарки.
  4. На конференции подходи к стойке BI.ZONE.
  5. Пообщаемся, и по результатам сможешь присоединиться к нашей команде!

Кому будет интересно


Задача 1

На странице есть несколько элементов, один из них выглядит так:

<input class="Login _1f990qe" type="text">

Написать селектор, который найдет этот элемент. Что можно сделать с элементом, чтобы тест не падал на поиске данного элемента?


Задача 2

Чем этот тест плохой? Как его исправить?

# 1
def smfunc1(a, b):
  return a + b

def test_func():
  assert 0 == smfunc1(0, 0)
  assert 4 == smfunc1(2, 2)

# 2 
def smfunc2(a, b):
    return a ** b

def test_func():
    assert 1 == smfunc2(1, 1)
    assert 4 == smfunc2(2, 2)

Задача 3

Тариф мобильного оператора — 30 коп. до 15 секунд, 40 коп. до 30 секунд и еще 10 коп. за каждые дополнительные 15 секунд до минуты. Первые 3 секунды разговора не тарифицируются. Выберите входные данные для проверки тарифа, используя классы эквивалентности с обьяснением почему.

1) 0,3,4,16,47,61
2) 2,11,15,30,44,123
3) 2,4,21,34,50,127
4) 15,30,40,50,60

Задача 4

Имеется следующий код на Python:

def tsum(in_list):
    return in_list[-1] if len(in_list) == 1 else tsum(in_list[:-1]) + in_list[-1]


if __name__ == '__main__':
    print(tsum(list(range(3))))
    print(tsum(list(range(3000))))

Что будет напечатано в первой строке? Что во второй? (Предполагается решение без запуска кода, с пояснением, как получен результат.)


Задача 5

Вводная:

Задачи:

  1. Подключиться к серверу и получить информацию о точках взаимодействия с ним (REST API).
  2. Создать основные тестовые сценарии и записать их в произвольном формате.
  3. Выявить проблемы (не только явные ошибки), записать и выставить каждой степень ее серьезности (severity) с пояснениями.
  4. Реализовать сценарии для автоматического тестирования с использованием Python + RobotFramework.

Задача 6[*]

Подготовить описание трех профилей нагрузки над "админской частью Grafana"

[*] Для специалистов, знакомых с нагрузочным тестированием


Идеальный кандидат QA

Обязанности

Что нужно уметь

Желательно