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
Вопрос №146

Абстракция.

1. Выделяет главные свойства предмета.
2. Отбрасывает второстепенные характеристики.
- - - - - - - - -
Docker. Основы работы с контейнерами.
- - - - - - - - -

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

https://smartiqa.ru/blog/docker-basics
👍1
Вопрос №147

Инкапсуляция.

Прячет внутреннюю реализацию объекта, все взаимодействия - через интерфейс.
Вопрос №148

Наследование.

Создаем класс на основе существующего. Потомок наследует поля и методы родителя + добавляет свои. Выражает отношение "Является" (например, Mercedes является машиной).
- - - - - - - - -
BDD тестирование. Язык Gherkin. Фреймворк Cucumber.
- - - - - - - - -

1. Что такое TDD?

Разработка через тестирование (англ. Test-driven development, TDD) — техника разработки программного обеспечения, которая основывается на повторении очень коротких циклов разработки: сначала пишется тест, покрывающий желаемое изменение, затем пишется код, который позволит пройти тест, и под конец проводится рефакторинг нового кода к соответствующим стандартам.

https://smartiqa.ru/blog/bdd_gherkin_cucumber
Вопрос №149

Композиция.

Класс, известный как составной, содержит объект другого класса, известный как компонент. Выражает отношение "Имеет" (Например, машина имеет двигатель).
- - - - - - - - -
Docker. Тома, контроль версий, Docker Hub, Docker Compose.
- - - - - - - - -

1. Доступ к файлам и ресурсам с помощью томов
Работа с изолированными контейнерами при помощи Docker является удобной и простой, но может иметь недостаток: все сгенерированные ими данные автоматически исчезают в момент удаления. Предположим, мы делали некоторые расчеты, которые хотелось бы сохранить. Однако, это по умолчанию невозможно. Естественно, имеются решения, помогающие решить указанную проблему (и не только):

Копирование (команда cp)

Тома (volumes)

Совместные каталоги (bind mounts)

https://smartiqa.ru/blog/docker-share-hub-compose
- - - - - - - - -
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