'

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

Понравилась презентация – покажи это...





Слайд 0

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


Слайд 1

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


Слайд 2

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


Слайд 3

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


Слайд 4

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


Слайд 5

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


Слайд 6

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


Слайд 7

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


Слайд 8

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


Слайд 9

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


Слайд 10

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


Слайд 11

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


Слайд 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


Слайд 13

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


Слайд 14

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


Слайд 15

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


Слайд 16

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


Слайд 17

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


Слайд 18

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


Слайд 19

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


Слайд 20

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


Слайд 21

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


Слайд 22

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


Слайд 23

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


Слайд 24

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


Слайд 25

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


Слайд 26

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


Слайд 27

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


Слайд 28

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


Слайд 29

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


Слайд 30

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


Слайд 31

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


Слайд 32

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


Слайд 33

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


Слайд 34

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


Слайд 35

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


Слайд 36

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


Слайд 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


Слайд 38

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


Слайд 39

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


Слайд 40

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


Слайд 41

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


Слайд 42

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


Слайд 43

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


Слайд 44

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


Слайд 45

End Function 46


Слайд 46

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


×

HTML:





Ссылка: