Проблемы автоматизируемости тестирования и их решения


The Presentation inside:

Slide 0

Проблемы автоматизируемости тестирования и их решения Круглый стол Илья Фомин Align Technology, Inc


Slide 1

О докладчике Илья Фомин – Руководитель группы автоматизации @ Align Technology, Inc. E-mail (work)………………[email protected] E-mail (personal)…………[email protected] Profile………………….......http://i-fomin.moikrug.ru/ 2


Slide 2

Постановка проблемы 3


Slide 3

Постановка проблемы 4


Slide 4

Постановка проблемы 5 Автоматизируемость: Тесткейз, или Вид тестирования, или Операция с системой Выполняется вручную или планируется Нужно заменить на скрипт/программу


Slide 5

Постановка проблемы 6 Типичный тест кейз: Установка начальных условий конфигурация системы, подготовка данных Выполнение необходимых действий Осуществление проверок Постобработка сбор статистики, очистка и т.д. Можно автоматизировать один, несколько, или все пункты


Slide 6

Постановка проблемы 7 Что можно автоматизировать? Последовательность действий/проверок На доступном вам приложении Формализованную Выполнимую Если все условия выше выполнены, но автоматизировать не получается, то у вас... проблема


Slide 7

Технические методы решения 8


Slide 8

Технические методы решения RTFM! (Manual) RTFF! (Forums) RTFG! (Google) 9


Slide 9

Технические методы решения Использование другого тула Обзоры: http://goo.gl/IRvm0 http://goo.gl/BWzV1 10


Slide 10

Технические методы решения Вызов операций нижнего уровня Найти onClick() и вызвать Распарсить код страницы Сформировать POST, отправить, проанализировать ответ 11


Slide 11

Технические методы решения Инъекции кода В клиент В БД 12


Slide 12

Технические методы решения Инъекции кода – пример: pageObj.object.parentWindow.execScript( _ "var httpReq;" &_ "httpReq = new XMLHttpRequest();" &_ "httpReq.open(""GET"", """ & url & """, false);" &_ "httpReq.setRequestHeader(""Cache-Control"", ""no-cache"");" &_ "httpReq.send(null);" &_ "window.receivedResponse = httpReq.responseText;" ) responseXmlText = pageObj.object.parentWindow.receivedResponse 13


Slide 13

Технические методы решения Замена действий синонимами Горячие клавиши Hardware replay Буфер обмена OCR 14


Slide 14

Технические методы решения Замена действий - пример .Type micDwn &_ micDwn &_ micDwn &_ micReturn Clipboard: Set objHTML = CreateObject("InternetExplorer.Application") objHTML.Document.ParentWindow.ClipboardData 15


Slide 15

Технические методы решения Проблемы технических методов? Нужно самостоятельно гарантировать эквивалентность ручному тестированию. Обычно гарантом выступает репутация вендора Чаще всего сложно и долго Не переносимо между технологиями 16


Slide 16

Административные методы решения 17


Slide 17

Административные методы решения Компромисс Комбинация с ручными проверками Точки остановки и синхронизации Скриншоты Подробные и удобно читаемые отчеты Описание проверок прямо в отчетах скриптов Downstream проверки интеграционных точек Data Driven Testing 18


Slide 18

Административные методы решения Просите помощи у разработчиков (или Agile в действии :) 19


Slide 19

Административные методы решения Просите помощи у разработчиков Написание сложных алгоритмов Имплементация необходимых интерфейсов Любые правки, повышающие тестабилити 20


Slide 20

Административные методы решения Просите помощи у разработчиков: Backdoor-интерфейсы 21


Slide 21

Административные методы решения Просите помощи у разработчиков: Backdoor-интерфейсы 22


Slide 22

Административные методы решения Просите помощи у разработчиков заранее Прототип каждой программы, использующей новую технологию, обязателен к изучению 23


Slide 23

Административные методы решения 100%ная автоматизация 24 70% 30%


Slide 24

Административные методы решения 100%ная автоматизация Существует? 25 70% 30% 20% 80%


Slide 25

Административные методы решения 100%ная автоматизация Существует? 26 70% 30% 99.999%


Slide 26

Административные методы решения 100%ная автоматизация Существует! Нужно только правильно выбрать 100% 27 70% 30% 100%


Slide 27

Административные методы решения - Что нужно автоматизировать? - А нужно ли автоматизировать именно это? Если автоматизировать трудно: Переформулируйте задачу так, чтобы добиться автоматизируемости ... или даже Сформулируйте задачу так, чтобы она уже была автоматизирована! 28


Slide 28

Административные методы решения Нужно ли вообще выполнять данный вид тестирования? Насколько проблемная область? Если не было ни одного бага, нужно ли тестировать? Рассмотрите другие подходы: Анализ исходного кода и ресурсов Модульные тесты Отслеживание зависимостей, тестирование только измененного функционала Идеи в аудитории? 29


Slide 29

Что нужно автоматизировать Главная проблема автоматизируемости – пытаться автоматизировать все подряд. Это неправильно! Правильно автоматизировать то, где ??=1 ?? ???????????? > ??=0 ?? (????????) 30


Slide 30

Что нужно автоматизировать Profit от автоматизации: Экономия ресурсов Ускорение выполнения Увеличение скорости реакции Выполнение в нерабочее время Действия (практически) невозможно провести вручную Устранение скучной работы 31


Slide 31

Что нужно автоматизировать Loss от автоматизации: Покупка тулов Обучение Разработка/доработка инфраструктуры Написание скриптов Поддержка скриптов и пользователей Запуски, анализ отчетов 32


Slide 32

Что нужно автоматизировать 33 ??=1 ?? ???????????? > ??=0 ?? (????????)


Slide 33

Выход из тупика. Разбор полетов. 34 Или рассказ об обновлении FTPC


Slide 34

Выход из тупика. Разбор полетов. DataSweep Shop Advantage 6.1 -> Rockwell Factory Talk Production Centre 8.1 35


Slide 35

Выход из тупика. Разбор полетов. Появившиеся проблемы (QTP 10) 36


Slide 36

Выход из тупика. Разбор полетов. Появившиеся проблемы (QTP 10) 37


Slide 37

Выход из тупика. Разбор полетов. Появившиеся проблемы (QTP 10) JavaList has no parents. Messed hierarchy Objects are identified as disabled, though they are not JavaButton "OK" is identified as JavaList И другие схожие проблемы... ...проявляющиеся в 1-5% случаев Лечится переоткрытием окна/таба, иногда – ручным кликом по заголовку 38


Slide 38

Выход из тупика. Разбор полетов. Что известно: Обновленная версия Java (1.5) Минимальные изменения кода Обновленная версия сервера приложений (WebSpere) Скрипты LoadRunner перестали работать 39


Slide 39

Выход из тупика. Разбор полетов. Предпринятые шаги (workarounds): Переопределение .Exist (включили .Activate) Перенос части интерфейсных проверок в БД Упрощение дозапуска скриптов Упрощенный и автоматизированный запуск регрессии 40


Slide 40

Выход из тупика. Разбор полетов. Предпринятые шаги (конфигурация): Написание простого теста, воспроизводящего проблему (Logon/Logoff) Чистая последняя инсталляция QTP 10 Инсталляция QTP 11 Разные версии Java 1.4-1.6 Попробовали TestComplete (работает, но иногда вылетает) 41


Slide 41

Выход из тупика. Разбор полетов. Предпринятые шаги (с разработчиками): Запуск клиента FTPC через апплет и jnlp Несколько версий FTPC (8.0, 8.1, 8.2, 9.0) Вызов сборщика мусора (GC) через .Object Общение с поддержкой Rockwell Поиск потенциальных проблем в коде 42


Slide 42

Выход из тупика. Разбор полетов. Новая информация: JRE скачивается FTPC самостоятельно, установленная версия не имеет значения Скрипты LoadRunner сломались из-за использования объектов IBM JM IBM JM скачивается клиентом вместе с Sun FTPC 8.1, установленный на WebSphere требует IBM JM, а 6.1 – нет FTPC 8.x на Jboss/WebLogic не требует IBM 43


Slide 43

Выход из тупика. Разбор полетов. Пробуем Jboss …………. 44


Slide 44

Выход из тупика. Разбор полетов. Решение: На каждый тестовый стенд установлен дополнительный сервер FTPC/Jboss Запущен проект по полному переходу на Jboss Jboss еще и стоит существенно дешевле WebSphere 45


Slide 45

End Function 46


Slide 46

О докладчике Илья Фомин – Руководитель группы автоматизации @ Align Technology, Inc. E-mail (work)………………[email protected] E-mail (personal)…………[email protected] Profile………………….......http://i-fomin.moikrug.ru/ 47 Интересная работа в Москве!!!


×

HTML:





Ссылка: