33
Автоматизация тестирования для Android Проект Testbot

Автоматизация тестирования для Android 3

  • Upload
    sqalab

  • View
    856

  • Download
    8

Embed Size (px)

DESCRIPTION

Дмитрий Вильнер - доклад на SQA Days, 2-3 декабря 2011, Москва

Citation preview

Page 1: Автоматизация тестирования для Android   3

Автоматизация тестирования для Android

Проект Testbot

Page 2: Автоматизация тестирования для Android   3

2

Концепция подхода

Применение

Архитектура

Page 3: Автоматизация тестирования для Android   3

3

Концепция подхода

Page 4: Автоматизация тестирования для Android   3

4

Page 5: Автоматизация тестирования для Android   3

5

Проблемы

Page 6: Автоматизация тестирования для Android   3

6

To sikuli or not to sikuli?

100 сценариевИзменились шрифты...Прошла неделя...

Page 7: Автоматизация тестирования для Android   3

7

Прямой порядок выполнения

Page 8: Автоматизация тестирования для Android   3

8

Независимость теста от отображения данных.

Обработка непредвиденных ситуаций.

Главные задачи

Page 9: Автоматизация тестирования для Android   3

9

Event-ориентированная

система

Page 10: Автоматизация тестирования для Android   3

10

Что такое Event-ориентированная система?

Событие

Реакция

Page 11: Автоматизация тестирования для Android   3

11

Взаимодействие между приложением и Testbot

App

Testbot

Even

ts

Информация пользовательского уровня

Фокусировка на файле

Файл открылся

Открылось контекстное меню

Анализ события

Анализ контекста

Actio

ns

Используемая память

Ошибки в приложении

Время

Служебная информация

Page 12: Автоматизация тестирования для Android   3

12

1. Окрыть документ (курсор в первом параграфе).

2. Перемещать курсор вправо, пока он не достигнет начала следующего параграфа.

3. Нажать Backspace.Exp. result: параграфы объединились.

Пример: тест, объединяющий параграфы в текстовом документе

Page 13: Автоматизация тестирования для Android   3

13

Page 14: Автоматизация тестирования для Android   3

14

Time Line

File “For test.docx” is focused

Testbot

Press Enter

File “For test.docx” is focused

Press Enter

Page 15: Автоматизация тестирования для Android   3

15

Pass

Time Line TestbotFile “For test.docx” is focused

Press EnterDocument is opened

Press RightCursor is moved right in paragraph 0

Press RightCursor is moved right in paragraph 0

Press RightCursor is moved right in paragraph 1

Press BackspaceParagraphs are merged

Pass

Document opened

Press Right

Cursor is moved right in

paragraph 0

Press Right

Cursor is moved right in

paragraph 0

Press Right

Cursor is moved right in

paragraph 1

Press Backspace

Paragraphs are merged

Page 16: Автоматизация тестирования для Android   3

16

Плюшки

Page 17: Автоматизация тестирования для Android   3

Тестирование неограниченного количества документов

Регрессионное тестирование рендеринга

CIT

Интересная работа

17

Page 18: Автоматизация тестирования для Android   3

18

Отчет

Page 19: Автоматизация тестирования для Android   3

19

Фиксированный набор специально-созданных и реальных документов

Снимаем изображение -> картинки Проверяем картинки –> сохраняем как

эталон Тестируем этот же набор на следующей

сборке Автоматически сравниваем картинки с

эталоном

Рендеринг

Page 20: Автоматизация тестирования для Android   3

20

Отчет

Page 21: Автоматизация тестирования для Android   3

21

Использование библиотеки OpenCV для поиска изображения на экране

Использование в диалогах Зависимость от отображения

Просто добавь Sikuli?

Page 22: Автоматизация тестирования для Android   3

22

Автоматическая сборка на билд-сервере Нотификация тест-сервера через Jabber Объединение тестов в тест-сеты;

ассоциация тест-сета и сборки E-mail нотификации по завершению

теста

CIT

Page 23: Автоматизация тестирования для Android   3

23

Покрытие/Время

1 4 7 10 13 16 19 22 25 28 31 340

5

10

15

20

25

30

35

40

45

50

TestbotSikuli

Page 24: Автоматизация тестирования для Android   3

Живой тест

Page 25: Автоматизация тестирования для Android   3

25

Testbot «изнутри»

Page 26: Автоматизация тестирования для Android   3

26

Приложение запущено в 3-х отдельных процессах

Не смогли получить информацию о состоянии диалогов в 2-ом и 3-ем процессе

Нет возможности следить за изменениями в документе

Проблемы Robotium

Page 27: Автоматизация тестирования для Android   3

27

Testpoints

Файл логирования

Получение информации о состоянии приложения

Testbot

Page 28: Автоматизация тестирования для Android   3

28

06:29:36.683 E Error:Resource 'arrowleft' not found in 'id‘06:29:36.685 E Error:Resource 'arrowright' not found in 'id‘06:29:36.793 W Retrieving the token without setting it first.06:29:36.816 V TESTPOINT: filelist refreshed - ROOT [accounts:[email protected],]06:29:36.817 W Retrieving the token without setting it first.06:29:36.819 E Error:Retrieving the consumer06:29:36.902 V TESTPOINT: Account is armed in FileSystemList [name:null] [id:null]06:33:55.052 E Error:Resource 'arrowleft' not found in 'id‘06:33:55.053 E Error:Resource 'arrowright' not found in 'id‘06:33:55.055 V TESTPOINT activity started; [path:/mnt/sdcard/!QP-Groups-MSO2003.ppt] 06:33:55.060 E Error:Can not load table_styles_default_xml06:33:55.067 V TESTPOINT: Start loading presentation06:33:55.279 D openDocument() new HSLFSlideShow finished in: 19906:33:55.608 D openDocument() initHSLFAndroid finished in: 52806:33:55.630 D openDocument() new SlideShow finished in: 55006:33:56.696 D openDocument() SlideAdapters created finished in: 161606:33:56.707 I Document was parsed by POI in 1630 ms.06:33:56.708 V TESTPOINT: End loading presentation06:33:56.984 D PointImageUtil: Metafile loaded and cached: size: 1789x153106:33:57.022 D PointImageUtil: Metafile loaded and cached: size: 1963x198106:33:57.246 W Got unhandled activity result. requestCode=12

06:29:36.816 V TESTPOINT: filelist refreshed - ROOT [accounts:[email protected],]06:29:36.902 V TESTPOINT: Account is armed in FileSystemList [name:null] [id:null]06:33:55.055 V TESTPOINT activity started; [path:/mnt/sdcard/!QP-Groups-MSO2003.ppt] 06:33:55.067 V TESTPOINT: Start loading presentation06:33:56.708 V TESTPOINT: End loading presentation

Обработка файла логирования приложения

Строки для обработки

Page 29: Автоматизация тестирования для Android   3

29

Выполнение теста

1. Document is opened

2. Cursor is moved in paragraph 0

3. Cursor is moved in paragraph 1

4. Paragraphs are merged

Лог Time Line A: Document is opened:

pressRight();

B: Cursor is moved:

if (index == 0) pressRight();else pressDelete()

C: Paragraphs are merged :

pass();

Document is openedpressRight()

Cursor is moved in paragraph 0

pressRight()Cursor is moved in paragraph 1

pressDelete()Paragraphs are merged

Pass();

Page 30: Автоматизация тестирования для Android   3

30

А если не сработает?

1. Starting to open document

Лог Time Line

Starting to load document

wait(120);Failed(“Could not

load”)

A: Starting to load

onEvent(): setTimeOut(120)

onTimeOut(): failed(“Could not

load”);

Page 31: Автоматизация тестирования для Android   3

31

А если ошибка?

1. Starting to open document

2. Null pointer exception

Лог Time Line

Starting to load document

wait(120);recordStackTrace()

;wait(30);

Failed(“Could not load”)

A: Starting to load

onEvent(): setTimeOut(120)

onTimeOut(): failed(“Could not

load”);

onError():recordStackTrace(

)

Page 32: Автоматизация тестирования для Android   3

32

Пример кода теста

Page 33: Автоматизация тестирования для Android   3

33

Спасибо!Дмитрий Вильнер

[email protected]

Олег Орлов[email protected]