Слайд 2
![Уровни тестирования](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-1.jpg)
Слайд 3
![Уровни тестирования. В тестировании ПО можно выделить 4 основные уровня](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-2.jpg)
Уровни тестирования.
В тестировании ПО можно выделить 4 основные уровня тестирования:
-
Acceptance testing;
- System testing;
- Integration testing;
- Unit testing;
Слайд 4
![Модульное(Unit) - тестирование Процесс в программировании, позволяющий проверить на корректность](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-3.jpg)
Модульное(Unit) - тестирование
Процесс в программировании, позволяющий проверить на корректность отдельные
модули исходного кода программы.
Модульное тестирование – это всегда автоматизированное тестирование!
Слайд 5
![Модульное(Unit) - тестирование Цель тестирования – Изолировать отдельные части программы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-4.jpg)
Модульное(Unit) - тестирование
Цель тестирования – Изолировать отдельные части программы и
показать, что по отдельности эти части работоспособны.
Слайд 6
![Модульное(Unit) - тестирование Проверяет функциональность и ищет дефекты в частях](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-5.jpg)
Модульное(Unit) - тестирование
Проверяет функциональность и ищет дефекты в частях приложения,
которые доступны и могут быть протестированы по-отдельности (модули программ, объекты, классы, функции и т.д.).
Слайд 7
![Модульное(Unit) - тестирование Обычно модульное тестирование проводится вызывая код, который](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-6.jpg)
Модульное(Unit) - тестирование
Обычно модульное тестирование проводится вызывая код, который необходимо
проверить и при поддержке сред разработки, таких как фреймворки для модульного тестирования или инструменты для отладки.
Слайд 8
![Модульное(Unit) - тестирование Все найденные дефекты, как правило исправляются в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-7.jpg)
Модульное(Unit) - тестирование
Все найденные дефекты, как правило исправляются в коде
без формального их описания в системе менеджмента багов (Bug Tracking System).
Слайд 9
![Модульное(Unit) – тестирование. Преимущества - Поощрение изменений; - Упрощение интеграции;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-8.jpg)
Модульное(Unit) – тестирование. Преимущества
- Поощрение изменений;
- Упрощение интеграции;
- Документирование кода;
- Отделение интерфейса от реализации.
Слайд 10
![Модульное(Unit) – тестирование. Когда модульное тестирование не работает. - Сложный](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-9.jpg)
Модульное(Unit) – тестирование. Когда модульное тестирование не работает.
- Сложный код;
- Результат известен лишь приблизительно;
- Ошибки интеграции и производительности;
- Общая низкая культура программирования;
- Проблемы с объектами – заглушками;
Слайд 11
![Модульное(Unit) – тестирование. Объекты - заглушки Mock – Object –](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-10.jpg)
Модульное(Unit) – тестирование. Объекты - заглушки
Mock – Object – Тип объектов,
реализующий заданные аспекты моделируемого программного окружения.
Слайд 12
![Модульное(Unit) – тестирование. Инструментарий Для Java: - JUnit; - TestNG; Для Ruby: - Rspec; - TestUnit](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-11.jpg)
Модульное(Unit) – тестирование. Инструментарий
Для Java:
- JUnit;
- TestNG;
Для Ruby:
-
Rspec;
- TestUnit
Слайд 13
![Модульное(Unit) – тестирование. Инструментарий Для C#: - NUnit; - xUnit; - MSTest.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-12.jpg)
Модульное(Unit) – тестирование. Инструментарий
Для C#:
- NUnit;
- xUnit;
-
MSTest.
Слайд 14
![Модульное(Unit) – тестирование. Инструментарий Для JavaScript: - QUnit; - Jasmine.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-13.jpg)
Модульное(Unit) – тестирование. Инструментарий
Для JavaScript:
- QUnit;
- Jasmine.
Слайд 15
![Модульное(Unit) – тестирование. TDD Один из наиболее эффективных подходов к](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-14.jpg)
Модульное(Unit) – тестирование. TDD
Один из наиболее эффективных подходов к модульному
тестированию - это подготовка автоматизированных тестов до начала основного этапа разработки ПО.
Слайд 16
![Модульное(Unit) – тестирование. TDD Это называется разработка от тестирования (test-driven](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-15.jpg)
Модульное(Unit) – тестирование. TDD
Это называется разработка от тестирования (test-driven development)
или подход тестирования вначале (test first approach). При этом подходе создаются и интегрируются небольшие куски кода, напротив которых запускаются тесты, написанные до начала разработки.
Слайд 17
![Модульное(Unit) – тестирование. TDD Разработка ведется до тех пор пока все тесты не будут успешно пройдены.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-16.jpg)
Модульное(Unit) – тестирование. TDD
Разработка ведется до тех пор пока все
тесты не будут успешно пройдены.
Слайд 18
![Модульное(Unit) – тестирование. TDD](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-17.jpg)
Модульное(Unit) – тестирование. TDD
Слайд 19
![TDD. Преимущества Качество тестов: - 100% покрытие тестов; - Модульные тесты; - Изменения без страха;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-18.jpg)
TDD. Преимущества
Качество тестов:
- 100% покрытие тестов;
- Модульные тесты;
-
Изменения без страха;
Слайд 20
![TDD. Преимущества Качество кода: - Модульный, гибкий и расширяемый код;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-19.jpg)
TDD. Преимущества
Качество кода:
- Модульный, гибкий и расширяемый код;
- Всегда
работающий код;
- Меньшее время отладки;
- Поощряет рефакторинг.
Слайд 21
![TDD. Недостатки - Высокий порог вхождения; - Ошибочный тест =](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-20.jpg)
TDD. Недостатки
- Высокий порог вхождения;
- Ошибочный тест = ошибочный
код;
- Поддержка большого количества тестов.
Слайд 22
![BDD. Что это? Behavior – driven development: - Ответвление от](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-21.jpg)
BDD. Что это?
Behavior – driven development:
- Ответвление от TDD;
-
Связь кода с требованиями;
- Фокус не на тестах, а на поведении;
- Запись требований с помощью обычных фраз.
Слайд 23
![BDD. Как это работает 1. Описание требований заказчиком)))](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-22.jpg)
BDD. Как это работает
1. Описание требований заказчиком)))
Слайд 24
![BDD. Как это работает 2. Реализация функционала; 3. Проверка соответствия требованиям (тест прошел/ не прошел)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-23.jpg)
BDD. Как это работает
2. Реализация функционала;
3. Проверка соответствия требованиям (тест прошел/
не прошел)
Слайд 25
![BDD. Инструментарий - Java, Ruby, JavaScript, PHP – Cucumber - C# - SpecFlow.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-24.jpg)
BDD. Инструментарий
- Java, Ruby, JavaScript, PHP – Cucumber
- C#
- SpecFlow.
Слайд 26
![BDD. Пример](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-25.jpg)
Слайд 27
![Логика Парадокс Монти Холла (автомобиль и козы)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-26.jpg)
Логика
Парадокс Монти Холла (автомобиль и козы)
Слайд 28
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-27.jpg)
Слайд 29
![Логика Как взвесить без весов реактивный авиалайнер?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-28.jpg)
Логика
Как взвесить без весов реактивный авиалайнер?
Слайд 30
![Логика Почему крышки канализационных люков круглые?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-29.jpg)
Логика
Почему крышки канализационных люков круглые?
Слайд 31
![Можете ли вы установить, по какому принципу выстроена данная последовательность:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-30.jpg)
Можете ли вы установить, по какому принципу выстроена данная последовательность:
8 2
9 0 1 5 7 3 4 6
Слайд 32
![Логика У вас есть пять баночек с таблетками. Нормальные таблетки](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/404253/slide-31.jpg)
Логика
У вас есть пять баночек с таблетками. Нормальные таблетки весят по
10 грамм, но есть одна баночка с дефектными таблетками, которые весят по 9 грамм каждая. Как при помощи одного взвешивания определить в какой баночке дефектные таблетки?