Как научить робота тестировать Web-интерфейс Артем Ерошенко, Илья Кацев 1
Nov 11, 2014
Как научить робота тестировать
Web-интерфейсАртем Ерошенко, Илья Кацев
1
2
2
3
Проверки вне контекста
CсылкиКартинки JavaSriptВерсткаФормы
4
Проверки вне контекста
CсылкиКартинки JavaSriptВерсткаФормы
4
5
Автоматизация
6
Эволюция
7
Эволюция
7
spidy
8
spidy
8
Обход
9
Ограничения обхода
10
Ограничения обхода
10
Проверки
11
Проверки вне контекста
CсылкиКартинки JavaSriptВерсткаФормы
12
Универсальные тесты
CсылкиКартинки JavaSriptВерстка
13
Извлечение ссылок
<a href=”...”>...</a>
<img src=”...” />
<script src=”...”></script>
<link rel=”...” src=”...”/>
background-image: url(path)14
Тестирование ссылок
status code
redirect
15
Тестирование ссылок
status codecontent-type
content-length
content-encodingredirect
15
Универсальные тесты
CсылкиКартинки JavaSriptВерстка
16
Извлечение картинок
<img src=”...” />
<style>...</style>
17
Тестирование картинок
x18
Универсальные тесты
CсылкиКартинки JavaSriptВерстка
19
Извлечение скриптов
<script src=”...”></script>
<script>...</script>
20
Тестирование скриптов
синтаксис
мертвый код
доступность
21
Универсальные тесты
CсылкиКартинки JavaSriptВерстка
22
Извлечение стилей
<link rel=”stylesheet” src=”...”/>
<style>...</style>
23
Тестирование стилей
синтаксис
мертвый код
доступность
24
Специфичные тесты
25
Специфичные тесты
favicon
25
Специфичные тесты
favicon 404
25
Специфичные тесты
favicon 404 robots.txt
25
Специфичные тесты
favicon 404 robots.txt title
и еще...25
Настройки системы
прокси
авторизация
26
Покрытие
27
Ограничения spidy
разбор статической html-страницы
нет поддержки разных браузеров
28
spidy-man
29
spidy-man
29
30
30
Prototype
30
Prototype
Keeneyesight
30
Prototype
Activeactions
Keeneyesight
30
Prototype
Activeactions
Keeneyesight
Tester’sHeart
Поведение человека
31
Новые возможности
ФормыВерсткаJavaScript
32
Анализ Генерация Тесты
Contoller
link
form
js
link link
form form
js js
33
34
Contollerанализ
адресстраницы
схемаданных
Анализ
35
Contoller генерация
схема данных
ограничения data
Генерация
36
dataтесты
это обычные тестыа это делают люди
Тестирование
генерация
Новые возможности
ФормыВерсткаJavaScript
37
Сложность
38
Сложностьbla-bla-bla
bla-bla-blabla-bla-blaclick!
38
Результат?
44,800,000сценариев!
39
Действия человека
40
Действия человека
40
Человек эффективнее
2800сценариев
в 16,000 раз
41
Человек эффективнее
2800сценариев
в 16,000 раз
41
Человек эффективнее
2800сценариев
в 16,000 раз
41
Анализстраницы
Генерацияданных
Проведениетестов
42
Определение формы
43
Определение формы
form
43
Определение формы
js:ajax
43
Определение формы
js:dynamic43
Анализстраницы
Генерацияданных
Проведениетестов
44
Оптимальная генерация
45
Ограничение по ресурсам
46
Количество вариантовВыпад. список Фиксированное
Чекбокс количество
Радио кнопка вариантов
Text input Количество вариантов
Выбор даты задается тестером
47
Анализстраницы
Генерацияданных
Проведениетестов
48
Универсальные проверки
49
Универсальные проверки
49
Универсальные проверки
49
Универсальные проверки
49
Универсальные проверки
49
Специфичные формы
50
Специфичные формы
51
Новые возможности
ФормыВерсткаJavaScript
52
Действия человека
53
Действия человека
53
Анализстраницы
Генерацияданных
Проведениетестов
54
Координаты блоков
position.x
position.y
width
height
55
Анализстраницы
Генерацияданных
Проведениетестов
56
Типы отношений
границы блока относительное расположение
выравнивание
57
Типы отношений
границы блока относительное расположение
выравнивание
57
Полнота проверок
бинарные отношения
гибкие проверки
58
Анализстраницы
Генерацияданных
Проведениетестов
59
Изменение размера
60
Изменение размера
60
Разные браузеры
61
Разные браузеры
61
Новые возможности
ФормыВерсткаJavaScript
62
Анализ JavaScript
обнаружени форм
анализа зависимых элементов
63
Тестирование JavaScript
64
Подкрутить
65
66
Окончание загрузкистраници
67
Множество элементовна странице
68
mr. Spider
69
mr. Spider
69
Интеллектище!
Статистика и обучение
Проверки flash, html5
Глубокий анализ JavaScript
70