Programming & QA – Telegram
Programming & QA
335 subscribers
266 photos
177 links
Smartiqa - платформа о технологиях, программировании и тестировании ПО.

Сайт: https://smartiqa.ru
Канал YouTube: https://www.youtube.com/channel/UCk_7MNLSD0S2fxi0EQ-V6lQ
Vkontakte: https://vk.com/smartiqa
Vkontakte Python: https://vk.com/smartiqa_python
Download Telegram
- - - - - - - - -
Selenium WebDriver для начинающих
- - - - - - - - -

1. UI тестирование
UI тестирование - имитация действий пользователя — клики, переходы по ссылкам, и другие действия подобного плана. Вопрос о целесообразности большого количества автоматизированных тестов, работающих через пользовательский интерфейс, является весьма спорным, потому что:
Автоматизированные UI тесты очень хрупкие. Как правило, даже косметические изменения в коде тестируемого приложения(например, смена имени checkbox) приводят к необходимости внесения соответствующих изменений к код тестов. В итоге, поддержка обширных UI тестов является задачей достаточно трудоемкой, а для приложений с активно развивающимся графическим интерфейсом - даже бессмысленной.

https://smartiqa.ru/blog/selenium-webdriver-basics
Вопрос №150

Чем отличаются Наследование и Композиция?

Общее: позволяют повторно использовать существующий код.

Отличия:

1. Наследование требует расширения наследуемого класса.

2. Во многих языках запрещено множественное Наследование. А значит нельзя переиспользовать функционал нескольких разных классов. В Композиции – можно.

3. При Композиции легче писать юнит тесты – делаем заглушки. При Наследовании это сделать сложнее – не получится заменить заглушкой родительский класс.

4. При наследовании класс-потомок зависит от функционала класса-родителя. Ломается родитель – ломается и потомок.

Итог: когда нужно использовать класс как таковой без каких-либо изменений, рекомендуется Композиция, а когда нужно изменить поведение метода в другом классе, рекомендуется Наследование.
- - - - - - - - -
Собеседование на должность QA Automation Engineer.
Основы программирования.
- - - - - - - - -

1. Проектирование

Почему глобальные переменные это плохо? 1. Нарушают инкапсуляцию (к ним открыт доступ из любой части программы), добавляют лишние зависимости между компонентами. 2. Ухудшают масштабируемость 3. Способствуют возникновению трудноуловимых ошибок.

https://smartiqa.ru/blog/qa_automation_engineer_interview_2
👍2
Вопрос №151

Полиморфизм.

Поддержка нескольких реализаций на основе общего интерфейса. Т.е. позволяет перегружать одноименные методы родительского класса в классах-потомках. Пример: метод len() позволяет получать длину последовательности для разных классов (int, str, list и т д).
👍3
Вопрос №152

Сформируйте последовательность Фибоначчи.
👍2
- - - - - - - - -
Шпаргалка по GitLab
- - - - - - - - -

1. Global keywords / Глобальные ключевые слова
2. Jobs keywords / Ключевые слова уровня джобы

https://smartiqa.ru/blog/gitlab-cheatsheet
Вопрос №153

Определить, является ли строка палиндромом.
👍3🔥1
- - - - - - - - -
Собеседование на должность QA Automation Engineer. Web, SQL, Linux, Git, сети.
- - - - - - - - -

1. Клиент-серверная архитектура
Компоненты Web-приложения. 1. Серверная часть: Логика (Java, Python, C#, C++) + БД. 2. Клиентская часть: HTML, CSS, JavaScript. 3. Протокол: HTTP, HTTPS.

2. В чем разница между протоколами HTTP и HTTPS? HTTPS является расширением протокола HTTP с надстройкой шифрования (использует TLS протокол для защиты базового TCP-соединения). HTTP использует порт 80, HTTPS - 443.

https://smartiqa.ru/blog/qa_automation_engineer_interview_3
Вопрос №154

Сортировка. Пузырьком.

Проходимся по элементам массива и попарно сравниваем. Если левый больше правого - меняем местами.
👍2
- - - - - - - - -
Шпаргалка по языку программирования Go
- - - - - - - - -

1. Типы данных
2. Строки и руны / Strings and runes
3. Инструменты командной строки / Command line tools

https://smartiqa.ru/blog/go-cheatsheet
Вопрос №155

Сортировка. Вставка.

Делим массив на две части (левую и правую). Левую часть считаем отсортированной. Изначально первый элемент массива оставляем в левой части, все остальное относим к правой (не отсортированной). Начинаем перемещаться по не отсортированной части. Берем первый элемент, и попарно сравнивая с соседними, ищем ему место в отсортированной части. Например, имеем массив [ 4 6 2 1 ]. Выполняем сортировку:

1. Делим на 2 части: [ 4 | 6 2 1 ].
2. Берем элемент 6 и ставим его на подходящее место в отсортированной части: [ 4 6 | 2 1 ].
3. Ставим на свое место элемент 2: [ 2 4 6 | 1 ].
4. Ставим на свое место элемент 1: [ 1 2 4 6 ].
👍3
Вопрос №156

Сортировка. QuickSort.

Основывается на выборе опорного элемента и дальнейшей сортировке элементов на группы: меньше / равны / большего опорного. В качестве опорного элемента эффективно выбирать медианное значение. Медианное значение - значение, которое находится в середине отсортированного списка. Алгоритм:

1. Выбираем опорный элемент.
2. Перераспределяем элементы относительно опорного - слева меньше, справа больше.
3. Рекурсивно выполняем п 1 и п 2 на полученных подмассивах.
4. Рекурсия не применяется, если в подмаслила остался 1 элемент или вообще ни одного.
- - - - - - - - -
КУРС
Работа с Git
- - - - - - - - -

Вид обучающего материала: Онлайн курс
Уровень: Начальный
Количество уроков: 6
Стоимость: Бесплатно
Релиз: 2024

https://smartiqa.ru/courses/git
Вопрос №157

Какая типизация используется в Python?

Динамическая