An open API service indexing awesome lists of open source software.

https://github.com/stalksa/testplan

План для автотестов
https://github.com/stalksa/testplan

Last synced: 3 months ago
JSON representation

План для автотестов

Awesome Lists containing this project

README

          

# План тестирования возможности записаться на обучение профессии «Тестировщик ПО»

## Сценарии автоматизации:

- Ввод адреса страницы (https://netology.ru) в адресную строку браузера
- Переход по ссылке на сайта Нетологии

## 1 Сценарий

1. Нажать кнопку "Каталог курсов"
2. Выбрать "Программирование" из списка "Направления обучения"
![Image1](https://github.com/STALKSA/TestPlan/raw/main/img/test3.png)
4. Воспользоваться скролом вниз до программы "Тестировщик ПО"
![Image1](https://github.com/STALKSA/TestPlan/raw/main/img/test.png)
5. Выбрать карточку "Тестировщик ПО"

## 2 Сценарий

1. Нажать кнопку "Каталог курсов"
2. В поисковой строке ввести направление "Тестировщик ПО"(полностью или частичный ввод)
![Image1](https://github.com/STALKSA/TestPlan/raw/main/img/test2.png)
4. Выбрать карточку "Тестировщик ПО"

## 3 Сценарий

1. Нажать кнопку "Каталог курсов"
2. В поисковой строке ввести направление "Тестировщик ПО"(полностью или частичный ввод)
![Image1](https://github.com/STALKSA/TestPlan/raw/main/img/test4.png)
4. Нажать кнопку "Найти курс"
5. Воспользоваться скролом вниз до программы "Тестировщик ПО"
6. Выбрать карточку "Тестировщик ПО"

## 4 Сценарий

1. Прокрутить Главную страницу к разделу "Направления обучения";
2. Нажать кнопку "Полный каталог";
3. Воспользоваться скролом вниз до программы "Тестировщик ПО"
4. Выбрать карточку "Тестировщик ПО"

## 5 Сценарий

1. Прокрутить Главную страницу к разделу "Направления обучения";
2. Нажать кнопку "Полный каталог";
3. В поисковой строке ввести направление "Тестировщик ПО"(полностью или частичный ввод)
4. Выбрать карточку "Тестировщик ПО"

## 6 Сценарий

1. Прокрутить главную страницу до футера;
2. Нажать ссылку "Каталог курсов";
3. В поисковой строке ввести направление "Тестировщик ПО"(полностью или частичный ввод)
4. Выбрать карточку "Тестировщик ПО"

## 7 Сценарий

1. Прокрутить главную страницу до футера;
2. Нажать ссылку "Программирование";
3. Воспользоваться скролом вниз до программы "Тестировщик ПО"
4. Выбрать карточку "Тестировщик ПО"

### По результату всех шагов-сценариев выше - открытие страницы курса "Тестировщик ПО"

## 1 Сценарий

Нажать на кнопку "Записаться"
![Image1](https://github.com/STALKSA/TestPlan/raw/main/img/test5.png)

## 2 Сценарий

Прокрутить страницу с курсом "Тестировщик ПО" вниз
Сверху-справа в head нажать кнопку "Записаться"
![Image1](https://github.com/STALKSA/TestPlan/raw/main/img/test6.png)

## 3 Сценарий

Прокрутить страницу вниз до формы "Запишитесь на курс"

## Сценарии заполнения формы регистрации на курс неавторизированным пользователем

HappyPath:

1. Заполнить поле "Имя" буквами из кириллицы или латиницы не менее двух букв;
2. Заполнить поле "Номер телефона" так же, как и по шаблону:
* Одиннадцать цифр;
* Форма ввода: +7 (999) 999-99-99;
* Разрешено от девяти до четырнадцати цифр;
3. Заполнить поле "Электронная почта" корректным e-mail:
* не должен содержать русских букв;
* Знак «собака» (@);
* Точку (.)
* Верное наименование почтового домена (mail.ru, yandex.ru, gmail.com и так далее)
4. Кликнуть по кнопке "Записаться" - произойдет переход к экранной форме записи.

Ожидаемый результат: сообщение об успешной записи

UnHappyPath:

## 1 Сценарий

Заполнить поле "Имя" цифрами
Заполнить поле "Номер телефона" валидным значением
Заполнить поле "Электронная почта" валидным значением
Кликнуть по кнопке "Записаться"

Ожидаемый результат: "Имя не может состоять из цифр"

## 2 Сценарий

Заполнить поле "Имя" латиницей
Заполнить поле "Номер телефона" валидным значением
Заполнить поле "Электронная почта" валидным значением
кликнуть по кнопке "Записаться".

Ожидаемый результат: "Имя должно быть на кирилице"

## 3 Сценарий

Заполнить поле "Имя" валидным значением
Заполнить поле "Номер телефонане" буквами
Заполнить поле "Электронная почта" валидным значением
кликнуть по кнопке "Записаться"

Ожидаемый результат: "Номер в формате +9 (999) 999-99-99"

## 4 Сценарий

Заполнить поле "Имя" буквой
Заполнить поле "Номер телефона" валидным значением
Заполнить поле "Электронная почта" валидным значением
кликнуть по кнопке "Записаться"

Ожидаемый результат: "Имя не должно быть не короче 2 символов"

## 5 Сценарий

Заполнить поле "Имя" валидным значением
Заполнить поле "Номер телефонане" большим кол-вом цифр
Заполнить поле "Электронная почта" валидным значением
кликнуть по кнопке "Записаться"

Ожидаемый результат: "Номер в формате +9 (999) 999-99-99"

## 6 Сценарий

Заполнить поле "Имя" валидным значением
Заполнить поле "Номер телефона" валидным значением
Заполнить поле "Электронная почта" русскими буквами
кликнуть по кнопке "Записаться".

Ожидаемый результат: сообщение "Неверный формат ввода email"

## 7 Сценарий

Заполнить поле "Имя" валидным значением
Заполнить поле "Номер телефона" валидным значением
Заполнить поле "Электронная почта" без знака @
кликнуть по кнопке "Записаться"

Ожидаемый результат: сообщение "Неверный формат ввода email"

## 8 Сценарий

Заполнить поле "Имя" валидным значением
Заполнить поле "Номер телефона" валидным значением
Заполнить поле "Электронная почта" без знака "."
кликнуть по кнопке "Записаться"

Ожидаемый результат: сообщение "Неверный формат ввода email"

## 8 Сценарий

Не заполнить поле "Имя"
Заполнить поле "Номер телефона" валидным значением
Заполнить поле "Электронная почта" валидным значением
Кликнуть по кнопке "Записаться"

Ожидаемый результат: "Поле Имя обязательно"

## 9 Сценарий

Заполнить поле "Имя" валидным значением
Не заполнить поле "Номер телефона"
Заполнить поле "Электронная почта" валидным значением
Кликнуть по кнопке "Записаться"

Ожидаемый результат: "Поле обязательно для заполнения"

## 10 Сценарий

Заполнить поле "Имя" валидным значением
Заполнить поле "Номер телефона" валидным значением
Не заполнить поле "Электронная почта"
кликнуть по кнопке "Записаться"

Ожидаемый результат: "Поле обязательно для заполнения"

## Сценарии заполнения формы регистрации на курс авторизированным пользователем

1. В форме авторизации нажать кнопку "Войти"
2. Поле "Имя" и "Номер телефона" заполнить теми данными, которые указывались при регистрации
3. Поле "Электронная почта" отсутствует
4. Кликнуть по кнопке "Записаться"

### По результату всех шагов-сценариев выше - запись на курс прошла успешно

## Уровни тестирования:

Компонентное (модульное) тестирование - проверить функциональность и искать дефекты в частях анкеты для записи.
Интеграционное тестирование - взаимодействие между компонентами системы.

## Виды тестирования:

Дымовое тестирование - рассматривает как короткий цикл тестов, выполняемый для подтвержения того, что после сборки кода (нового или исправленного) устанавливаемое приложение стартует и выполняет основные функции.
Функциональное тестирование - расматривает заранее указанное поведение и основывается на анализе спецификаций функциональности компонента или системы в целом.

## Используемые инструменты:

1. IntelliJ IDEA 2022.3.1 (Community Edition) - среда разработки, мощная и удобная, поддержка многих языков программирования, в частности Java, JavaScript, Python,с поддержкой всех последних технологий и фреймворков. Версия Community Edition бесплатная.
2. Java 11 язык для написания автотестов, имеет набор готового ПО для разработки и запуска приложений.
3. Gradle понадобится для сборки проекта, для управления подключенными зависимостями, а так же для генерации отчётов о тестировании. Он прост в использовании благодаря тому, что билд скрипты короче и чище чем у Ant и Maven.
4. JUnit 4/JUnit 5 необходим для написания и запуска тестов. Не требует контроля пользователя во время исполнения тестов, может запускать одновременно нектолько тестов, сообщает обо всех ошибках в ходе тестиования, предоставляет готовый набор методов для сравнения ожидаемого и фактического результатов.
5. Docker — это программное обеспечение, которое дает возможность на определенном участке памяти изолированно установить необходимую ОС (операционную систему), версию Java, настроить переменные окружения, установить различные зависимости и дать доступ только при определенных условиях.
6. Selenium/Selenide фреймвор,необходимый, для тестирования GUI. Помогает делать стабильные тесты, решая почти все проблемы с таймаутами, автоматически управляет браузером и делает скриншоты если тест упал.
7. Lombok - основанная на аннотациях библиотека Java, позволяющая сократить шаблонный код, уменьшает трудозатраты и время на разработку и обеспечивает некоторую дополнительную функциональность.
8. Faker- библеотека, необходимая для генерации тестовых данных.
9. Rest Assured - java-библиотека для тестирования REST API, позволяет автоматизировать тестирование get и post запросов.
10. Allure - фреймворк для создания отчетов о тестировании, наглядного отоображения прохождения тестов и ошибок. Обдадает более широким представление отчетов об проводимых тестах, чем Gradle.
11. Git и GitHub для ведения репозитория по проектам. Git достаточно прост и удобен для управления исходным кодом, очень распространенная система контроля версий, поэтому достаточно хорошо взаимодействует с различными ОС. GitHub специализированный веб-сервис с удобным интерфейсои, интегрирован с Git.
12. AppVeyor - распределённый веб-сервис непрерывной интеграции, предназначенный для сборки и тестирования программного обеспечения расположенного на GitHub и других сервисах хранения исходного кода (включая GitLab и Bitbucket), использующий виртуальные машины Microsoft Windows и Ubuntu. Этот сервис удобен тем что он имеет бесплатный базовый тариф, может осуществлять сборку как под управлением Linux, так и под Windows, а если необходимо то под несколькими сразу.

## Необходимые разрешения

1. Если проект реализует не сама Нетология, то необходимо письменное разрешение на проведение тестирования от владельца веб-сайта Нетологии.;
2. Доступ к API и БД (доступ к действующей базе данных несет определенные риски) для проверки результатов выполнения тестов;
3. Техническая документация, для понимания валидных и невалидных данных и др. требований.
4. API для отправки GET и POST запросов на сервер.

## Риски

1. Отсутствие технической документации.
2. Не значительное изменение реализации веб-элементов на странице, могут привести к падению ранее написаных авто-тестов.
3. Фвто-тесты не проверяют графический интерфейс (GUI) сайта;
4. Возможно "Замусовариние" бызы данных;
5. Ложные срабытывания по отправке форм, что в свою очередь может увеличить нагрузку по обработке данных.

## Требуемые специалисты

QA Engineer

## Оценка рисков
Ориентировочное время реализации: 30 человекочасов. Возможно распараллеливание проекта, так как сценарии перехода на страницу не зависят от сценариев заполнения и отправки формы.