Это краткое руководство по использованию диаграмм и графиков Mermaid и ChatGPT для составления карты пути пользователя и создания тест-кейсов для приложений.
Платформы
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Диаграмма Mermaid
Для этой статьи была создана диаграмма на основе веб-сайта с главной страницей, возможностью входа и регистрации, а также областью входа в систему:
flowchart TD A[Homepage] -->|Click Login| B(Login Modal) A -->|Click Sign up| C(Registration Page) C -->|Click back| A B -->|Enter valid username and password| D[Login Button] B -->|Enter incorrect details| B B -->|Close Modal| A D -->|Click Login| E[Logged in lobby] C -->|Enter valid details| F[Submit Button] C -->|Enter incorrect details| C F -->|Click Submit| E E --> G[Logout Button] -->|Click Logout| A

Как видно на фото, существует множество условий и путей прохождения сайта, которые могут потребовать тестирования.
В первую очередь следует понять сложность этого сайта и потенциальный объём тестирования.
Запрос:
«Какова цикломатическая сложность этой диаграммы?».
flowchart TD A[Homepage] -->|Click Login| B(Login Modal) A[Homepage] -->|Click Sign up| C(Registration Page) C -->|Click back| A B[Login Modal] --->|Enter valid username and password| D[Login Button] B -->|Enter incorrect details| B B -->|Close Modal| A D -->|Click Login| E[Logged in lobby] C -->|Enter valid details| F[Submit Button] C -->|Enter incorrect details| C F -->|Click Submit| E E --> G[Logout Button] -->|Click Logout| A
Ответ:
Процесс расчёта цикломатической сложности для представленной блок-схемы:
- Количество граней (E): 17.
- Количество узлов (N): 12.
- Количество связанных компонентов (P): 1.
Цикломатическая сложность считается по следующей формуле:
V(G) = 17–12 + 2(1) = 17–12 + 2 = 5 + 2 = 7
Сложность этой блок-схемы равна 7. Этот показатель представляет собой количество независимых путей через блок-схему, и может быть использован для оценки объёма тестирования и выявления потенциально сложных и проблематичных областей в ПО.
Исходя из этого ответа, видно, что пользовательские пути из примера являются умеренно сложными. В соответствии с рекомендациями, где 0-5 — простые, 5-10 — умеренные и 10+ — с высоким уровнем сложности.
Далее можно сгенерировать несколько тест-кейсов, которые будут охватывать эти пути прохождения веб-сайта пользователем.
Запрос:
«Создай тест-кейсы на основе этой диаграммы, без указания шагов тестирования».
В результате создан список возможных тест-кейсов, которые можно использовать для предоставленной блок-схемы: Успешный вход в систему с использованием действительных учётных данных. Неудачный вход в систему с использованием недействительных учётных данных. Успешная регистрация с использованием действительных данных. Неудачная регистрация с использованием недействительных данных. Успешный выход из системы. Переход с главной страницы в окно входа. Переход с главной страницы на страницу регистрации. Закрытие окна входа без попытки осуществить вход в систему. Закрытие страницы регистрации без отправки каких-либо данных. Закрытие страницы регистрации после ввода неполных или недействительных данных. Закрытие окна входа после ввода недействительных данных. Переход на главную страницу со страницы регистрации. Переход на главную страницу с окна входа в систему. Успешная отправка формы регистрации. Успешная отправка формы входа в систему после неудачной попытки. Нажатие кнопки «Выход» из «Личного кабинета». Переход в «Личный кабинет» после успешной регистрации. Переход в «Личный кабинет» после успешного входа в систему. Переход в «Личный кабинет» с главной страницы и последующий выход из системы. Переход на главную страницу после выхода из системы.
В итоге ChatGPT быстро создал значительное число тест-кейсов, на создание которых обычно уходит много времени и сил, чтобы проследить путь пользователя на сайте и рассмотреть возможные ошибки и сбои.
Наконец, нужно рассмотреть некоторые пути пользователя, которые являются критически важными и затрагивают большое число узлов диаграммы. Для этого нужно создать более подробные тест-кейсы с включёнными шагами воспроизведения. Полученные тест-кейсы можно добавить в тестовый набор и инструмент управления тестированием.
Запрос:
«Для путей пользователя, которые охватывают большинство узлов, создай тест-кейсы с шагами воспроизведения».
Среди путей, которые охватывают большинство узлов на предоставленной диаграмме, можно выделить следующие ключевые сценарии тестирования. Для этих сценариев можно использовать следующие тест-кейсы с шагами воспроизведения: Путь 1: Успешный вход в систему (охватывает узлы A, B, D и E) Тест-кейс 1: Успешный вход в систему с использованием действительных учётных данных Описание: Проверка, что пользователь может войти в систему, используя действительные учётные данные. Шаги воспроизведения: Перейти на главную страницу (A). Нажать кнопку «Вход». Ввести действительные имя пользователя и пароль в окне входа в систему(B). Нажать кнопку «Вход» (D). Ожидаемый результат: Пользователь должен перейти в «Личный кабинет» (E). Путь 2: Успешная регистрация (охватывает узлы A, C, and E) Тест-кейс 2: Успешная регистрация с использованием действительных данных Описание: Проверка, что пользователь может успешно зарегистрироваться. Шаги воспроизведения: Перейти на главную страницу (A). Нажать кнопку «Регистрация». Ввести действительные и корректные данные на странице регистрации (C). Нажать кнопку «Отправить» (F). Ожидаемый результат: Пользователь должен перейти в «Личный кабинет» (E). Путь 3: Успешный выход из системы (охватывает узлы E and G) Тест-кейс 3: Успешный выход из системы Описание: Проверка, что пользователь может успешно выйти из системы. Шаги воспроизведения: Убедиться, что пользователь вошёл в «Личный кабинет» (E). Нажать кнопку «Выход» (G). Подтвердить действие, нажав кнопку «Выйти» (A). Ожидаемый результат: Пользователь выйдет из системы и будет перенаправлен на главную страницу (A). Эти тест-кейсы охватывают большинство узлов на диаграмме, а также представляют критически важные пользовательские пути, включая вход, регистрацию и выход. Фактические шаги воспроизведения и ожидаемые результаты могут потребовать дополнительных деталей в зависимости от требований приложения.
Что дальше?
- Можно создать автоматизированные скрипты тестирования на выбранном языке на основе сгенерированных тестовых сценариев.
- А также расширить сложность диаграммы пути пользователя и включить в неё тестовые данные, которые будут использованы при тестировании.
Перевод статьи «Using Mermaid + ChatGPT for Test Case generation and management».
Пингбэк: Большой учебник по написанию тест-кейсов