View
1.069
Download
4
Category
Preview:
DESCRIPTION
Илья Кацев "Автоматизация тестирования веб-форм" Я.Субботник в Новосибирске О докладе: Рассказ пойдет о том, как в Яндексе организовано автоматическое тестирование форм в веб-интерфейсах. В зависимости от того, какая информация о форме нам известна, мы можем проводить различные тесты. В каких ситуациях можно автоматически распознать и выделить элементы формы на странице, даже если никакой информации о странице у нас нет? Как мы создаем наборы тестовых сценариев для проверок, когда уже обладаем какой-то информацией о форме?
Citation preview
Субботник, Новосибирск, 19 ноября 2011 года
Ведущий инженер по тестированию Илья Кацев
Автоматизация тестирования веб-‐форм
Примерный план
Зачем?
Распознавание форм
Генерация данных
Универсальные проверки
Нерешенные проблемы
1
Примерный план
Зачем?
Распознавание форм
Генерация данных
Универсальные проверки
Нерешенные проблемы
2
Лень
Тестирование вручную
3
Лень
Тестирование вручную
Автотесты
3
Лень
Тестирование вручную
Автотесты
Универсальные автотесты
3
Роботы
4
Spidy
5
Список проверок:
Ссылки Картинки JS Стили
6
Spidy-‐man
7
Новые возможности
Формы Верстка
8
Новые возможности
Формы
Проверки Обход
8
Примерный план
Зачем?
Распознавание форм
Генерация данных
Универсальные проверки
Нерешенные проблемы
9
Сложность
10
Сложность
44800000 сценариев!
10
Сложность
10
Сложность
2800 сценариев!
10
Структура формы
11
Структура формы
11
Структура формы
11
Определение формы
<form>
js js:dynamic
12
Как определить зависимости?
1. Анализ JS
2. Анализ изменений страницы
12
Релевантные элементы
13
Релевантные элементы
div
14
Релевантные элементы
div
14
Релевантные элементы
div
14
Релевантные элементы
14
Граф элементов
15
Граф элементов
15
Граф элементов
16
Граф элементов
16
Граф элементов
16
Граф элементов
16
Граф элементов
16
Граф элементов
16
Граф элементов
16
Распознавание полей ввода
input имя тип поля
17
Распознавание полей ввода
input имя
17
Распознавание полей ввода
18
Распознавание полей ввода
getText = “”
18
Распознавание полей ввода
getText = “Пробег до(тыс. км.)”
18
Распознавание полей ввода
getText = “”
18
Распознавание полей ввода
getText = “Объём двигателя отдо(л)”
18
Примерный план
Зачем?
Распознавание форм
Генерация данных
Универсальные проверки
Нерешенные проблемы
19
Схема
информация о форме
20
Схема
информация о форме покрытие
20
Схема
информация о форме
алгоритм покрытие
20
Схема
информация о форме
алгоритм покрытие
количество сценариев
20
Тестовые значения
e-‐mail
Значение Вес
yandex@yandex.ru 1
ya@ya.ru 1
yandex@website.travel 0.8
yandex@yandex.com.tr 0.7
… 0.5
0.5
0.3
0.1
21
Тестовые значения
вес
Поле
От
До
Год
Модель
Пробег
21
Тестовые значения
0.5
Поле
От 10
До 10
Год 7
Модель 12
Пробег 5
21
Тестовые значения
0.8
Поле
От 3
До 3
Год 1
Модель 4
Пробег 2
21
Схема
вес
алгоритм покрытие
количество сценариев
22
Поисковые формы
набор условий
23
Поисковые формы
набор условий 0 результатов
23
Поисковые формы
набор условий
поднабор
поднабор
поднабор
23
Примерный план
Зачем?
Распознавание форм
Генерация данных
Универсальные проверки
Нерешенные проблемы
24
25
26
27
28
Примерный план
Зачем?
Распознавание форм
Генерация данных
Универсальные проверки
Нерешенные проблемы
29
Нерешенные проблемы
Сложные формы
ajax
30
bromozel@yandex-‐team.ru
Ведущий инженер по тестированию Илья Кацев
Recommended