SlideShare a Scribd company logo
1 of 20
Организация тестового набора при
автоматизированном
функциональном тестировании
Мария Колчинская. Xored Software
Содержание
• Кто мы, что и с помощью чего тестируем
• Цели автоматизации функционального тестирования
• Проблемы анализа результатов тестирования
• Требования к отдельному тесту. Запись теста
• Требования к организации тестового набора
• Достоверность получаемого результата
• Итог работы
Xored Software
• Российская компания, созданная с нуля в
Новосибирском Академгородке. Занимается
созданием средств разработки и продуктов на основе
технологии Eclipse
• Одно из направлений – разработка систем
моделирования для компаний
телекоммуникационного сектора (Cisco Systems,
British Telecom)
• Cобственная разработка – средство автоматизации
функционального тестирования Q7
Тестируемое приложение
Eclipse Tigerstripe – приложение для моделирования –
создания UML диаграмм и кода на их основе.
• Создано на платформе Eclipse
• Содержит большое количество диаграмм и
взаимосвязей между объектами
В данный момент все функциональные тесты
приложения автоматизированы и встроены в систему
непрерывной интеграции Atlassian Bamboo
Инструмент тестирования
Q7 – приложение для автоматизации функционального
тестирования
• Создано на платформе Eclipse и для тестирования
Eclipse приложений
• Поддерживает работу с графическими элементами
• Обеспечивает встраивание тестов в систему
непрерывной интеграции
Цели автоматизации
тестирования
• Получение информации о качестве продукта при
каждой сборке приложения
• Сокращение трудозатрат на тестирование
Шаги автоматизации
тестирования
• Сформировать базу сценариев работы пользователя
с приложением
• На основе сценариев создать автоматизированные
тесты для покрытия основной функциональности
приложения. Тесты полностью повторяют действия
пользователя через UI
• Встроить тесты в систему непрерывной интеграции.
В результате тесты будут выполняться при каждой
сборке приложения на всех указанных платформах
Отчет о результатах
тестирования
Вид страницы с отчетом о результате тестирования:
Test Summary
384 tests in total. 1 New Failures; 1 Existing Failures; 6 Fixed
Tests
New Test Failures (1): UpdateLiteralValue
View Job: Q7 win32
Duration: 15 secs
testcase: Execution failed on line 38 at column 1 (UpdateLiteralValue)
Caused by: The Window "Save Enumeration" could not be found. [get-window
"Save Enumeration"] Information: gef.editparts (1175 more lines...)
Existing Test Failures (1): AddRemoveAnnotationDiagramAttribute
View Job: Q7 win32
Duration: 4 secs
Failing Since Build: #64
Анализ результатов
тестирования
• При просмотре отчета невозможно указать шаг,
который привел к падению теста. В итоге сложно
быстро локализовать проблему
• Падение теста может быть вызвано не только
проблемой в приложении, но и проблемой
инструмента тестирования либо самого теста
Требования к отдельному
тесту
• Чем меньше тест, тем проще локализовать проблему
• Необходимо отделить шаги по подготовке среды
тестирования от шагов самого теста
• Результаты предыдущих тестов не должны влиять на
результат выполняемого теста
Структура теста
• Precondition – подведение системы к состоянию,
пригодному для тестирования
• Steps (Test) – непосредственное проведение теста
• Post Condition – удаление данных, созданных в
процессе выполнения скрипта
Структура
автоматизированного теста
Каждый тест обязательно разделяется на 2 части:
• Context – отдельный скрипт (либо файлы контекста
Eclipse), который удаляет все изменения,
оставшиеся в результате предыдущих действий и
подготавливает условия для теста
• Сценарий – отдельный скрипт с записью шагов теста
Преимущества
• Информация о локализации проблемы (и возможном
шаге) появляется уже при беглом просмотре отчета
• Исключаются ошибки влияния результатов
предыдущего теста
• Появляется возможность переиспользования
скриптов (либо файлов) контекста для подготовки
предварительный условий в разных тестах. Это
ускоряет работу по созданию тестов
Требования к организации
тестов
• Максимальный отказ от ручных тестов
• Тестовая база для всего приложения
• Тесты на новую функциональность
• Отдельный тест на каждый тестовый случай
• Отдельный тест на каждый баг в системе,
полученный от заказчика (для теста создается
«метка» для привязки к участку функциональности)
Достоверность получаемого
результата
Тесты, которые дают ложный результат из-за проблем
инструмента тестирования либо неактуальности
самого теста, неинформативны и искажают общую
картину. Для того чтобы получать достоверный
результат тестирования и не отказываться от
созданных тестов, было решено разделить тестовые
наборы на две части:
• Stable test set
• Unstable test set
Достоверность получаемого
результата
• Stable set – тесты, выполняемые при каждой сборке
приложения. Падение каждого такого теста означает
наличие ошибки в приложении (в крайнем случае –
необходимости актуализировать тест)
• Unstable set – тесты, исключенные из набора из-за
ложных результатов, обычно из-за ошибок системы
автоматизации. По мере исправления ошибок, тесты
перемещаются в основной набор
Достоверность получаемого
результата
В случае падения теста из-за проблемы с самом тесте,
тест быстро актуализируется (до следующей сборки).
В крайнем случае, если требуется больше времени
для обновления теста, он перемещается в unstable
set. Тесты из «нестабильного» набора необходимо
выполнять вручную
Итог организации тестового
набора
• На основе сценариев действий пользователя
создана база автоматизированных тестов для
покрытия основной функциональности приложения.
• Благодаря небольшим размерам тестов, принципу «1
тест на 1 тестовый случай» и выделенным в
отдельный файл предусловиям, при падении теста:
– легко локализовать участок функциональности
даже при просмотре отчета о результатах. Шаги,
которые привели к ошибке, легко воспроизвести
вручную
– результат одного теста не влияет на результаты
последующих тестов
Итог организации тестового
набора
• Вынесение предусловий в отдельный файл, который
можно использовать в нескольких тестах, упрощает
процесс подготовки тестов и их поддержку в
актуальном состоянии
• Запуск только стабильных тестов несколько
уменьшает покрытие, зато обеспечивает
достоверность результатов
Спасибо за внимание!

More Related Content

What's hot

QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQAFest
 
Андрей Сильчук: "Автоматическое тестирование".
Андрей Сильчук: "Автоматическое тестирование".Андрей Сильчук: "Автоматическое тестирование".
Андрей Сильчук: "Автоматическое тестирование".Hub-IT-School
 
Unit testing
Unit testingUnit testing
Unit testingISsoft
 
Использование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийИспользование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийSQALab
 
Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)
Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)
Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)AvitoTech
 
Ошибки начинающего специалиста по нагрузочному тестированию и как их избежать
Ошибки начинающего специалиста по нагрузочному тестированию и как их избежатьОшибки начинающего специалиста по нагрузочному тестированию и как их избежать
Ошибки начинающего специалиста по нагрузочному тестированию и как их избежатьSQALab
 
Mva stf module 5 - rus
Mva stf module 5 - rusMva stf module 5 - rus
Mva stf module 5 - rusMaxim Shaptala
 
Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)
Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)
Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)AvitoTech
 
DevOps подходы в инфраструктуре автоматизации тестирования
DevOps подходы в инфраструктуре автоматизации тестированияDevOps подходы в инфраструктуре автоматизации тестирования
DevOps подходы в инфраструктуре автоматизации тестированияSQALab
 
TestLink
TestLinkTestLink
TestLinkISsoft
 
Mva stf module 2 - rus
Mva stf module 2 - rusMva stf module 2 - rus
Mva stf module 2 - rusMaxim Shaptala
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаIgor Lyubin
 
Тимур Шевляков
Тимур ШевляковТимур Шевляков
Тимур ШевляковCodeFest
 
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...COMAQA.BY
 
SQADAYS 21 Москва 2017
SQADAYS 21 Москва 2017SQADAYS 21 Москва 2017
SQADAYS 21 Москва 2017Adam Sandman
 
Настраиваемое тестирование производительности
Настраиваемое тестирование производительностиНастраиваемое тестирование производительности
Настраиваемое тестирование производительностиSQALab
 

What's hot (17)

QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
 
Андрей Сильчук: "Автоматическое тестирование".
Андрей Сильчук: "Автоматическое тестирование".Андрей Сильчук: "Автоматическое тестирование".
Андрей Сильчук: "Автоматическое тестирование".
 
Unit testing
Unit testingUnit testing
Unit testing
 
Использование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийИспользование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложений
 
Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)
Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)
Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)
 
Ошибки начинающего специалиста по нагрузочному тестированию и как их избежать
Ошибки начинающего специалиста по нагрузочному тестированию и как их избежатьОшибки начинающего специалиста по нагрузочному тестированию и как их избежать
Ошибки начинающего специалиста по нагрузочному тестированию и как их избежать
 
Mva stf module 5 - rus
Mva stf module 5 - rusMva stf module 5 - rus
Mva stf module 5 - rus
 
Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)
Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)
Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)
 
DevOps подходы в инфраструктуре автоматизации тестирования
DevOps подходы в инфраструктуре автоматизации тестированияDevOps подходы в инфраструктуре автоматизации тестирования
DevOps подходы в инфраструктуре автоматизации тестирования
 
TestLink
TestLinkTestLink
TestLink
 
Mva stf module 2 - rus
Mva stf module 2 - rusMva stf module 2 - rus
Mva stf module 2 - rus
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя система
 
Тимур Шевляков
Тимур ШевляковТимур Шевляков
Тимур Шевляков
 
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
 
SQADAYS 21 Москва 2017
SQADAYS 21 Москва 2017SQADAYS 21 Москва 2017
SQADAYS 21 Москва 2017
 
Настраиваемое тестирование производительности
Настраиваемое тестирование производительностиНастраиваемое тестирование производительности
Настраиваемое тестирование производительности
 
Allure Framework
Allure FrameworkAllure Framework
Allure Framework
 

Viewers also liked

Грамотная работа с дефект-трекером -- путь к успеху!
Грамотная работа с дефект-трекером -- путь к успеху!Грамотная работа с дефект-трекером -- путь к успеху!
Грамотная работа с дефект-трекером -- путь к успеху!SQALab
 
Александр Калугин - Простота тестирования маленького системного ПО
Александр Калугин - Простота тестирования маленького системного ПОАлександр Калугин - Простота тестирования маленького системного ПО
Александр Калугин - Простота тестирования маленького системного ПОSQALab
 
Как заводить баги понятно всем
Как заводить баги понятно всемКак заводить баги понятно всем
Как заводить баги понятно всемSQALab
 
Шаблоны проектирования письменной коммуникации
Шаблоны проектирования письменной коммуникацииШаблоны проектирования письменной коммуникации
Шаблоны проектирования письменной коммуникацииSQALab
 
Андрей Уразов - Методы раннего обнаружения ошибок
Андрей Уразов - Методы раннего обнаружения ошибокАндрей Уразов - Методы раннего обнаружения ошибок
Андрей Уразов - Методы раннего обнаружения ошибокSQALab
 
Очир Абушинов - Применение fuzz-тестирования
Очир Абушинов - Применение fuzz-тестированияОчир Абушинов - Применение fuzz-тестирования
Очир Абушинов - Применение fuzz-тестированияSQALab
 
Александр Орлов, Вячеслав Панкратов - Работа с неконструктивными моделями пов...
Александр Орлов, Вячеслав Панкратов - Работа с неконструктивными моделями пов...Александр Орлов, Вячеслав Панкратов - Работа с неконструктивными моделями пов...
Александр Орлов, Вячеслав Панкратов - Работа с неконструктивными моделями пов...SQALab
 
Добавляем гибкости в тестирование
Добавляем гибкости в тестированиеДобавляем гибкости в тестирование
Добавляем гибкости в тестированиеSQALab
 
Методика проведения независимой оценки процесса тестирования в проектах
Методика проведения независимой оценки процесса тестирования в проектахМетодика проведения независимой оценки процесса тестирования в проектах
Методика проведения независимой оценки процесса тестирования в проектахSQALab
 
Становление программы внутренних аудитов: от требований сертификации до обесп...
Становление программы внутренних аудитов: от требований сертификации до обесп...Становление программы внутренних аудитов: от требований сертификации до обесп...
Становление программы внутренних аудитов: от требований сертификации до обесп...SQALab
 
Выбор и внедрение инструмента - с чего начать?
Выбор и внедрение инструмента - с чего начать?Выбор и внедрение инструмента - с чего начать?
Выбор и внедрение инструмента - с чего начать?SQALab
 
Жизненный цикл коммуникативных дефектов
Жизненный цикл коммуникативных дефектовЖизненный цикл коммуникативных дефектов
Жизненный цикл коммуникативных дефектовSQALab
 
Непрерывное тестирование для улучшения качества кода
Непрерывное тестирование для улучшения качества кодаНепрерывное тестирование для улучшения качества кода
Непрерывное тестирование для улучшения качества кодаSQALab
 
Особенности тестирования сloud-приложений
Особенности тестирования сloud-приложенийОсобенности тестирования сloud-приложений
Особенности тестирования сloud-приложенийSQALab
 
О чем мы забываем в QA или “Знакомьтесь – Manageability!”
О чем мы забываем в QA или “Знакомьтесь – Manageability!”О чем мы забываем в QA или “Знакомьтесь – Manageability!”
О чем мы забываем в QA или “Знакомьтесь – Manageability!”SQALab
 
Качество отсутствует, коль баги присутствуют
Качество отсутствует, коль баги присутствуютКачество отсутствует, коль баги присутствуют
Качество отсутствует, коль баги присутствуютSQALab
 
Тестирование и техподдержка брак или сотрудничество?
Тестирование и техподдержка брак или сотрудничество?Тестирование и техподдержка брак или сотрудничество?
Тестирование и техподдержка брак или сотрудничество?SQALab
 
Тестирование в среде заказчика (Live Environment). Зачем мы это делаем?
Тестирование в среде заказчика (Live Environment). Зачем мы это делаем?Тестирование в среде заказчика (Live Environment). Зачем мы это делаем?
Тестирование в среде заказчика (Live Environment). Зачем мы это делаем?SQALab
 
Разработка методики тестирования производительности комплекса систем
Разработка методики тестирования производительности комплекса системРазработка методики тестирования производительности комплекса систем
Разработка методики тестирования производительности комплекса системSQALab
 
Эволюция средств тестирования от HP
Эволюция средств тестирования от HPЭволюция средств тестирования от HP
Эволюция средств тестирования от HPSQALab
 

Viewers also liked (20)

Грамотная работа с дефект-трекером -- путь к успеху!
Грамотная работа с дефект-трекером -- путь к успеху!Грамотная работа с дефект-трекером -- путь к успеху!
Грамотная работа с дефект-трекером -- путь к успеху!
 
Александр Калугин - Простота тестирования маленького системного ПО
Александр Калугин - Простота тестирования маленького системного ПОАлександр Калугин - Простота тестирования маленького системного ПО
Александр Калугин - Простота тестирования маленького системного ПО
 
Как заводить баги понятно всем
Как заводить баги понятно всемКак заводить баги понятно всем
Как заводить баги понятно всем
 
Шаблоны проектирования письменной коммуникации
Шаблоны проектирования письменной коммуникацииШаблоны проектирования письменной коммуникации
Шаблоны проектирования письменной коммуникации
 
Андрей Уразов - Методы раннего обнаружения ошибок
Андрей Уразов - Методы раннего обнаружения ошибокАндрей Уразов - Методы раннего обнаружения ошибок
Андрей Уразов - Методы раннего обнаружения ошибок
 
Очир Абушинов - Применение fuzz-тестирования
Очир Абушинов - Применение fuzz-тестированияОчир Абушинов - Применение fuzz-тестирования
Очир Абушинов - Применение fuzz-тестирования
 
Александр Орлов, Вячеслав Панкратов - Работа с неконструктивными моделями пов...
Александр Орлов, Вячеслав Панкратов - Работа с неконструктивными моделями пов...Александр Орлов, Вячеслав Панкратов - Работа с неконструктивными моделями пов...
Александр Орлов, Вячеслав Панкратов - Работа с неконструктивными моделями пов...
 
Добавляем гибкости в тестирование
Добавляем гибкости в тестированиеДобавляем гибкости в тестирование
Добавляем гибкости в тестирование
 
Методика проведения независимой оценки процесса тестирования в проектах
Методика проведения независимой оценки процесса тестирования в проектахМетодика проведения независимой оценки процесса тестирования в проектах
Методика проведения независимой оценки процесса тестирования в проектах
 
Становление программы внутренних аудитов: от требований сертификации до обесп...
Становление программы внутренних аудитов: от требований сертификации до обесп...Становление программы внутренних аудитов: от требований сертификации до обесп...
Становление программы внутренних аудитов: от требований сертификации до обесп...
 
Выбор и внедрение инструмента - с чего начать?
Выбор и внедрение инструмента - с чего начать?Выбор и внедрение инструмента - с чего начать?
Выбор и внедрение инструмента - с чего начать?
 
Жизненный цикл коммуникативных дефектов
Жизненный цикл коммуникативных дефектовЖизненный цикл коммуникативных дефектов
Жизненный цикл коммуникативных дефектов
 
Непрерывное тестирование для улучшения качества кода
Непрерывное тестирование для улучшения качества кодаНепрерывное тестирование для улучшения качества кода
Непрерывное тестирование для улучшения качества кода
 
Особенности тестирования сloud-приложений
Особенности тестирования сloud-приложенийОсобенности тестирования сloud-приложений
Особенности тестирования сloud-приложений
 
О чем мы забываем в QA или “Знакомьтесь – Manageability!”
О чем мы забываем в QA или “Знакомьтесь – Manageability!”О чем мы забываем в QA или “Знакомьтесь – Manageability!”
О чем мы забываем в QA или “Знакомьтесь – Manageability!”
 
Качество отсутствует, коль баги присутствуют
Качество отсутствует, коль баги присутствуютКачество отсутствует, коль баги присутствуют
Качество отсутствует, коль баги присутствуют
 
Тестирование и техподдержка брак или сотрудничество?
Тестирование и техподдержка брак или сотрудничество?Тестирование и техподдержка брак или сотрудничество?
Тестирование и техподдержка брак или сотрудничество?
 
Тестирование в среде заказчика (Live Environment). Зачем мы это делаем?
Тестирование в среде заказчика (Live Environment). Зачем мы это делаем?Тестирование в среде заказчика (Live Environment). Зачем мы это делаем?
Тестирование в среде заказчика (Live Environment). Зачем мы это делаем?
 
Разработка методики тестирования производительности комплекса систем
Разработка методики тестирования производительности комплекса системРазработка методики тестирования производительности комплекса систем
Разработка методики тестирования производительности комплекса систем
 
Эволюция средств тестирования от HP
Эволюция средств тестирования от HPЭволюция средств тестирования от HP
Эволюция средств тестирования от HP
 

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

Тестирование ПО
Тестирование ПОТестирование ПО
Тестирование ПОseleznev_stas
 
Unit tests Python examples
Unit tests Python examplesUnit tests Python examples
Unit tests Python examplesssuserd327fe1
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDaysLiloSEA
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDaysLiloSEA
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDaysLiloSEA
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileKairat Yussupov
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQAFest
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetestingLiloSEA
 
Светлана Федянина - Процесс тестирования в распределенной команде
Светлана Федянина - Процесс тестирования в распределенной командеСветлана Федянина - Процесс тестирования в распределенной команде
Светлана Федянина - Процесс тестирования в распределенной командеSQALab
 
5 колчинская
5 колчинская 5 колчинская
5 колчинская qasib
 
Do you know what you are testing?
Do you know what you are testing?Do you know what you are testing?
Do you know what you are testing?Mikalai Alimenkou
 
А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?SQALab
 
Марина Широчкина — «Тестирование»
Марина Широчкина — «Тестирование»Марина Широчкина — «Тестирование»
Марина Широчкина — «Тестирование»Yandex
 
Сергей Ревко
Сергей РевкоСергей Ревко
Сергей РевкоSQALab
 
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыМаргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыSQALab
 
Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Technopark
 

Similar to Организация тестового набора при автоматизированном функциональном тестировании (20)

Тестирование ПО
Тестирование ПОТестирование ПО
Тестирование ПО
 
Unit tests Python examples
Unit tests Python examplesUnit tests Python examples
Unit tests Python examples
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDays
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDays
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDays
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
 
QAFest. Роль тестирования в Devops
QAFest. Роль тестирования в DevopsQAFest. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
Светлана Федянина - Процесс тестирования в распределенной команде
Светлана Федянина - Процесс тестирования в распределенной командеСветлана Федянина - Процесс тестирования в распределенной команде
Светлана Федянина - Процесс тестирования в распределенной команде
 
5 колчинская
5 колчинская 5 колчинская
5 колчинская
 
Test design print
Test design printTest design print
Test design print
 
Do you know what you are testing?
Do you know what you are testing?Do you know what you are testing?
Do you know what you are testing?
 
А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?
 
Марина Широчкина — «Тестирование»
Марина Широчкина — «Тестирование»Марина Широчкина — «Тестирование»
Марина Широчкина — «Тестирование»
 
Сергей Ревко
Сергей РевкоСергей Ревко
Сергей Ревко
 
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыМаргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
 
План тестирования
План тестированияПлан тестирования
План тестирования
 
Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5
 

More from SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

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

  • 1. Организация тестового набора при автоматизированном функциональном тестировании Мария Колчинская. Xored Software
  • 2. Содержание • Кто мы, что и с помощью чего тестируем • Цели автоматизации функционального тестирования • Проблемы анализа результатов тестирования • Требования к отдельному тесту. Запись теста • Требования к организации тестового набора • Достоверность получаемого результата • Итог работы
  • 3. Xored Software • Российская компания, созданная с нуля в Новосибирском Академгородке. Занимается созданием средств разработки и продуктов на основе технологии Eclipse • Одно из направлений – разработка систем моделирования для компаний телекоммуникационного сектора (Cisco Systems, British Telecom) • Cобственная разработка – средство автоматизации функционального тестирования Q7
  • 4. Тестируемое приложение Eclipse Tigerstripe – приложение для моделирования – создания UML диаграмм и кода на их основе. • Создано на платформе Eclipse • Содержит большое количество диаграмм и взаимосвязей между объектами В данный момент все функциональные тесты приложения автоматизированы и встроены в систему непрерывной интеграции Atlassian Bamboo
  • 5. Инструмент тестирования Q7 – приложение для автоматизации функционального тестирования • Создано на платформе Eclipse и для тестирования Eclipse приложений • Поддерживает работу с графическими элементами • Обеспечивает встраивание тестов в систему непрерывной интеграции
  • 6. Цели автоматизации тестирования • Получение информации о качестве продукта при каждой сборке приложения • Сокращение трудозатрат на тестирование
  • 7. Шаги автоматизации тестирования • Сформировать базу сценариев работы пользователя с приложением • На основе сценариев создать автоматизированные тесты для покрытия основной функциональности приложения. Тесты полностью повторяют действия пользователя через UI • Встроить тесты в систему непрерывной интеграции. В результате тесты будут выполняться при каждой сборке приложения на всех указанных платформах
  • 8. Отчет о результатах тестирования Вид страницы с отчетом о результате тестирования: Test Summary 384 tests in total. 1 New Failures; 1 Existing Failures; 6 Fixed Tests New Test Failures (1): UpdateLiteralValue View Job: Q7 win32 Duration: 15 secs testcase: Execution failed on line 38 at column 1 (UpdateLiteralValue) Caused by: The Window "Save Enumeration" could not be found. [get-window "Save Enumeration"] Information: gef.editparts (1175 more lines...) Existing Test Failures (1): AddRemoveAnnotationDiagramAttribute View Job: Q7 win32 Duration: 4 secs Failing Since Build: #64
  • 9. Анализ результатов тестирования • При просмотре отчета невозможно указать шаг, который привел к падению теста. В итоге сложно быстро локализовать проблему • Падение теста может быть вызвано не только проблемой в приложении, но и проблемой инструмента тестирования либо самого теста
  • 10. Требования к отдельному тесту • Чем меньше тест, тем проще локализовать проблему • Необходимо отделить шаги по подготовке среды тестирования от шагов самого теста • Результаты предыдущих тестов не должны влиять на результат выполняемого теста
  • 11. Структура теста • Precondition – подведение системы к состоянию, пригодному для тестирования • Steps (Test) – непосредственное проведение теста • Post Condition – удаление данных, созданных в процессе выполнения скрипта
  • 12. Структура автоматизированного теста Каждый тест обязательно разделяется на 2 части: • Context – отдельный скрипт (либо файлы контекста Eclipse), который удаляет все изменения, оставшиеся в результате предыдущих действий и подготавливает условия для теста • Сценарий – отдельный скрипт с записью шагов теста
  • 13. Преимущества • Информация о локализации проблемы (и возможном шаге) появляется уже при беглом просмотре отчета • Исключаются ошибки влияния результатов предыдущего теста • Появляется возможность переиспользования скриптов (либо файлов) контекста для подготовки предварительный условий в разных тестах. Это ускоряет работу по созданию тестов
  • 14. Требования к организации тестов • Максимальный отказ от ручных тестов • Тестовая база для всего приложения • Тесты на новую функциональность • Отдельный тест на каждый тестовый случай • Отдельный тест на каждый баг в системе, полученный от заказчика (для теста создается «метка» для привязки к участку функциональности)
  • 15. Достоверность получаемого результата Тесты, которые дают ложный результат из-за проблем инструмента тестирования либо неактуальности самого теста, неинформативны и искажают общую картину. Для того чтобы получать достоверный результат тестирования и не отказываться от созданных тестов, было решено разделить тестовые наборы на две части: • Stable test set • Unstable test set
  • 16. Достоверность получаемого результата • Stable set – тесты, выполняемые при каждой сборке приложения. Падение каждого такого теста означает наличие ошибки в приложении (в крайнем случае – необходимости актуализировать тест) • Unstable set – тесты, исключенные из набора из-за ложных результатов, обычно из-за ошибок системы автоматизации. По мере исправления ошибок, тесты перемещаются в основной набор
  • 17. Достоверность получаемого результата В случае падения теста из-за проблемы с самом тесте, тест быстро актуализируется (до следующей сборки). В крайнем случае, если требуется больше времени для обновления теста, он перемещается в unstable set. Тесты из «нестабильного» набора необходимо выполнять вручную
  • 18. Итог организации тестового набора • На основе сценариев действий пользователя создана база автоматизированных тестов для покрытия основной функциональности приложения. • Благодаря небольшим размерам тестов, принципу «1 тест на 1 тестовый случай» и выделенным в отдельный файл предусловиям, при падении теста: – легко локализовать участок функциональности даже при просмотре отчета о результатах. Шаги, которые привели к ошибке, легко воспроизвести вручную – результат одного теста не влияет на результаты последующих тестов
  • 19. Итог организации тестового набора • Вынесение предусловий в отдельный файл, который можно использовать в нескольких тестах, упрощает процесс подготовки тестов и их поддержку в актуальном состоянии • Запуск только стабильных тестов несколько уменьшает покрытие, зато обеспечивает достоверность результатов