Собеседование QA Automation Python: вопросы и ответы

Области примененияФреймворкиIDEВыводТюплыИменованиеПроверкиСлайсингГенераторdocstringНегативный индексXrangePicklingУправление памятью

Опишите Python и его преимущества своими словами.

Язык программирования, поддерживающий объекты, модули, потоки, исключения и автоматическое управление памятью. Преимущества: простота и легкость написания кода, переносимость, расширяемость, удобные встроенные структуры данных, и открытые исходники.

Как Python применяется в тестировании?

  • Генерация тестовых данных; обработка (парсинг) результатов; генерация репортов; тестирование API-вызовов
  • Экстракция (получение) требований из Word-документов.
  • Автоматизация тасков (задач), настройка тестовых окружений, получение и обработка данных при тестировании производительности
  • Для автоматизации тестов в Selenium
  • Для быстрого создания приложений, используемых тестировщиками
  • Манипуляции с тестовыми данными
  • Создание и поддержка тестовых окружений
  • IronPython в .NET

Какие знаете Python-фреймворки?

Pytest, Unittest, Behave, Robot Framework, Lettuce.

В чем пишут программы на Python?

Если быстро, то Notepad++ с плагином PyNPP, если что-то большое, то Eclipse с PyDev и PyUnit. Если понял философию Python, то IDLE. Если удобство главнее всего, то PyCharm.

Есть такая строка:

yesterday today tomorrow

Напишите функцию print для неё.

print('yesterday\ntoday\ntomorrow')

Есть строка:

hello-how-are-you

Напишите функцию print для неё.

print('hello' + '-' + 'how' + '-' + 'are' + '-' + 'you')

Что будет результатом выражения len(‘’) ?

0.

Есть такой код:

s=’catandapple’

Напишите выражение, которое равно ‘apple’.

s[-5:]

Напишите какое-нибудь выражение, которое будет True

len('aaddgg') == 6

Что такое тюплы?

Тюплы, а по русски кортежи, это, грубо говоря, неизменяемые списки. 

Неизменяемые последовательности, подобные спискам (списки изменяемы). В тюплах-кортежах используются круглые скобки, а не квадратные:
tuple = ('test', 5, -0.2)

Какие существуют правила именования в Python?

  • Имена переменных должны начинаться с буквы или нижнее подчеркивание _
  • В именах допускаются только буквы, цифры, и _.

Отлично, а русские буквы можно?

Можно, но не рекомендуется, во избежание путаницы. Некоторые буквы в русском и английском алфавитах выглядят совершенно одинаково, а код у них разный. 

Какой командой закрыть окно оболочки Python?

quit()

Выведут ли функции help() и dir() названия всех встроенных функций и переменных? Если нет, то как их вывести?

Нет, не выведут. Встроенные функции типа max(), min(), filter(), map() и подобные не выведутся. Чтобы посмотреть их, надо передать модуль ‘builtins’ как аргумент в ‘dir()’, тогда выведутся встроенные функции, эксепшены и другие объекты: 

list.>>>dir(__builtins )

[‘ArithmeticError’, ‘AssertionError’, ‘AttributeError’, ……… ]

Как Python выполняет проверку кода при компилировании и выполнении?

Python выполняет некоторые проверки при компиляции, но большинство проверок (типов, имен и пр.) откладываются до выполнения кода. Таким образом, если код на Python запросит пользовательскую функцию которой не существует, такой код скомпилируется успешно, но упадет с ошибкой-эксепшеном, когда будет вызов функции, которой не существует.

Расскажите о unittest одной фразой.

Стандартный модуль для юнит-тестов, поддерживает шеринг сетапов, автоматизацию, группировку тестов в коллекции.

Что такое слайсинг?

Слайсы, лучше по русски срезы, это выборка элементов из последовательностей (списка, кортежа, строки).

Что такое генератор?

Средство экономии памяти и вычислительной мощности. Объект, который при создании не вычисляет сразу значения всех своих элементов (так называемое «ленивое вычисление»). Хранит в памяти только последний вычисленный элемент, правило перехода к следующему элементу, и условие при котором выполнение прерывается.

Что такое ‘docstring’?

Строка документации, идущая после объявления функций, модулей и классов:

def square(n):

    '''Возвращает квадрат числа n'''

    return n**2

Как скопировать объект?

copy.copy () или copy.deepcopy()

Что такое негативный индекс?

Последовательности в Python могут обозначаться не только обычными, но и отрицательными индексами (когда нумерация идет с конца):

>>> a = [1, 3, 8, 7]

>>> a[-1]

7

>>> a[-4]

1

Как конвертировать число в строку?

Встроенной функцией str()

В чем разница между Xrange и range?

Xrange возвращает объект “Xrange”, а range возвращает список независимо от размера “range”.

Опишите понятия модуля и пакета Python.

Всякий файл с программой на Python является модулем, который импортирует другие модули в качестве объектов и атрибутов. Папка с программами на Python является пакетом модулей. В пакете находятся модули или вложенные папки.

Что такое PEP8?

Рекомендации по написанию правильного, хорошо читаемого кода на Python. 

Что такое pickling и unpickling?

Модуль pickle превращает любой объект в поток байтов (строку) и сохраняет в файл. Обратный процесс — преобразование оригинального объекта из строки в объект. Для сохранения и загрузки сложных объектов.

Опишите управление памятью в Python.

Память в Python хранится в private heap — эксклюзивной части памяти для хранения всех объектов и структур данных. Разработчик (и тестировщик) не имеет туда доступа, только Python-интерпретатор, который управляет распределением памяти. Но для доступа к этому менеджеру памяти есть API. В Python есть встроенный сборщик мусора, подчищающий неиспользованную память.

***

Дополнительно: Встроенные структуры данных в Python

Источник

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

2 КОММЕНТАРИИ

Подписаться
Уведомить о
guest

2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Галиина
Галиина
22 дней назад

А где Playwright в списке фреймворков? ._.

Pavel
Pavel
10 дней назад

Есть такая строка:

yesterday today tomorrow

print(‘yesterday\ntoday\ntomorrow’)

Выведет текст на разных строках. Отредактируйте или задание, или ответ.

Есть строка:

hello-how-are-you

Напишите функцию print для неё.

print(‘hello’ + ‘-‘ + ‘how’ + ‘-‘ + ‘are’ + ‘-‘ + ‘you’)

И, скорее всего, ваш интервьюер будет очень сильно расстроен. Следующий вариант выглядит сильно оптимальнее

print(*"hello how are you".split(), sep='-')

В чем разница между Xrange и range?

Xrange возвращает объект “Xrange”, а range возвращает список независимо от размера “range”.

Какой-то бред или кривой перевод
Разница в том, что range возвращает список со всей последовательностью сразу. А xrange возвращает значения только по требованию. Выше было сказано про генераторы. Так вот это оно и есть.

Опишите понятия модуля и пакета Python.

Всякий файл с программой на Python является модулем, который импортирует другие модули в качестве объектов и атрибутов. Папка с программами на Python является пакетом модулей. В пакете находятся модули или вложенные папки.

А модуль не может не импортировать другие модули? А файл .txt с программой на python является модулем python? Модуль в python — это любой файл с расширением .py, кроме __init__.py
Папка с «программами» не является никаким пакетом. Пакеты в python — это любые(даже пустые) папки, содержащие файл __init__.py

Что такое PEP8?

Рекомендации по написанию правильного, хорошо читаемого кода на Python. 

Это официальные, что б вас, стандарт! Который да, в свою очередь, содержит рекомендации.

Что такое pickling и unpickling?

Модуль pickle превращает любой объект в поток байтов (строку) и сохраняет в файл. Обратный процесс — преобразование оригинального объекта из строки в объект. Для сохранения и загрузки сложных объектов.

Подскажите мне, пожалуйста, функцию pickle, которая сохраняет полученный байткод в файл? Сохранение осуществляется, при необходимости, стандартными методами python.

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас