22
Автоматизированное тестирование и с чем его едят Hub QA meetup

Андрей Сильчук: "Автоматическое тестирование"

Embed Size (px)

Citation preview

Page 1: Андрей Сильчук: "Автоматическое тестирование"

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

его едятHub QA meetup

Page 2: Андрей Сильчук: "Автоматическое тестирование"

Кто этот парень перед нами?

Page 3: Андрей Сильчук: "Автоматическое тестирование"

Кто этот парень перед нами?

Имя: Андрей СильчукВозраст: 27 летМесто работы: DataArtДолжность: Project ManagerУвлечения: фигурное катание, Star Wars, snowboarding

Page 4: Андрей Сильчук: "Автоматическое тестирование"

Agenda• Автоматизация? Какая еще автоматизация? • Автоматическое тестирование ПО. Зачем вообще?• Отличие от мануального тестирования ПО, или Ручник vs человек разумный.• Имею желание, но не имею возможности, или какие знания были бы полезны в этой области.• Когда стоит внедрять автоматизацию. ROI и другие непонятные слова на три буквы.

Page 5: Андрей Сильчук: "Автоматическое тестирование"

Что такое автоматическое тестирование (АТ)?• Автоматизированное (автоматическое) тестирование является составной частью процесса тестирования. Оно использует программные средства для выполнения тестов и проверки результатов пробега этих тестов, что помогает сократить время тестирования и упростить его процесс.• Automation QA - это QA engineer обеспечивающий создание, отладку и поддержку работоспособного состояния тест скриптов, тестовых наборов и инструментов для автоматизированного тестирования.

Page 6: Андрей Сильчук: "Автоматическое тестирование"

Подходы к АТ• Тестировние на GUI уровне. Эмуляция дествий пользователя, часто record-replay мехнизм. Автоматизация black-box тестирования (иногда с элементами серого ящика)

• Тестирование на уровне кода, автоматизация Unit-тестирвоания (модульное тестирование)

End-user testing/UI testing

Code-level testing

Page 7: Андрей Сильчук: "Автоматическое тестирование"

End-User testing VS Unit testing

• Реальная система• Record & Replay• End to end• Выполняются QA

End User Tests

• А что если UI не готов?• Высокий Maintenance - UI меняется• Покрытие• Flexibility – Не видна обратная связь с компонентами

• Code level тесты.• Написаны на AUT языке • Маленький maintenance • Выполняются Dev

Unit Tests

• Стерильная система (mock)• Не находит интеграционных проблем• Узкие тесты – используют один метод • Обычно пишутся Dev, который и написал сам компонент

Page 8: Андрей Сильчук: "Автоматическое тестирование"

Основные инструменты АТ• Selenium•QTP• JUnit•Microsoft UI Automation• Coded UI• Load Runner• etc .

Page 9: Андрей Сильчук: "Автоматическое тестирование"

Что может быть покрыто АТ?• Functional:•Unit tests• Integration testing• End-User testing

•UI:•Позиция элементов, внешний вид, наполнение, типы ввода и фильтрация ввода

• Performance and stability

Page 10: Андрей Сильчук: "Автоматическое тестирование"

Manual vs AutomationРучное Автоматизированное

Задание входных значений

Гибкость в задании данных. Позволяет использовать разные значения на разных циклах прогона тестов, расширяя покрытие

Входные значения строго заданы

Проверка результата Гибкая, позволяет тестировщику оценивать нечетко сформулиррованные критерии

Строгая. Нечетко сформулированные критерии могут быть проверены только путём сравнения с эталоном

Повторяемость Низкая. Человеческий фактор и нечеткое определение данных приводят к неповторяемости тестирования

Высокая

Надежность Низкая. Длительные тестовые циклы приводят к снижению внимания у тестировщика

Высокая, не зависит от длины тестового цикла

Чувствительность к незначительным изменениям в продукте

Зависит от детальности описания процедурыю Обычно тестировщик в состоянии выполнить тест, если внешний вид продукта и текст сообщений несколько изменились

Высокая. Незначительные изменения в интерфейсе часто ведут к коррекции эталонов

Скорость выполнения тестового набора

Низкая Высокая

Page 11: Андрей Сильчук: "Автоматическое тестирование"

+ Manual vs Automation• Возможность неформального тестирования• Возможность гибкой оценки результатов• Возможность использования

исследовательской техники тестирования• Возможность полностью имитировать

работу пользователя, использовать пользовательские сценарии

• Не очень чувствителен к изменению продукта

Page 12: Андрей Сильчук: "Автоматическое тестирование"

- Manual vs Automation• Занимает много времени и ресурсов• Не всегда надежно• В ряде случаев практически невозможно

Page 13: Андрей Сильчук: "Автоматическое тестирование"

+ Automation vs Manual• Занимают меньше время на выполнение• Имеют высокую надежность• Позволяют выполнить тестирование,

практически невыполнимое человеком(например нагрузочное тестирование)

Page 14: Андрей Сильчук: "Автоматическое тестирование"

- Automation vs Manual• Чувствителен к малейшим изменениям в

продукте• Редко позволяет сделать гибкое

тестирование и гибкую оценку результатов• Нет возможности тестировать неформально

и используя исследовательскую технику тестирования

• Часто требует много времени на создание и поддержку тестов

Page 15: Андрей Сильчук: "Автоматическое тестирование"

Когда стоит приступать к АТ?• Часть функционала на которую

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

• Большое кол-во предварительных данных для тестирования (DB, XML, etc.), большое количество деталей для проверки

• UI стабилен• Необходима длительная нагрузка на

систему (Performance)• Большое количество регрессии

Page 16: Андрей Сильчук: "Автоматическое тестирование"

Стадии процесса АТ

Принятие решения о внедрении

автоматического

тестирования

Выбор инструментальных средств

Внедрение автоматическ

ого тестирования

Планирование,

проетирование и

разработка

Выполнение тестов,

упарвление процессом

тестирования

Оценка и усовершенств

ование процесса

Page 17: Андрей Сильчук: "Автоматическое тестирование"

ROIROI = (Gain - Investments)/Gain *100%

Gain - расчётная стоимость тестирования без автоматизацииInvestments - расходы на создание и выполнение автоматической библиотеки тестов за тот же период, что был использован для вычисления расчётной стоимости тестирования без автоматизации

Page 18: Андрей Сильчук: "Автоматическое тестирование"

ROIПервая версия:(Время на выполнение тестирования вручную) - (Время на изучение + время на реорганизацию процесса + время на создание тестов + время на поддержу + время на исследование дефекта и анализ результатов) = Экономия времени при использовании автоматического тестирования

Page 19: Андрей Сильчук: "Автоматическое тестирование"

ROIВсе последующие версии:Время на выполнение тестирования вручную – (время на поддержу тестов + время на создание тестов + время на исследование дефекта и анализ результатов) = Экономия времение при использовании автоматического тестирования

Page 20: Андрей Сильчук: "Автоматическое тестирование"

Manual VS Auto

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 240

50100150200250300350400450

Manual

Auto

Время

Кол-во тестов

Page 21: Андрей Сильчук: "Автоматическое тестирование"

Что может пригодиться юному автоматизатору?• Знания основ мануального тестирования https://www.google.com.ua• Скриптование. Начиная от простейших cmd и shell скриптов и заканчивая более сложными вещами (например js)• Знания WebServices , SOAPUI (Rest and SOAP) http://www.w3schools.com/ • XML and XPATH•DHTML•ООП https://www.udemy.com/java-tutorial/ • Регулярные выражения ( http://regexone.com/ )

Page 22: Андрей Сильчук: "Автоматическое тестирование"

Вопросы?