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

Содержание

Слайд 2

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

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


Слайд 3

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

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

Слайд 4

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

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

Слайд 5

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

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

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

Слайд 6

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

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

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

сбор статистики, очистка и т.д.
Можно автоматизировать один, несколько, или все пункты

Слайд 7

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

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

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

Слайд 8

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

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

Слайд 9

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

RTFM! (Manual)
RTFF! (Forums)
RTFG! (Google)


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

Слайд 10

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

Использование другого тула
Обзоры:
http://goo.gl/IRvm0 http://goo.gl/BWzV1


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

Слайд 11

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

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

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


Слайд 12

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

Инъекции кода
В клиент
В БД


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

Слайд 13

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

Инъекции кода – пример:
pageObj.object.parentWindow.execScript( _
"var httpReq;" &_
"httpReq = new XMLHttpRequest();"

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


Слайд 14

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

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


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

Слайд 15

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

Замена действий - пример
.Type micDwn &_
micDwn &_
micDwn &_

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


Слайд 16

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

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

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


Слайд 17

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

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

Слайд 18

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

Компромисс
Комбинация с ручными проверками
Точки остановки и синхронизации
Скриншоты
Подробные и удобно читаемые

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


Слайд 19

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

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


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

Слайд 20

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

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

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


Слайд 21

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

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


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

Слайд 22

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

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


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

Слайд 23

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

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

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


Слайд 24

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

100%ная автоматизация


70%

30%

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

Слайд 25

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

100%ная автоматизация
Существует?


70%

30%

20%

80%

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

Слайд 26

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

100%ная автоматизация
Существует?


70%

30%

99.999%

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

Слайд 27

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

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


70%

30%

100%

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

Слайд 28

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

- Что нужно автоматизировать?
- А нужно ли автоматизировать именно это?
Если

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


Слайд 29

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

Нужно ли вообще выполнять данный вид тестирования?
Насколько проблемная область?
Если

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


Слайд 30

Что нужно автоматизировать

 


Что нужно автоматизировать

Слайд 31

Что нужно автоматизировать

Profit от автоматизации:
Экономия ресурсов
Ускорение выполнения
Увеличение скорости реакции
Выполнение в нерабочее время
Действия

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


Слайд 32

Что нужно автоматизировать

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

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


Слайд 33

Что нужно автоматизировать


 

Что нужно автоматизировать

Слайд 34

Выход из тупика. Разбор полетов.

Или рассказ об обновлении FTPC

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

Слайд 35

Выход из тупика. Разбор полетов.

DataSweep Shop Advantage 6.1 -> Rockwell Factory Talk Production

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


Слайд 36

Выход из тупика. Разбор полетов.

Появившиеся проблемы (QTP 10)


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

Слайд 37

Выход из тупика. Разбор полетов.

Появившиеся проблемы (QTP 10)


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

Слайд 38

Выход из тупика. Разбор полетов.

Появившиеся проблемы (QTP 10)
JavaList has no parents.
Messed hierarchy
Objects

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


Слайд 39

Выход из тупика. Разбор полетов.

Что известно:
Обновленная версия Java (1.5)
Минимальные изменения кода
Обновленная версия

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


Слайд 40

Выход из тупика. Разбор полетов.

Предпринятые шаги (workarounds):
Переопределение .Exist (включили .Activate)
Перенос части интерфейсных

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


Слайд 41

Выход из тупика. Разбор полетов.

Предпринятые шаги (конфигурация):
Написание простого теста, воспроизводящего проблему (Logon/Logoff)
Чистая

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


Слайд 42

Выход из тупика. Разбор полетов.

Предпринятые шаги (с разработчиками):
Запуск клиента FTPC через апплет

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


Слайд 43

Выход из тупика. Разбор полетов.

Новая информация:
JRE скачивается FTPC самостоятельно, установленная версия не

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


Слайд 44

Выход из тупика. Разбор полетов.

Пробуем Jboss ………….


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

Слайд 45

Выход из тупика. Разбор полетов.

Решение:
На каждый тестовый стенд установлен дополнительный сервер FTPC/Jboss
Запущен

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


Слайд 46

End Function


End Function
Имя файла: Проблемы-автоматизируемости-тестирования-и-их-решения.pptx
Количество просмотров: 111
Количество скачиваний: 0