Илья Кацев "Автоматизация тестирования веб-форм"

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  

 

Ведущий  инженер  по  тестированию  Илья  Кацев