Skip to content
View levvolkov's full-sized avatar
:octocat:
:octocat:

Block or report levvolkov

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
levvolkov/README.md
Banner

Меня зовут Лев, и я начинающий специалист в тестировании программного обеспечения. В процессе обучения на курсе «Инженер по тестированию» на образовательной платформе Нетологии я познакомился с техниками тест-дизайна, работал с Selenide и изучал методологию BDD, создавая качественные тесты на основе пользовательских сценариев. Занимался тестированием с использованием Playwright и Espresso, автоматизацией кроссплатформенных приложений с UI Automator и Appium, а также реализовал систему отчетности Allure для отображения результатов тестирования. Кроме того, проводил нагрузочное тестирование с использованием BlazeMeter и JMeter и настраивал мониторинг с помощью Telegraf, InfluxDB и Prometheus. Моя цель — обеспечить высокое качество цифровых продуктов и внести вклад в развитие команды и проекта.


   

Изученный материал

«Методы и виды тестирования»

«Тестирование ПО. Тест-дизайн»

«Артефакты тестирования. Тестовая документация»

«Артефакты тестирования. Дефекты»

«Инструменты тестирования для работы с документацией»

«Основы клиент-серверного взаимодействия»

«Особенности тестирования web-приложений и работа с Chrome»

«Инструменты тестирования. Клиент-Сервер»

«Жизненный цикл разработки ПО. Гибкие методологии разработки ПО»

«Курсовой проект: проведение тестирования сайта крупной компании»

« Чеклист
для функциональной проверки личного кабинета зарегистрированного
авторизованного пользователя, включая функционал разделов,
на сайте Henderson »

« Набор тест-кейсов
на проверку функционала восстановление пароля »

« Баг- репорты
на основе скриншота »

« Тестирование верстки
страницы карточки товара с максимальной и минимальной ценой »

« Клиент сервер
ищем запрос, в котором есть нужные параметры, найти, как же выглядят параметры
deviceUUID, requestID и status »



svg   svg


   

Изученный материал

«Предназначение системы контроля версий»

«Основные операции (фиксация и откат изменений, поиск, история)»

«Работа с сервисом GitHub»

«Ветки, слияние веток и разрешение конфликтов»

«Командная работа»



svg


     

Практическая работа

1. «Введение в Java»

Версионируем проект с помощью Git, пишем баг-репорт в GitHub Issues.

2.1 «Примитивные типы данных и условные операторы»
2.2 «Примитивные типы данных и условные операторы»

Практикуемся в использовании условных операторов.

3.1 «Testability. Введение в ООП»
3.2 «Testability. Введение в ООП»
3.3 «Testability. Введение в ООП»

Пишем свои сервисные классы, многофайловую программу.

4. «Система сборки Maven»

Создаем maven-проекты, пишем юнит-тесты с помощью JUnit 5, используем
maven-плагины.

5. «Пакеты и циклы»

Используем циклы в программах, параметризируем юнит-тесты.
Практикуемся с пакетированием классов.

6. «Строки и массивы»

Используем циклы для работы с массивами.

7. «Выстраивание процесса непрерывной интеграции»

Настраиваем CI на основе GitHub Actions.

8. «Объектно-ориентированное программирование: ключевые принципы»

Проектируем объекты для хранения данных.

9. «Объектно-ориентированное программирование и проектирование»

Проектируем объекты, имеющие и поля, и методы.

10. «Объекты с внутренним состоянием, управление состоянием при тестировании»

Управляем начальным состоянием объектов через конструкторы.

11. «Композиция и зависимость объектов. Mockito при создании автотестов»

Проектируем классы, внутреннее состояние которых содержит наборы данных.

12. «Наследование и расширяемость систем. Проблемы наследования»

Связываем классы отношением наследования, переопределяем методы в классах
наследников, пользуемся полиморфизмом классов.

13. «Исключительные ситуации и их обработка. Тестирование исключений»

Добавляем логику исключений в приложение, тестируем логику исключений в
приложении.

14. «Интерфейсы для организации малой связности. Обобщённое
программирование (Generics)»

Сортируем объекты, сравниваем объекты с помощью Comparable и Comparator.

15. «Collections Framework. CRUD и тестирование систем, управляющих
набором объектов»

Используем коллекции для работы с наборами элементов.

Командный проект по курсу «Java для тестировщиков»

Тестируем приложение для операций с банковскими счетами.
Составляем баг-репорты на найденные баги.
Закрываем составленные коллегой баг-репорты, исправив баги.



svg


         

Практическая работа

1. «Основы автоматизации»

Создание проекта на базе Gradle, не добавляя в него внешних зависимостей.

2.1 «Тестирование API, CI»

Настраиваем AppVeyor, тренируемся с Get запросами.

2.2 «Тестирование API, CI»

Тренируемся с Post запросами, отправка тела запроса.

3. «Тестирование веб-интерфейсов»

Автоматизируем тестирование формы заказа карты с использованием Selenium,
библиотеки Webdriver Manager.

4. «Selenide»

Автоматизируем тестирование формы заказа доставки карты
с использованием Selenide.

5.1 «Patterns»
5.2 «Patterns»

Реализуем классы датагенератор, используем библиотеку Faker для генерации
данных, библиотеку Gson чтобы иметь возможность сериализовать Java-объекты
в JSON, используем Lombok.

6. «BDD (Behaviour Driven Development), Page Object's»

Прорабатываем класс DataHelper и пейдж объекты, реализуем достаточное
количество тестов, заводим репорт на обнаруженный дефект.

7. «Docker PostgreSQL»

Настройка контейнера, устанавливаем параметры для запуска приложения.

8. «SQL»

Реализуем класс датахелпера, пейдж объекты, спомогательный
класс взаимодействия с базой данных.

9. «Репортинг Allure»

Подключаем Allure, настраиваем интеграцию с Selenide.

10. «Заключительная лекция»

Пишем план автоматизации тестирования сценария перехода к форме записи
и заполнения этой формы.

Курсовой проект по модулю «Автоматизация тестирования»
для профессии «Инженер по тестированию»

Автоматизация тестирования комплексного сервиса, взаимодействующего
с СУБД и API банка.



svg


       

Практическая работа

«Основные понятия»

«Функции»

«Массивы»

«Объекты»

«Классы»

«Обработка исключений и замыкания»

«Асинхронность»

«Декораторы»



svg


         

Практическая работа

1. «Использование JS в браузере. Тестирование, дебагинг»

Настроен debugger в VSCode.

2. «Node.js»

Установлен nvm пакет изменений версий Node.js, настроены плагиноы ESLint и Prettier.

3.1 «Jest»

Установлен и настроен феймворк Jest в проекте,
дописан недостоющий тест для 100% покрытия по всем параметрам.

3.2 «Playwright»

Установлен и настроен фреймворк Playwright в проекте,
созданы два UI-теста на успешную и неуспешную авторизацию на сайте netology.ru,
добавлена функция скриншота.

4. «Puppeteer 1»

Добавлены к существующим и помещены за блоком describe три теста,
которые проверяют заголовки на других страницах приложения.

5. «Puppeteer 2»

Написаны 2 happy path теста и 1 — sad path с использованием custom commands.
Организован BDD подход для тестов, подключен фреймворк Cucumber к проекту,
написан сценарий и шаги.

6. «Cypress 1»

Написано 6 тестов для проверки авторизации в приложении книг и
проверки функциональности работы с книгами в избранном,
повторяющиеся шаги вынесены в кастомные команды.
В конфигурациях настроены параметры view-port двух разных размеров экрана.
Для упрощения работы с запуском тестов настроены 4 скрипта
для запуска в режимах headded и headless.

7. «Cypress 2»

Написаны тесты проверки логина в админку и
бронирования фильма в доступный зал приложения 'Идем в кино'.
Проект подключен к Dashboard-Cypress. Написан набор
интеграционных тестов на работу серверного API для проекта Swagger.

8. «CI/CD Jenkins»

Добавлены скрипты и параметры для запуска тестов в
трёх разных браузерах и для запуска тестов параллельно,
чтобы два разных потока запускались в двух разных браузерах.
Настроен Jenkins добавлен новый параметр браузеров и
секретного ключа для запуска тестов.



svg


         

Практическая работа

1. «Ручное тестирование мобильных приложений. Введение»

На основе предварительных исследований был составлен чек-лист проверок для
приложения "Онлайн-кинотеатр". Приложение Everybook было подвергнуто
тестированию, в ходе которого были обнаружены баги и составлен детализированный
баг-репорт. Подготовлен краткий отчет о тестировании сервиса, в который будет
интегрирована платежная система Stripe. В отчете описаны процедуры тестирования
платежей на финальной и тестовой версиях мобильного приложения на iOS.

2. «Тестирование iOS-приложений»

Выполнен анализ различных версий iOS, начиная с iOS 13, а также требований Apple
к приложениям для восстановления старого приложения. Проведен подробный анализ
несовместимостей приложения Ad Workout X с гайдлайнами App Store. Сформированы
и переданы тимлиду iOS-разработки данные, необходимые для добавления нового
тестового устройства в TestFlight. Присоединился к бета-тестированию приложения
iT-TecNews через TestFlight и обновил его до последней версии сборки.

3. «Тестирование Android-приложений»

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

4. «Виды тестирования в контексте мобильных устройств»

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

5. «Выбор устройств для тестирования»

Были определены подходящие устройства для тестового случая на основе
проведенного исследования, учитывающего финансовые условия и особенности
целевого рынка. Выявлены критерии, при которых оптимально использовать
эмулятор, симулятор или реальное устройство.

6. «Инструменты для тестирования мобильных приложений. Среда разработки»

Установил Homebrew для macOS и Linux, что позволило установить Android Debug
Bridge (ADB) на macOS. С его помощью провел стресс-тестирование и получил
логи тестируемого Android приложения. Проанализировал стектрейсы ошибок и
выдвинул предположения о затронутых модулях приложения и возможных
действиях пользователя, вызвавшиx ошибки.

2.1 «Автоматизация тестирования мобильных приложений»

Установлен Android Studio. Настроена конфигурация файловой среды на
macOS (zsh), которая устанавливает переменные окружения для разработки
приложений на платформе Android и работы с Java. Эта конфигурация корректно
настраивает пути к Android SDK и JDK, упрощая их использование. Запущен
склонированный проект на эмуляторе. Проверена работоспособность приложения
на реальном физическом устройстве, подключенном через USB, для обнаружения
возможных различий в поведении по сравнению с эмулятором. Проверен
функционал приложения, в котором реализовано переключение между
вкладками. Написан автотест с помощью Espresso Test Recorder.

2.2 «UI Automator. Автоматизация тестирования Android»

В рамках проделанной работы было написано два теста: первый тест проверяет
попытку установки пустой строки в поле ввода, а второй — открытие текста
в новой Activity. После выполнения тестов были настроены автоматизированные
проверки с использованием GitHub Actions.

2.3 «XCTest. Автоматизация тестирования iOS-приложений»

Установлена и настроена среда разработки Xcode. Добавлены UI-тесты для
iOS-приложения с использованием библиотеки XCTest. Реализованы основные
тесты, включая проверку активности кнопки "Login" и соответствие логина на
экране профиля логину, который пользователь ввёл при повторном входе. Все
тесты успешно прошли, обеспечивая стабильность функционала приложения.

2.4 «Appium. Кроссплатформенная мобильная автоматизация тестирования»

В рамках задачи по настройке окружения для работы с Appium был установлен
Appium и его зависимости. Проведен анализ системных зависимостей с помощью
Appium Doctor, что обеспечило корректную работу платформы. Также был
установлен Appium Inspector для удобной работы с элементами интерфейса
приложений и разработаны тесты для проверки установки пустой строки
и открытия текста в новой Activity.

2.5 «Espresso. Автоматизация тестирования Android»

Склонирован и запущен тестовый проект в Android Studio, настроена библиотека
Espresso для тестирования. Реализован тест для проверки главного экрана
приложения с использованием Espresso. Экспортирован отчет теста в HTML-файл.
Также добавлена интеграция Allure для генерации отчетов о тестировании и
покрытия большинства потребностей. Отчеты успешно загружены в раздел
Issues репозитория.

2.6 «Espresso. Продвинутая автоматизация тестирования Android»

Настроены библиотеки Espresso, позволяющие эффективно тестировать
пользовательский интерфейс Android-приложений, используя механизмы работы
с Intents и асинхронными операциями через Idling Resources. Проработаны оба
варианта реализации интентов, что значительно улучшило интеграцию тестов
с функциональностью приложения. Также реализованы собственные ViewMatcher
и ViewAssertions для проверки состояния UI-элементов, что обеспечивает
уверенность в корректной работе приложения.



svg


         

Практическая работа

1. «Введение в нагрузочное тестирование»

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

2. «Подготовка стенда нагрузочного тестирования»

Успешно развернута система мониторинга на базе Telegraf и InfluxDB, а также
Node Exporter и Prometheus с последующим подключением графиков в Grafana.
Настроены параметры отправки метрик: для Telegraf — каждые 60 секунд, а
для Prometheus — каждые 36 секунд, включая мониторинг оперативной памяти,
swap, жесткого диска и сетевых метрик. Проведён тест на отображение всех
аппаратных метрик сервера, и сделаны скриншоты состояния системы
в покое, продолжительностью не менее 15 минут.

3. «Проведение нагрузочного тестирования WEB»

В ходе выполнения задания по проведению нагрузочного тестирования WEB
были успешно осуществлены два раунда тестирования. В первом раунде был
написан сценарий тестирования добавления комментария на сайт WordPress
через BlazeMeter. Во втором раунде был реализован сценарий тестирования
покупки билета и получения QR-кода через систему JMeter.

4. «Проведение нагрузочного тестирования DB»

В процессе выполнения задания по нагрузочному тестированию было
успешно запущено склонированное приложение с использованием
Docker-контейнеров и обеспечено подключение к базе данных MariaDB с
помощью DBeaver. Проведены замеры времени отклика для хранимых
процедур dorepeat_v1 и dorepeat_v2, результаты показали, что процедура
dorepeat_v2 работает дольше, чем dorepeat_v1 из-за своей более сложной
структуры. Установлены соответствующие графики и проведен их анализ.

5. «Подготовка отчёта о тестировании и завершение проекта»

Проведено тестирование системы сайта WordPress с использованием JMeter
для симуляции нагрузки и проверки производительности при записи данных.
Для этого были применены хранимые процедуры, предназначенные для
автоматического добавления комментариев в базу данных. Тестирование
позволило оценить поведение системы при записи данных без взаимодействия
с пользовательским интерфейсом. На основе полученных результатов был
составлен отчет, подтверждающий, что система обеспечивает заявленную
производительность.



svg


LevVolkov github-readme-stats

GitHub Streak

LevVolkov trophy stats

LevVolkov github-readme-stats


LevVolkov productive-time LevVolkov profile-details

Pinned Loading

  1. Selenide Selenide Public

    4 «Selenide»

    Java 1

  2. TestingWeb TestingWeb Public

    3 «Тестирование веб-интерфейсов с использованием Selenium»

    Java 1

  3. UI_test_on_Playwright UI_test_on_Playwright Public

    3.2 «Playwright»

    JavaScript 1

  4. Puppeteer-Cucumber Puppeteer-Cucumber Public

    5. «Puppeteer 2»

    JavaScript 1

  5. Appium Appium Public

    2.4 «Appium. Кроссплатформенная мобильная автоматизация тестирования»

    Java 1 1

  6. Espresso-advanced-automation Espresso-advanced-automation Public

    2.6 «Espresso. Продвинутая автоматизация тестирования Android»

    HTML 1