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
Цикл статей о нейронных сетях

Заменят ли нас нейронные сети? – https://smartiqa.ru/blog/neural-network-intro

Все о градиентном спуске или как учится нейронная сеть – https://smartiqa.ru/blog/neural-network-gradient-descent

Откуда нейросеть знает, что на картинке котик? Все, что вы хотели знать о сверточных нейросетях – https://smartiqa.ru/blog/neural-network-convolution

Генеративно-состязательные модели, или как сделать из нейросети художника – https://smartiqa.ru/blog/neural-network-gan

Знакомимся с PyTorch-инструментом для создания нейронных сетей – https://smartiqa.ru/blog/neural-network-pytorch
Вопрос №145

Интерфейс.

Это абстрактный класс, у которого НИ ОДИН метод не реализован, все они публичные и нет переменных класса. Любой интерфейс - это абстрактный класс, но не наоборот.
- - - - - - - - -
Собеседование на должность QA Automation Engineer. Теория тестирования.
- - - - - - - - -

Мы поспрашивали коллег, почитали статьи, посмотрели видео на ютубе. И как итог, сформировали список вопросов (и кратких ответов), который поможет вам подготовиться и успешно пройти собеседование на роль QA Automation Engineer.

Обратите внимание, что должность эта представляет собой нечто среднее между ручным тестировщиком и разработчиком. А значит - вопросы будут как по общей теории тестирования, так и по основам программирования.

https://smartiqa.ru/blog/qa_automation_engineer_interview_1
- - - - - - - - -
Виртуализация. Виртуальные машины. Гипервизоры. Контейнеры.
- - - - - - - - -

Важность и применение виртуализации простирается далеко за пределы виртуальных машин. Ни одно из достижений в области информационных технологий не имело столь огромной ценности как виртуализация. Многие IT-специалисты думают о виртуализации с точки зрения виртуальных машин (VM) и связанных с ними гипервизоров и операционных систем, но это только вершина айсберга. Все более широкий спектр технологий, стратегий и возможностей виртуализации переопределяет основные элементы IT в организациях по всему миру.

https://smartiqa.ru/blog/virtualization
Вопрос №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