Как научить роботов тестировать веб-интерфейсы. Артем...

Post on 11-Nov-2014

8.215 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Артем Ерошенко, Яндекс Закончил математико-механический факультет Санкт-Петербургского государственного университета, учится на 3 курсе аспирантуры по специальности «Теория управления». С 2008 года занимается автоматизацией тестирования выдачи поиска и околопоисковых сервисов в компании «Яндекс». С 2011 года координирует группу разработки инструментов тестирования. Илья Кацев, Яндекс Окончил математико-механический факультет Санкт-Петербургского государственного университета, защитил диссертацию по теории игр на степень PhD в VU University Amsterdam (Нидерланды). В Яндексе занимается автоматизацией тестирования (имитация действий пользователя и анализ результата). Тема доклада Как научить роботов тестировать веб-интерфейсы. Тезисы Речь пойдет об инструменте, который будет сам проверять веб-интерфейсы на наличие ошибок. Главное его качество – способность самостоятельно (автоматически) обнаруживать связанные элементы на странице, строить модели, которые потом можно будет тестировать автоматически. Мы не только предложим идеи, как использовать и развивать эту систему, но и покажем её прототип.

TRANSCRIPT

Как научить робота тестировать

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

Артем Ерошенкоeroshenkoam@yandex-team.ru

Илья Кацевbromozel@yandex-team.ru

71

top related