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.

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


       

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

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

Написана программа для решения квадратных уравнений и калькулятор для расчёта
выплат по ипотеке.

«Функции»

Написана функция getArrayParams(...arr), которая получает на вход числа, а
возвращает минимальное, максимальное и среднее арифметическое значений массива.

«Массивы»

Создана функция compareArrays(arr1, arr2), которая с помощью функции высшего
порядка сравнивает значения двух массивов. А так же создана функция
getUsersNamesInAgeRange(users, gender), которая возвращает среднее
значение возраста пользователей одного пола.

«Объекты»

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

«Классы»

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

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

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

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

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

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

Написан усовершенствованный кеширующий декоратор cachingDecoratorNew,
который кеширует только последние пять различных вызовов функции.
Усовершенствован debounce декоратор, добавлены три дополнительные фичи.



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»

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

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

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

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

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



Certificate performance testing



   

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

1 «Введение в тестирование безопасности»

Были установлены необходимые инструменты: Wireshark, Firefox и
OWASP ZAP, что позволило начать работу с анализаторами сетевого
трафика. В процессе выполнения практических заданий осуществлен
захват трафика, проанализированы протоколы UDP и DNS, а также
выполнено исследование веб-сайта с помощью ZAP.

2 «Инъекции и уязвимости на уровне ОС»

Разработан план тестирования приложения, сосредоточенный на двух
полях: числовом и символьном. Для числового поля проверяли
переполнение на предельных значениях, а для символьного — обработку
входных данных и защиту от переполнения буфера. Также предложен
Whitelist для символьного поля, ограничивающий допустимые символы,
чтобы минимизировать риски атак.

3 «SQL, XSS, Code и другие инъекции»

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

4 «Сетевая безопасность»

Установлено приложение Nmap и выполнено сканирование хоста
scanme.nmap.org для определения запущенных сетевых служб
и операционной системы. Результаты анализа показали наличие
четырех служб и определили, что веб-сервером является Apache
httpd версии 2.4.7, работающий на одной из версий Linux.



Certificate security testing


   

Дипломная работа


Тестовая документация на проекте:

«План по проверке и автоматизации приложения»

«Чек-лист c отметками о пройденных и не пройденных тестах»

«Тест-кейсы для проверки приложения»

«Баг-репорты с обнаруженными ошибками»

«Allure-отчет с результатами прогона авто-тестов»

«Отчет о проведенном тестировании»



Certificate QAMID




Letter of recommendation


LevVolkov github-readme-stats

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. diplomaProject-QA diplomaProject-QA Public

    Дипломный проект по профессии «Инженер по тестированию»

    Kotlin