- Введение в Selene
- Быстрый Старт. Исходные условия, зависимости, первые шаги и документация
- Selene в действии
- Задание 1: Selene и CSS
- "Строгие, но хрупкие" или "слабые, но стабильные" локаторы?
- Локаторы, автоматически сгенерированные в инспекторе, или подобранные вручную?
- Когда выносить локаторы в отдельные переменные и/или классы?
- Как найти элемент из списка однотипных элементов по нужному тексту его внутреннего элемента (CSS)?
- Структурная информация в именах тест-сьюта и тестов, которая не несет пользы с точки зрения тестирования
- Установка пути к chromedriver в коде?
- Хрупкие строгие локаторы
- Избыточность в путях - привязка к тегу
- Избыточность в путях - привязка к точному пути
- Привязка к полному значению аттрибута class либо его начала или конца
- Хрупкие гибкие локаторы. Привязка к частичному значению атрибута class
- Построение локатора с помощью менее читабельных и понятных аттрибутов либо их значений
- Слишком краткие и потому менее информативные, неочевидные локаторы
- Неконсистентные селекторы
- Задание 2: Selene и XPATH
- Как в XPATH искать по одному CSS классу а не по всему значению соответствуеющего аттрибута?
- Как найти элемент из списка однотипных элементов по нужному тексту его внутреннего элемента (XPath)
- Задание 3: Рефакторинг сложных XPath-селекторов
- Где лучше сохранить вспомогательные функции для построения сложных XPath-селекторов? (Стратегия сохранения функций)
- Важность имен
- Какую именно часть длинного сложного XPath селектора стоит выносить в отдельные функции, а какие нет?
- Избыточность имен
- Неясные неполные имена вспомогательных функций
- Где лучше сохранить вспомогательные функции для построения сложных XPath-селекторов? (Стратегия сохранения функций)
- Задание 4: XPath DSL [не обязательное]
- I Начало. Проверка Концепции
- Шаблон первого теста
- "Быстрые в реализации" тесты. Читабельность, очевидность и лаконичность
- "Быстрые в выполнении" тесты. Уровень сложности тестовых данных
- Более быстрый ввод текста с помощью Javascript
- Проверки (Assertions)
- Полнота проверок
- "Флоу" End-to-End-теста. Упрощенный тест-план
- Задание 5: POC-тест
- Изначальные условия и приоритеты
- Изучение функционала и основных сценариев пользователя
- Уточнение приоритетов. Поиск и игнорирование низкоприоритетных операций
- Определение сценария для автоматизации
- Декомпозиция локаторов. Альтернатива нечитабельным XPath
- Оптимизация локаторов по скорости выполнения поиска
- Типичная проблема: локатор верный но элемент "не тот"
- Типичная проблема: Локатор находит невидимого "клона" элемента. Недостаточно строгие локаторы для однотипных элементов
- Работа с "клонами": фильтр элемента по видимости
- Подбор уникального селектора через сужение поиска до поиска внутри родителя с уникальными атрибутами
- Относительные локаторы, менее лаконичные, но более информативные, и следовательно очевидные и читабельные
- Подсказываем тест-логику с помощью подбора более информативных тестовых данных
- Неявные проверки в End-to-End-тестах
- Проверяем "все что осталось" а не только "то что изменилось"
- Акцент на функциональных проверках
- Информативные локаторы
- Типичная проблема: элемент не готов к действию
- Базовое структурирование теста
- Комментарии как оглавления
- Самодокументируемый код
- Именование Тестов
- Ревью покрытия. Учитываем "побочные эффекты". Пропущенные операции
- II Пересмотр. Рефакторинг Теста - Часть 1
- Принципы DRY и KISS
- DRY и структурирование кода с помощью сложных конструкций языка. KISS против
- DRY для более легкого набора повторяющегося кода с помощью переменых/функций
- Переменные или функции?
- Переменные. Refactoring>Extract>Variable
- Анализ частей повторяющегося кода с точки зрения вероятности изменений
- Переменные в тест-методе или за его границами?
- Скоуп определения абстракций
- Refactoring>Extract>Field
- Переменные с локаторами против переменных с элементами
- Функции?
- Refactor>Extract>Function. Функции с "зашитыми данными" (hardcoded data)
- Функции с параметрами
- Функции со встроенными проверками?
- Функции + переменные. Вынесение "всех локаторов" в переменные?
- Самодокументируемый код - функции вместо комментариев
- Послабление KISS при сокрытии сложности в реализациях функций
- KISS и тест-шаги: переменные/функции в тестах "ради полной читабельности" против "ради DRY"
- Задание 6: Примени принцип DRY
- Задание 7: Примени принцип KISS ради читабельности
- Задание 8: Найди баланс между KISS и DRY
- Сокрытие технических деталей. Контекст
- Задание 9: Скрой настройку базового URL
- День Независимости Тестов
- Больше тестов
- Независимые тесты через упрощение тест-логики
- Независимые тесты с помощью контроля их окружения через управление данными в базе
- Предпочтение явным предусловиям следуя KISS перед их сокрытием для DRY
- Задание 10: Допиши тест на фильтрование задач и сделай тесты независимыми следуя принципу DRY
- Задание 11: Упрости реализацию независимости тестов следуя принципу KISS используя явные пред-условия
- Принципы DRY и KISS
- III Закалка. Расширение покрытия. Атомарные тесты
- Задание 12: Расширь покрытие действий на фильтре "All"
- IV Структура и переиспользование. Рефакторинг Тестов - Часть 2
- Код с Запашком: Большой Модуль/Класс
- Ретроспектива на базовые принципы в начале построения автоматизации
- Рефакторинг: Извлечение модуля/класса
- Cтруктура
- Замена наследования композицией
- Имена в контексте
- Снова о DRY и переиспользовании кода
- Шаблон PageObject
- Задание 13: Расширь покрытие действий на фильтре "Active" и "Completed"
- Виджеты (Применяем PageObject к компонентам на странице)
- Задание 14: Выдели виджет представляющий текстовую метку редактируемую по двойному клику
- Общие частые вопросы и ответы
- Тестовая логика
- Рекомендации и общепринятые договоренности в подборе имен
- Рекоммендации к улучшению читабельности имен
- Шаблон построения имени функции или метода
- Шаблон построения имени переменной
- Использование общепринятой терминологии
- Не злоупотреблять сокращениями
- Терминология в контексте
- Говорим на языке местных
- Недвусмысленность
- Лаконичность
- Не повторять то, что уже задано контекстом
- Простота
- Рекоммендации к улучшению читабельности имен
Last active
May 15, 2020 14:04
-
-
Save yashaka/55e47e730cee6734ec35c03b2fa46947 to your computer and use it in GitHub Desktop.
Программа Курса "Искусство Автоматизации Тестирования с Selene + Python"
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment