QA Fes 2016. Роман Якимчук. Продвинутое тестирование состояний и переходов

Q
Киев 2016
Первый в Украине фестиваль тестирования
Продвинутое тестирование состояний и
переходов
Email: yakimchuk.r.v@gmail.com
Skype: yakimchuk_roman
QABlog: facebook.com/qa.blog.ua
Roman Yakimchuk
Senior QA Engineer
Киев 2016
Вопросы дня:
• Что такое тестирование состояний
и переходов?
• Когда использовать?
• Как использовать?
Продвинутое тестирование состояний и переходов
Киев 2016Продвинутое тестирование состояний и переходов
Киев 2016Продвинутое тестирование состояний и переходов
Написать сообщение
1
1. Написать
Киев 2016
Отправить сообщение
1
2 1. Написать
2. Отправить
Продвинутое тестирование состояний и переходов
Киев 2016
Основные определения:
● Состояние - это условие в котором сохраняется объект до
тех пор, пока что-то не произойдет – что-то внешнее по
отношению к самому объекту, обычно вызывающее
переход.
● Действие - это что то, что заставляет объект изменить
состояние. Когда происходит действие, объект может
изменить свое состояние или остаться в том же состоянии.
● Переход - это смена состояний.
● Событие - сообщает об изменении состояния некоторого
объекта, каждое действие пользователя порождает
цепочку событий
Продвинутое тестирование состояний и переходов
Киев 2016
Удалить сообщение
1. Написать
2. Отправить
3. Удалить
1
2
3
Продвинутое тестирование состояний и переходов
Киев 2016
Нет сообщения
1. Написать
2. Отправить
3. Удалить
4. Удалить навсегда
1
2
3
4
Продвинутое тестирование состояний и переходов
Киев 2016
Черновик
1. Написать
2. Отправить
3. Удалить
4. Удалить навсегда
5. Сохранить
1
2
3
4
5
Продвинутое тестирование состояний и переходов
Киев 2016
Черновик - Отправленное
1. Написать
2. Отправить
3. Удалить
4. Удалить навсегда
5. Сохранить
1
2
3
4
5
2
Продвинутое тестирование состояний и переходов
Киев 2016
Новое - Входящее
1
2
3
4
5
2
1. Написать
2. Отправить
3. Удалить
4. Удалить навсегда
5. Сохранить
Продвинутое тестирование состояний и переходов
2 [Отправить себе]
Киев 2016
Черновик - Входящее
1. Написать
2. Отправить
3. Удалить
4. Удалить навсегда
5. Сохранить
1
2
3
4
5
2
2 [Отправить себе]
2[ОС]
Продвинутое тестирование состояний и переходов
Киев 2016
Входящее - Удаленное
1
2
3
4
5
2
1. Написать
2. Отправить
3. Удалить
4. Удалить навсегда
5. Сохранить
3
Продвинутое тестирование состояний и переходов
2 [ОС]
2[ОС]
Киев 2016
Удаленное - Входящее
1
2
3
5
2
2 [ОС] 3
4
1. Написать
2. Отправить
3. Удалить
4. Удалить навсегда
5. Сохранить
6. Переслать
6 [Переслать себе]
Продвинутое тестирование состояний и переходов
2[ОС]
Киев 2016
Входящее - Спам
1
2
3
5
2
3
4
6 [ПС]
1. Написать
2. Отправить
3. Удалить
4. Удалить навсегда
5. Сохранить
6. Переслать
7. Переместить
7
Продвинутое тестирование состояний и переходов
2 [ОС]
2[ОС]
Киев 2016
Спам - Входящее
1
2
3
5
2
3
4
7
1. Написать
2. Отправить
3. Удалить
4. Удалить навсегда
5. Сохранить
6. Переслать
7. Переместить
8. Не спам
8
Продвинутое тестирование состояний и переходов
6 [ПС]
2 [ОС]
2[ОС]
Киев 2016
1
2
3
5
2
3
4
7 8
4
1. Написать
2. Отправить
3. Удалить
4. Удалить навсегда
5. Сохранить
6. Переслать
7. Переместить
8. Не спам
Спам - Нет сообщения
Продвинутое тестирование состояний и переходов
6 [ПС]
2 [ОС]
2[ОС]
Киев 2016
1. Состояния объекта
2. Действия над объектом
3. Переходы между
состояниями
1. Написать
…
4. Удалить навсегда
5 Сохранить
…
7. Переместить в
спам
В результате, мы имеем:
Продвинутое тестирование состояний и переходов
Киев 2016
Состояние:
• В разных состояниях нам доступны разные
действия
• Одни и те же действия могут выполняться
по разному из разных состояний
• Есть риски разных ошибок на одних и тех
же действиях, в зависимости от
последовательности их выполнения.
Продвинутое тестирование состояний и переходов
Киев 2016
Действие:
• Мы что-то делаем над объектом
(редактируем, сохраняем, удаляем,
отправляем).
• Мы ожидаем получить какой-то результат
(при редактировании должно что то
произойти, измениться тело объекта)
• Действие не обязательно меняет состояние!
(мы можем редактировать черновик, но это
не поменяет его состояния)
Продвинутое тестирование состояний и переходов
Киев 2016
Переход:
• Действие над объектом меняет его
состояние (примером, при удалении
входящего сообщения, оно попадает в
корзину и становиться удаленным)
• Можно осуществить переход при помощи
разных действий
• Можно осуществить разные переходы при
помощи одного действия
Продвинутое тестирование состояний и переходов
Киев 2016
Анализ Действий по Состояниям
Продвинутое тестирование состояний и переходов
Киев 2016
Анализ Действий по Состояниям
Продвинутое тестирование состояний и переходов
Киев 2016
Анализ Действий по Состояниям
Продвинутое тестирование состояний и переходов
Киев 2016
Анализ способов перехода
Продвинутое тестирование состояний и переходов
Киев 2016
Анализ способов перехода
Продвинутое тестирование состояний и переходов
Киев 2016
Анализ способов перехода
Продвинутое тестирование состояний и переходов
1
2
2
2[ОС]
3
3
4
4
5
7 8
9
9[ПСп]
10
11
12 13[ОО]
6
6
7[ПВ]
7
7
11
12
12
6
7
6
14
6
6
6
1. Написать
2. Отправить
3. Удалить
4. Удалить навсегда
5. Сохранить
6. Переслать
7. Переместить
8. Не спам
9. Получить от кого то
10. Закрыть сообщение
без внесения данных
11. Удалить черновик
12. Редактировать
13. Отправить
сообщение и отменить
отправку
14. Обозначить как Спам
Киев 2016
Анализ последовательностей
Продвинутое тестирование состояний и переходов
1. Создать набор тест кейсов таким способом, чтобы все
состояния были пройдены как минимум один раз.
Киев 2016
Анализ последовательностей
Продвинутое тестирование состояний и переходов
2. Создать набор тест кейсов таким способом, чтобы все
действия были проверены как минимум один раз. Тест
кейсы которые покрывают все действия могут быть
такими же как и тест кейсы покрывающие состояния.
Киев 2016
Анализ последовательностей
Продвинутое тестирование состояний и переходов
3. Создать набор тест кейсов таким способом, чтобы все
нестандартные цепочки переходов были проверены как
минимум один раз.
9 Получить от кого то
1-2 Написать-Отправить себе ж
1-5-2 Написать-Сохранить в черновик-Отправить себе ж
Киев 2016
В результате анализа мы проверяем
Продвинутое тестирование состояний и переходов
● Все действия из каждого состояния
● Все возможные переходы между
состояниями
● Нестандартные цепочки переходов
и последовательности
Киев 2016
Где почитать, посмотреть?
Продвинутое тестирование состояний и переходов
● Lee Copeland "A Practitioner's Guide to Software
Test Design". Chapter 7 - State-Transition
Testing, p.93
● Black Rex, Mitchell Jamie. Advanced Software
Testing - Vol. 3. 4.2.4 State-Based Testing and
State Transition Diagrams, p.154
● Борис Бейзер, "Тестирование черного ящика".
Глава 9 - Тестирование систем с конечным
числом состояний, стр.237
● Наталья Руколь "Школа Тест-Аналитика"
1 of 32

Recommended

QA Fest 2017. Анастасия Павленко. А ты готов к интеграционному тестированию? by
QA Fest 2017. Анастасия Павленко. А ты готов к интеграционному тестированию?QA Fest 2017. Анастасия Павленко. А ты готов к интеграционному тестированию?
QA Fest 2017. Анастасия Павленко. А ты готов к интеграционному тестированию?QAFest
630 views48 slides
CI для тестировщиков или как отказаться от релизов by
CI для тестировщиков или как отказаться от релизовCI для тестировщиков или как отказаться от релизов
CI для тестировщиков или как отказаться от релизовSQALab
864 views22 slides
QA Fest 2017. Святослав Логин. Как провести тестирование на безопасность Web ... by
QA Fest 2017. Святослав Логин. Как провести тестирование на безопасность Web ...QA Fest 2017. Святослав Логин. Как провести тестирование на безопасность Web ...
QA Fest 2017. Святослав Логин. Как провести тестирование на безопасность Web ...QAFest
3.8K views40 slides
Часть 2: Требования к системе by
Часть 2: Требования к системеЧасть 2: Требования к системе
Часть 2: Требования к системеOleg Popov
61 views15 slides
Test by
TestTest
TestIgor Kryltsov
205 views4 slides
День 2: Автоматизированное тестирование: Jenkins by
 День 2: Автоматизированное тестирование: Jenkins День 2: Автоматизированное тестирование: Jenkins
День 2: Автоматизированное тестирование: JenkinsOleg Popov
104 views10 slides

More Related Content

Viewers also liked

QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников by
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQAFest
3.4K views44 slides
QA Fest 2016. Екатерина Шепелева. Секрет успеха: как стать и оставаться востр... by
QA Fest 2016. Екатерина Шепелева. Секрет успеха: как стать и оставаться востр...QA Fest 2016. Екатерина Шепелева. Секрет успеха: как стать и оставаться востр...
QA Fest 2016. Екатерина Шепелева. Секрет успеха: как стать и оставаться востр...QAFest
999 views24 slides
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe by
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшeQA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшeQAFest
5.6K views75 slides
Kiss PageObjects [01-2017] by
Kiss PageObjects [01-2017]Kiss PageObjects [01-2017]
Kiss PageObjects [01-2017]Iakiv Kramarenko
6K views132 slides
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле? by
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QAFest
13.5K views54 slides
QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до... by
QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...
QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...QAFest
904 views15 slides

Viewers also liked(20)

QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников by QAFest
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QAFest3.4K views
QA Fest 2016. Екатерина Шепелева. Секрет успеха: как стать и оставаться востр... by QAFest
QA Fest 2016. Екатерина Шепелева. Секрет успеха: как стать и оставаться востр...QA Fest 2016. Екатерина Шепелева. Секрет успеха: как стать и оставаться востр...
QA Fest 2016. Екатерина Шепелева. Секрет успеха: как стать и оставаться востр...
QAFest999 views
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe by QAFest
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшeQA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QAFest5.6K views
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле? by QAFest
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QAFest13.5K views
QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до... by QAFest
QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...
QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...
QAFest904 views
О чем никто не говорит, а Google не находит? - нюансы Severity и Priority by SQALab
О чем никто не говорит, а Google не находит? - нюансы Severity и PriorityО чем никто не говорит, а Google не находит? - нюансы Severity и Priority
О чем никто не говорит, а Google не находит? - нюансы Severity и Priority
SQALab2.1K views
QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим... by QAFest
QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...
QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...
QAFest1.4K views
Советы для успешной автоматизации тестирования веб-приложений by Mairbek Khadikov
Советы для успешной автоматизации тестирования веб-приложенийСоветы для успешной автоматизации тестирования веб-приложений
Советы для успешной автоматизации тестирования веб-приложений
Mairbek Khadikov2.8K views
QA Fest 2016. Яков Крамаренко. Укрощаем фреймворки-динозавры используя NSelene by QAFest
QA Fest 2016. Яков Крамаренко. Укрощаем фреймворки-динозавры используя NSeleneQA Fest 2016. Яков Крамаренко. Укрощаем фреймворки-динозавры используя NSelene
QA Fest 2016. Яков Крамаренко. Укрощаем фреймворки-динозавры используя NSelene
QAFest930 views
QA Fes 2016. Игорь Бондаренко. Тестирование Ecommerce проектов. На что обраща... by QAFest
QA Fes 2016. Игорь Бондаренко. Тестирование Ecommerce проектов. На что обраща...QA Fes 2016. Игорь Бондаренко. Тестирование Ecommerce проектов. На что обраща...
QA Fes 2016. Игорь Бондаренко. Тестирование Ecommerce проектов. На что обраща...
QAFest829 views
Автотесты на уровне API для Java-приложений by SQALab
Автотесты на уровне API для Java-приложенийАвтотесты на уровне API для Java-приложений
Автотесты на уровне API для Java-приложений
SQALab4.3K views
Будни тестирования Cassandr-ы by SQALab
Будни тестирования Cassandr-ыБудни тестирования Cassandr-ы
Будни тестирования Cassandr-ы
SQALab1.2K views
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров... by QAFest
QA Fest 2016. Дмитрий Химион.  Векторы развития систем автоматизации тестиров...QA Fest 2016. Дмитрий Химион.  Векторы развития систем автоматизации тестиров...
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
QAFest1.1K views
Простой взгляд на автоматизацию или Как не изобретать велосипед by SQALab
Простой взгляд на автоматизацию или Как не изобретать велосипедПростой взгляд на автоматизацию или Как не изобретать велосипед
Простой взгляд на автоматизацию или Как не изобретать велосипед
SQALab1.1K views
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика by QAFest
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QAFest3.2K views
QA Fest 2016. Роман Горин. Введение в системы распознавания речи глазами тест... by QAFest
QA Fest 2016. Роман Горин. Введение в системы распознавания речи глазами тест...QA Fest 2016. Роман Горин. Введение в системы распознавания речи глазами тест...
QA Fest 2016. Роман Горин. Введение в системы распознавания речи глазами тест...
QAFest1.1K views
User Interface Тестирование – все ли так просто? by SQALab
User Interface Тестирование – все ли так просто?User Interface Тестирование – все ли так просто?
User Interface Тестирование – все ли так просто?
SQALab11K views
QA Fes 2016. Иван Пашко. Теория Дарвина в тестах. Эволюция Wait-ов. by QAFest
QA Fes 2016. Иван Пашко. Теория Дарвина в тестах. Эволюция Wait-ов.QA Fes 2016. Иван Пашко. Теория Дарвина в тестах. Эволюция Wait-ов.
QA Fes 2016. Иван Пашко. Теория Дарвина в тестах. Эволюция Wait-ов.
QAFest1.2K views

More from QAFest

QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин by
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQAFest
979 views44 slides
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future by
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQAFest
931 views44 slides
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe... by
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QAFest
322 views131 slides
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и... by
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QAFest
336 views92 slides
QA Fest 2019. Никита Галкин. Как зарабатывать больше by
QA Fest 2019. Никита Галкин. Как зарабатывать большеQA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать большеQAFest
389 views40 slides
QA Fest 2019. Сергей Пирогов. Why everything is spoiled by
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQAFest
342 views33 slides

More from QAFest(20)

QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин by QAFest
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QAFest979 views
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future by QAFest
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QAFest931 views
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe... by QAFest
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QAFest322 views
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и... by QAFest
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QAFest336 views
QA Fest 2019. Никита Галкин. Как зарабатывать больше by QAFest
QA Fest 2019. Никита Галкин. Как зарабатывать большеQA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать больше
QAFest389 views
QA Fest 2019. Сергей Пирогов. Why everything is spoiled by QAFest
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiled
QAFest342 views
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием by QAFest
QA Fest 2019. Сергей Новик. Между мотивацией и выгораниемQA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QAFest249 views
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н... by QAFest
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QAFest338 views
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV... by QAFest
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QAFest227 views
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster by QAFest
QA Fest 2019. Иван Крутов. Bulletproof Selenium ClusterQA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QAFest282 views
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе... by QAFest
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QAFest251 views
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз... by QAFest
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QAFest301 views
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation by QAFest
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automationQA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QAFest225 views
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в... by QAFest
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QAFest243 views
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa... by QAFest
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QAFest376 views
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT by QAFest
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях ITQA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QAFest209 views
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении by QAFest
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложенииQA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QAFest607 views
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр... by QAFest
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QAFest321 views
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр... by QAFest
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QAFest296 views
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22 by QAFest
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QAFest164 views

QA Fes 2016. Роман Якимчук. Продвинутое тестирование состояний и переходов

  • 1. Киев 2016 Первый в Украине фестиваль тестирования Продвинутое тестирование состояний и переходов Email: yakimchuk.r.v@gmail.com Skype: yakimchuk_roman QABlog: facebook.com/qa.blog.ua Roman Yakimchuk Senior QA Engineer
  • 2. Киев 2016 Вопросы дня: • Что такое тестирование состояний и переходов? • Когда использовать? • Как использовать? Продвинутое тестирование состояний и переходов
  • 3. Киев 2016Продвинутое тестирование состояний и переходов
  • 4. Киев 2016Продвинутое тестирование состояний и переходов Написать сообщение 1 1. Написать
  • 5. Киев 2016 Отправить сообщение 1 2 1. Написать 2. Отправить Продвинутое тестирование состояний и переходов
  • 6. Киев 2016 Основные определения: ● Состояние - это условие в котором сохраняется объект до тех пор, пока что-то не произойдет – что-то внешнее по отношению к самому объекту, обычно вызывающее переход. ● Действие - это что то, что заставляет объект изменить состояние. Когда происходит действие, объект может изменить свое состояние или остаться в том же состоянии. ● Переход - это смена состояний. ● Событие - сообщает об изменении состояния некоторого объекта, каждое действие пользователя порождает цепочку событий Продвинутое тестирование состояний и переходов
  • 7. Киев 2016 Удалить сообщение 1. Написать 2. Отправить 3. Удалить 1 2 3 Продвинутое тестирование состояний и переходов
  • 8. Киев 2016 Нет сообщения 1. Написать 2. Отправить 3. Удалить 4. Удалить навсегда 1 2 3 4 Продвинутое тестирование состояний и переходов
  • 9. Киев 2016 Черновик 1. Написать 2. Отправить 3. Удалить 4. Удалить навсегда 5. Сохранить 1 2 3 4 5 Продвинутое тестирование состояний и переходов
  • 10. Киев 2016 Черновик - Отправленное 1. Написать 2. Отправить 3. Удалить 4. Удалить навсегда 5. Сохранить 1 2 3 4 5 2 Продвинутое тестирование состояний и переходов
  • 11. Киев 2016 Новое - Входящее 1 2 3 4 5 2 1. Написать 2. Отправить 3. Удалить 4. Удалить навсегда 5. Сохранить Продвинутое тестирование состояний и переходов 2 [Отправить себе]
  • 12. Киев 2016 Черновик - Входящее 1. Написать 2. Отправить 3. Удалить 4. Удалить навсегда 5. Сохранить 1 2 3 4 5 2 2 [Отправить себе] 2[ОС] Продвинутое тестирование состояний и переходов
  • 13. Киев 2016 Входящее - Удаленное 1 2 3 4 5 2 1. Написать 2. Отправить 3. Удалить 4. Удалить навсегда 5. Сохранить 3 Продвинутое тестирование состояний и переходов 2 [ОС] 2[ОС]
  • 14. Киев 2016 Удаленное - Входящее 1 2 3 5 2 2 [ОС] 3 4 1. Написать 2. Отправить 3. Удалить 4. Удалить навсегда 5. Сохранить 6. Переслать 6 [Переслать себе] Продвинутое тестирование состояний и переходов 2[ОС]
  • 15. Киев 2016 Входящее - Спам 1 2 3 5 2 3 4 6 [ПС] 1. Написать 2. Отправить 3. Удалить 4. Удалить навсегда 5. Сохранить 6. Переслать 7. Переместить 7 Продвинутое тестирование состояний и переходов 2 [ОС] 2[ОС]
  • 16. Киев 2016 Спам - Входящее 1 2 3 5 2 3 4 7 1. Написать 2. Отправить 3. Удалить 4. Удалить навсегда 5. Сохранить 6. Переслать 7. Переместить 8. Не спам 8 Продвинутое тестирование состояний и переходов 6 [ПС] 2 [ОС] 2[ОС]
  • 17. Киев 2016 1 2 3 5 2 3 4 7 8 4 1. Написать 2. Отправить 3. Удалить 4. Удалить навсегда 5. Сохранить 6. Переслать 7. Переместить 8. Не спам Спам - Нет сообщения Продвинутое тестирование состояний и переходов 6 [ПС] 2 [ОС] 2[ОС]
  • 18. Киев 2016 1. Состояния объекта 2. Действия над объектом 3. Переходы между состояниями 1. Написать … 4. Удалить навсегда 5 Сохранить … 7. Переместить в спам В результате, мы имеем: Продвинутое тестирование состояний и переходов
  • 19. Киев 2016 Состояние: • В разных состояниях нам доступны разные действия • Одни и те же действия могут выполняться по разному из разных состояний • Есть риски разных ошибок на одних и тех же действиях, в зависимости от последовательности их выполнения. Продвинутое тестирование состояний и переходов
  • 20. Киев 2016 Действие: • Мы что-то делаем над объектом (редактируем, сохраняем, удаляем, отправляем). • Мы ожидаем получить какой-то результат (при редактировании должно что то произойти, измениться тело объекта) • Действие не обязательно меняет состояние! (мы можем редактировать черновик, но это не поменяет его состояния) Продвинутое тестирование состояний и переходов
  • 21. Киев 2016 Переход: • Действие над объектом меняет его состояние (примером, при удалении входящего сообщения, оно попадает в корзину и становиться удаленным) • Можно осуществить переход при помощи разных действий • Можно осуществить разные переходы при помощи одного действия Продвинутое тестирование состояний и переходов
  • 22. Киев 2016 Анализ Действий по Состояниям Продвинутое тестирование состояний и переходов
  • 23. Киев 2016 Анализ Действий по Состояниям Продвинутое тестирование состояний и переходов
  • 24. Киев 2016 Анализ Действий по Состояниям Продвинутое тестирование состояний и переходов
  • 25. Киев 2016 Анализ способов перехода Продвинутое тестирование состояний и переходов
  • 26. Киев 2016 Анализ способов перехода Продвинутое тестирование состояний и переходов
  • 27. Киев 2016 Анализ способов перехода Продвинутое тестирование состояний и переходов 1 2 2 2[ОС] 3 3 4 4 5 7 8 9 9[ПСп] 10 11 12 13[ОО] 6 6 7[ПВ] 7 7 11 12 12 6 7 6 14 6 6 6 1. Написать 2. Отправить 3. Удалить 4. Удалить навсегда 5. Сохранить 6. Переслать 7. Переместить 8. Не спам 9. Получить от кого то 10. Закрыть сообщение без внесения данных 11. Удалить черновик 12. Редактировать 13. Отправить сообщение и отменить отправку 14. Обозначить как Спам
  • 28. Киев 2016 Анализ последовательностей Продвинутое тестирование состояний и переходов 1. Создать набор тест кейсов таким способом, чтобы все состояния были пройдены как минимум один раз.
  • 29. Киев 2016 Анализ последовательностей Продвинутое тестирование состояний и переходов 2. Создать набор тест кейсов таким способом, чтобы все действия были проверены как минимум один раз. Тест кейсы которые покрывают все действия могут быть такими же как и тест кейсы покрывающие состояния.
  • 30. Киев 2016 Анализ последовательностей Продвинутое тестирование состояний и переходов 3. Создать набор тест кейсов таким способом, чтобы все нестандартные цепочки переходов были проверены как минимум один раз. 9 Получить от кого то 1-2 Написать-Отправить себе ж 1-5-2 Написать-Сохранить в черновик-Отправить себе ж
  • 31. Киев 2016 В результате анализа мы проверяем Продвинутое тестирование состояний и переходов ● Все действия из каждого состояния ● Все возможные переходы между состояниями ● Нестандартные цепочки переходов и последовательности
  • 32. Киев 2016 Где почитать, посмотреть? Продвинутое тестирование состояний и переходов ● Lee Copeland "A Practitioner's Guide to Software Test Design". Chapter 7 - State-Transition Testing, p.93 ● Black Rex, Mitchell Jamie. Advanced Software Testing - Vol. 3. 4.2.4 State-Based Testing and State Transition Diagrams, p.154 ● Борис Бейзер, "Тестирование черного ящика". Глава 9 - Тестирование систем с конечным числом состояний, стр.237 ● Наталья Руколь "Школа Тест-Аналитика"