SlideShare a Scribd company logo
1 of 65
Download to read offline
Layout testing with Galen
Framework
LAYOUT DONE - DEPLOY!
Lead Test Automation Engineer,
EPAM
Web Testing
BDD expert
Akita library owner
Анна Чернышева
2
ДИЗАЙН - основная движущая сила, формирующая первое впечатление
Может приносить убытки
4
Bug с позиционированием всплывающих окон
Возник из-за обновления версии Chrome
3 часа пользователи не могли произвести
перевод в другой банк
Не User-friendly
5
Просто забавно
6
Положительное первое
впечатление приводит
к повышению
удовлетворенности
7
‣ Единый продукт, над
которым работают > 30
Scrum команд
‣ Web + Mobile версии
‣ 60% пользователей -
chrome
‣ 30% пользователей firefox
8
‣BDD
‣Единая библиотека Akita
для всех Web команд
9
Особенности тестирования в командах
Требования к инструменту для автоматизации тестирования верстки
‣ Низкий порог входа
‣ Поддержка кроссбраузерности
‣ Поддержка адаптивности
‣ Стабильность
‣ Возможность интеграции с существующими
инструментами
10
Backstop.js
Backstop.js
https://github.com/garris/BackstopJS
Языки: JavaScript
Тестирование скриншотами
12
Из чего состоит
13
‣ для рендеринга
‣ для эмуляции действий пользователя
‣ для анализа, сравнения скриншотов
Требования к инструменту для автоматизации тестирования верстки
✓Низкий порог входа
- Поддержка кроссбраузерности
✓Поддержка адаптивности
✓Стабильность
- Возможность интеграции с существующими
инструментами
14
aShot framework
aShot framework
https://github.com/pazone/ashot
Языки: Java
Тестирование скриншотами
16
Требования к инструменту для автоматизации тестирования верстки
- Низкий порог входа
✓Поддержка кроссбраузерности
✓Поддержка адаптивности
- Стабильность
✓Возможность интеграции с существующими
инструментами
17
Galen framework
Galen framework
https://github.com/galenframework
Языки: JavaScript, Java
Проверка расположение элементов
Тестирование скриншотами
19
Galen Framework позволяет
20
‣ Тестировать расположение элементов
‣ Тестировать css стили
‣ Тестировать по скриншотам
‣ Эмулировать действия пользователя
‣ Проверять адаптивность
‣ Тестировать в разных браузерах
‣ Интегрироваться с Selemium тестами
Требования к инструменту для автоматизации тестирования верстки
21
✓ Низкий порог входа
✓ Поддержка кроссбраузерности
✓ Поддержка адаптивности
✓ Стабильность
✓ Возможность интеграции с существующими
инструментами
Автоматизация
тестирования с
Galen framework
Начало работы
23
Элементы конкретной страницы и проверки описываются в
файлах .spec
Эталонные изображения в пакете images
24
registration-form
description-title
description-form
description-text
Спецификация *.spec
25
object definitions
@objects - элементы на странице (можно использовать CSS, XPATH)
26
registration-form
description-title
description-form
description-text
Спецификация *.spec
27
object specs
Что проверяем?
‣ Адаптивность страницы
28
Desktop Tablet Mobile
Адаптивность страницы
29
‣ Tags для разных экранов
Пользовательский сценарий
Сценарий: Отображение страницы входа GitHub
Дано совершен переход на страницу "GitHub" по ссылке "gitHubUrl"
Тогда страница соответствует спецификации
"gitHubPage.spec" для экрана "desktop"
@Тогда("(?:страница соответствует|соответствует|блок соответствует) спецификации
"([^"]*)" для экрана "(D+)"")
public void compareCurrentPageWithBase(String spec, String tag) {
List<String> tags = new ArrayList<>();
tags.add(tag);
checkLayoutAccordingToSpec(spec, tags);
}
Cucumber Step Definition
Проверка, что текущая страница соответствует описанным в .spec файле
требованиям
* @param spec - Название galen-spec, где описан ожидаемый дизайн
* @param tag - название тэга в galen-speс (@on desktop), для которого
описан дизайн конкретных элементов.
Запуск тестов
32
Проверки в .spec файлах описали
Эталонные скриншоты сделали
Локально тесты прошли
Запуск тестов
33
Проверки в .spec файлах описали
Эталонные скриншоты сделали
Локально тесты прошли
Пора запустить тесты на ремоуте!

(у себя используем Selenoid)
Первый запуск тестов в Selenoid
34
Несоответствие изображений на разных ОС
error=Error{[Element does not look like «./akita-testing-template/src/test/resources/specs/
images/registration-form.png». There are 10,47% mismatching pixels but max allowed is 10%]
35
Actual Expected Map
Решение проблемы тестирования в разных OC
36
‣ Поставить допустимую погрешность (error) 15%
Решение проблемы тестирования в разных OC
37
‣ Поставить допустимую погрешность (error) 15%
‣ Тестировать все в Docker
Решение проблемы тестирования в разных OC
38
‣ Поставить допустимую погрешность (error) 15%
‣ Тестировать все в Docker
‣ Ставить специальные теги в .spec файлах
Погрешность 15%
39
object specs
Make sure it's more than 15 characters,
or at least 7 characters, including a
number, and a lowercase letter.
Погрешность 15%
40
object specs
Use at least one letter, one numerical,
and seven characters.
Пройдет ли проверка?
41
Да!
42
There are 13,76% mismatching pixels
Google vision
43
galen.ocr.google.vision.key property.
Сравнение изображений
44
registration-form:
image file images/registration-form—*.png, error 5%
registration-form:
image file images/registration-form-1.png, error 5%, stretch
registration-form:
image file images/registration-form-1.png, error 5%, crop-if-outside
Сравнение изображений
45
registration-form:
image file images/registration-form—*.png, error 5%
registration-form:
image file images/registration-form-1.png, error 5%, stretch
registration-form:
image file images/registration-form-1.png, error 5%, crop-if-outside
Сравнение изображений
46
registration-form:
image file images/registration-form—*.png, error 5%
registration-form:
image file images/registration-form-1.png, error 5%, stretch
registration-form:
image file images/registration-form-1.png, error 5%, crop-if-outside
Galen-extras
Список элементов
48
49
Desktop view
Mobile view
50
@on mobile
| &menu_items are aligned horizontally next to each other with 5px margin
Автоматическое
дизайн-ревью
52
У дизайнера есть свое виденье будущей фичи
Дизайнер понимает что “это” будет -
фронт понимает как “это” будет
53
Дизайнер и фронт-разработчик
Вместе заполняют контракт
*.spec в рамках проекта,
в котором описывают:
➡ какие элементы будут на
странице
➡ как они будут выглядеть (стили,
шрифты и прочее)
➡ где они будут располагаться
54
«Контракт» между дизайнером и разработчиком
55
А что же делает тестировщик?
дополняет «Контракт»
следующим:
описывает элементы на
странице согласно локаторам
56
А что же делает тестировщик?
дополняет «Контракт»
следующим:
описывает элементы на
странице согласно локаторам
уточняет/проверяет
расположение элементов, их
стили и шрифты
57
А что же делает тестировщик?
дополняет «Контракт»
следующим:
описывает элементы на
странице согласно локаторам
уточняет/проверяет
расположение элементов, их
стили и шрифты
создает эталонные скриншоты
58
В итоге
‣ Сократили количество и время прохождения smoke
тестов ∽ на 20%
59
В итоге
‣ Сократили количество и время прохождения smoke
тестов ∽ на 20%
‣ Уверены в корректном отображении страницы для
топовых браузеров
60
В итоге
‣ Сократили количество и время прохождения smoke
тестов ∽ на 20%
‣ Уверены в корректном отображении страницы для
топовых браузеров
‣ Пришли к автоматическому дизайн-ревью
61
В итоге
‣ Сократили количество и время прохождения smoke
тестов ∽ на 20%
‣ Уверены в корректном отображении страницы для
топовых браузеров
‣ Пришли к автоматическому дизайн-ревью
‣ Поймали баги при изменении библиотеки UI-
компонентов
62
Подходит если
‣Зрелая Scrum команда
‣Требуется соблюдение единого дизайна
многостраничного приложения
‣Разрабатываем Webview и Web версии
‣В команде нет выделенного дизайнера на Full-time
63
Не всегда оправданно, если
‣Молодая Scrum команда
‣One page application
‣В команде есть Full-time дизайнер, который
сам проводит ревью верстки новых внедрений
64
65
www.facebook.com/anna.chernyshova.79
github.com/alfa-laboratory/akita/
github.com/alfa-laboratory/akita-testing-template/
Q&A

More Related Content

What's hot

Типичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverТипичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriver
Igor Khrol
 
Автоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1CАвтоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1C
Alexey Lustin
 
Web driver история одной миграции
Web driver   история одной миграцииWeb driver   история одной миграции
Web driver история одной миграции
Igor Khrol
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest
 

What's hot (20)

Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформа
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
 
Grail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестовGrail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестов
 
Типичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverТипичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriver
 
Адаптация Git flow при коллективной разработке на 1с
Адаптация Git flow при коллективной разработке на 1сАдаптация Git flow при коллективной разработке на 1с
Адаптация Git flow при коллективной разработке на 1с
 
Автоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1CАвтоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1C
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
 
Web driver история одной миграции
Web driver   история одной миграцииWeb driver   история одной миграции
Web driver история одной миграции
 
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter..."Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализация
 
Тестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаТестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях Интернета
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Денис Трифонов
Денис ТрифоновДенис Трифонов
Денис Трифонов
 
Игорь Кашкута
Игорь КашкутаИгорь Кашкута
Игорь Кашкута
 
Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
 
Шаблоны проектирования нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптовШаблоны проектирования нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптов
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для Android
 

Similar to Layout testing with galen framework selenium camp

Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
Gleb Rybalko
 
IT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действииIT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действии
Gleb Rybalko
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Yandex
 
Проектирование большого интернет-магазина
Проектирование большого интернет-магазинаПроектирование большого интернет-магазина
Проектирование большого интернет-магазина
Artem Markov
 
Разработка интернет-магазина: от идеи до реализации
Разработка интернет-магазина: от идеи до реализацииРазработка интернет-магазина: от идеи до реализации
Разработка интернет-магазина: от идеи до реализации
sportgid
 
Atlassian user group
Atlassian user groupAtlassian user group
Atlassian user group
Gonchik Tsymzhitov
 
DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...
DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...
DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...
it-people
 

Similar to Layout testing with galen framework selenium camp (20)

Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008
 
Workflow: работа над проектом в Яндексе
Workflow: работа над проектом в ЯндексеWorkflow: работа над проектом в Яндексе
Workflow: работа над проектом в Яндексе
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practices
 
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
 
Описание и архитектура TFS 2008
Описание и архитектура TFS 2008Описание и архитектура TFS 2008
Описание и архитектура TFS 2008
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
WebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funWebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double fun
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
IT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действииIT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действии
 
Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspb
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
 
Проектирование большого интернет-магазина
Проектирование большого интернет-магазинаПроектирование большого интернет-магазина
Проектирование большого интернет-магазина
 
Разработка интернет-магазина: от идеи до реализации
Разработка интернет-магазина: от идеи до реализацииРазработка интернет-магазина: от идеи до реализации
Разработка интернет-магазина: от идеи до реализации
 
Team workflow
Team workflowTeam workflow
Team workflow
 
Atlassian user group
Atlassian user groupAtlassian user group
Atlassian user group
 
Отладка веб-приложений на Javascript
Отладка веб-приложений на JavascriptОтладка веб-приложений на Javascript
Отладка веб-приложений на Javascript
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
 
QAFest. Роль тестирования в Devops
QAFest. Роль тестирования в DevopsQAFest. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
 
DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...
DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...
DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...
 

Recently uploaded

2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 

Recently uploaded (9)

2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 

Layout testing with galen framework selenium camp