Уровни тестирования (2)

Содержание

Слайд 2

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

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

Слайд 3

Модели разработки ПО

Коробочный программный продукт
Итеративно - инкрементальная модель разработки ПО
Валидация
Верификация
V - модель

Модели разработки ПО Коробочный программный продукт Итеративно - инкрементальная модель разработки ПО

Слайд 4

Зависимость тестирования

Адаптируемся!!!

Зависимость тестирования Адаптируемся!!!

Слайд 5

Waterfall - модель

Одна из самых старых, подразумевает последовательное прохождение стадий, каждая из

Waterfall - модель Одна из самых старых, подразумевает последовательное прохождение стадий, каждая
которых должна завершиться полностью до начала следующей.
Легко управлять проектом. Благодаря её жесткости, разработка проходит быстро, стоимость и срок заранее определены.
Каскадная модель будет давать отличный результат только в проектах с четко и заранее определенными требованиями
Тестирование начинается только после того, как разработка завершена или почти завершена.

Слайд 6

Waterfall - модель

Стоимость внесения изменений высока, так как для ее инициализации приходится

Waterfall - модель Стоимость внесения изменений высока, так как для ее инициализации
ждать завершения всего проекта.
Когда использовать каскадную методологию?
Только когда требования известны, понятны и зафиксированы. Противоречивых требований не имеется.
Нет проблем с доступностью программистов нужной квалификации.
В относительно небольших либо краткосрочных проектах.

Слайд 7

Модели разработки ПО

Унаследовала структуру «шаг за шагом» от каскадной модели.
V-образная модель

Модели разработки ПО Унаследовала структуру «шаг за шагом» от каскадной модели. V-образная
применима к системам, которым особенно важно бесперебойное функционирование:
Например, прикладные программы в клиниках для наблюдения за пациентами, интегрированное ПО для механизмов управления аварийными подушками безопасности в транспортных средствах

Слайд 8

V- модель

Особенностью модели
Направлена на тщательную проверку и тестирование продукта, находящегося уже на

V- модель Особенностью модели Направлена на тщательную проверку и тестирование продукта, находящегося
первоначальных стадиях проектирования.
Стадия тестирования проводится одновременно с соответствующей стадией разработки, например, во время кодирования пишутся модульные тесты.
Когда использовать V-модель?
Если требуется тщательное тестирование продукта, то V-модель оправдает заложенную в себя идею: validation and verification.
Для малых и средних проектов
Требования четко определены и фиксированы.
У инженеров и тестировщиков есть необходимая квалификация

Слайд 9

Итеративно-инкрементные модели

Например:
RUP
RAD
Agile
Задачи тестирования:
Оперативность
Регрессия

Итеративно-инкрементные модели Например: RUP RAD Agile Задачи тестирования: Оперативность Регрессия

Слайд 10

Итеративно-инкрементные модели

Цикл разделен на более мелкие, легко создаваемые модули.
Каждый

Итеративно-инкрементные модели Цикл разделен на более мелкие, легко создаваемые модули. Каждый модуль
модуль проходит через фазы определения требований, проектирования, кодирования, внедрения и тестирования.
Предполагает выпуск на первом большом этапе продукта в базовой функциональности, а затем уже последовательное добавление новых функций, так называемых «инкрементов».
Процесс продолжается до тех пор, пока не будет создана полная система.

Слайд 11

Итеративно-инкрементные модели

Инкрементные модели используются там, где отдельные запросы на изменение ясны,

Итеративно-инкрементные модели Инкрементные модели используются там, где отдельные запросы на изменение ясны,
могут быть легко формализованы и реализованы
Когда использовать инкрементную модель?
Когда основные требования к системе четко определены и понятны.
В то же время некоторые детали могут дорабатываться с течением времени.
Требуется ранний вывод продукта на рынок.
Есть несколько рисковых фич или целей.

Слайд 12

Agile - философия

В «гибкой» методологии разработки после каждой итерации заказчик может наблюдать

Agile - философия В «гибкой» методологии разработки после каждой итерации заказчик может
результат и понимать, удовлетворяет он его или нет.
Из-за отсутствия конкретных формулировок результатов сложно оценить трудозатраты и стоимость, требуемые на разработку.
В основе такого типа — непродолжительные ежедневные встречи — «Scrum call/meeting» и регулярно повторяющиеся собрания

Слайд 13

Agile - философия

На ежедневных совещаниях участники команды обсуждают:
отчёт о проделанной работе с

Agile - философия На ежедневных совещаниях участники команды обсуждают: отчёт о проделанной
момента последнего Scrum’a;
список задач, которые сотрудник должен выполнить до следующего собрания;
затруднения, возникшие в ходе работы.
Методология подходит для больших или нацеленных на длительный жизненный цикл проектов, постоянно адаптируемых к условиям рынка

Слайд 14

Agile - философия

Когда использовать Agile?
Когда потребности пользователей постоянно меняются в динамическом бизнесе.
Изменения

Agile - философия Когда использовать Agile? Когда потребности пользователей постоянно меняются в
на Agile реализуются за меньшую цену из-за частых инкрементов.
В отличие от модели водопада, в гибкой модели для старта проекта достаточно лишь небольшого планирования.

Слайд 15

Оперативность в Agile

Agile -> Регрессия -> Автоматизация

Оперативность в Agile Agile -> Регрессия -> Автоматизация

Слайд 16

RUP - рациональный унифицированный процесс

Разделение проекта на несколько мелких проектов, которые выполняются

RUP - рациональный унифицированный процесс Разделение проекта на несколько мелких проектов, которые
последовательно, и каждая итерация разработки четко определена целями, которые должны быть достигнуты в конце итерации
RUP достаточно хорошо формализован, и наибольшее внимание уделяется начальным стадиям разработки проекта — анализу и моделированию.
Методология направлена на снижение коммерческих рисков (risk mitigating) посредством обнаружения ошибок на ранних стадиях разработки.

Слайд 17

RUP - рациональный унифицированный процесс

Процесс делится на четыре основные фазы во времени

RUP - рациональный унифицированный процесс Процесс делится на четыре основные фазы во
(milestones):
• Inception — понимание, что мы создаем. Фаза сбора информации и анализа требований, определение образа проекта в целом;
• Elaboration — понимание, как мы это создаем. Фаза анализа требований и проектирования системы, планирование необходимых действий и ресурсов, спецификация функций и особенностей дизайна;

Слайд 18

RUP - рациональный унифицированный процесс

• Construction — создание бета-версии продукта. Основная фаза

RUP - рациональный унифицированный процесс • Construction — создание бета-версии продукта. Основная
разработки и кодирования, построение продукта как восходящей последовательности итераций (версий кода);
• Transition — создание конечной версии продукта. Фаза внедрения продукта, поставка продукта конкретному пользователю
Стоит специально отметить, что regression testing должно содержать все актуальные тесты от предыдущей итерации. Ведущая роль - архитектор

Слайд 19

Коробочный продукт

Коробочный (тиражный) программный продукт - коммерческое готовое программное обеспечение. ПО разработанное

Коробочный продукт Коробочный (тиражный) программный продукт - коммерческое готовое программное обеспечение. ПО
для широкого рынка и поставляемое большинству в одинаковой конфигурации

Слайд 20

Коробочный продукт

Коробочный продукт

Слайд 21

Заказное ПО

Заказное (кастомное)ПО – ПО, разработанное специально для группы пользователей, заказчика

Заказное ПО Заказное (кастомное)ПО – ПО, разработанное специально для группы пользователей, заказчика

Слайд 22

Коробочное + кастомное ПО

Коробочное + кастомное ПО

Слайд 23

Верификация

Верификация - подтверждение исследованием и через объективные доказательства, того , что указанные

Верификация Верификация - подтверждение исследованием и через объективные доказательства, того , что указанные требования были выполнены
требования были выполнены

Слайд 24

Валидация

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

Валидация Валидация - подтверждение исследованием и через предоставление объективных доказательств, что требования
для указанного, предполагаемого использования или применения были выполнены

Слайд 25

Верификация vs Валидация

Верификация включает в себя проверку документов, дизайна, кода, а Валидация,

Верификация vs Валидация Верификация включает в себя проверку документов, дизайна, кода, а
включает в себя тестирование и валидация самого продукта.
Верификация - без выполнения кода. Валидация - выполнение кода.
Верификация использует методы, как ревью, прогоны, инспекции, а Валидация black box тестирование, white box тестирование и нефункциональное тестирование.
Верификация проверяет подтверждает ли разрабатываемое ПО спецификации, а Валидация проверяет соответствует ли ПО требованиям и ожиданиям
Верификация находит баги на ранних этапах процесса разработки. Валидация находит баги, которые верификация не смогла поймать.
Верификация нацелена на архитектуру ПО, дизайн, БД, а Валидация на конечный продукт
С начала делается верификация, а потом уже Валидация

Слайд 26

Критерии качества тестирования

Каждому процессу разработки, соответствует свой процесс тестирования
Каждый уровень тестирования имеет

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

Слайд 27

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

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

Слайд 28

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

Альфа тестирование
Бета тестирование
Компонентное тестирование
Драйвер
Тестирование в условиях эксплуатации
Интеграция
Интеграционное тестирование
Тестирование надежности
Заглушка
Системное тестирование
Тестовое окружение
Уровень

Уровни тестирования Альфа тестирование Бета тестирование Компонентное тестирование Драйвер Тестирование в условиях
тестирования

Разработка управляемая тестированием
Пользовательское приемочное тестирование

Слайд 29

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

Уровень тестирования - управляемая и организованная группа тестовых активностей . Уровень

Уровень тестирования Уровень тестирования - управляемая и организованная группа тестовых активностей .
тестирования связан с обязанностями в проекте. Примеры уровней тестирования: компонентное(unit) тестирование, интеграционное тестирование, системное тестирование и приемочное тестирование

Адаптируемся !!!

Слайд 30

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

Цели ?
Базис?
Объекты?
Дефекты?
Формат результата?

Уровни тестирования Цели ? Базис? Объекты? Дефекты? Формат результата?

Слайд 31

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

Компонентное тестирование -> дефекты -> спецификация-> код
Приемочное тестирование -> функционирует и

Уровни тестирования Компонентное тестирование -> дефекты -> спецификация-> код Приемочное тестирование ->
выполняет требования заказчика клиента -> юзер мануал-> система

Слайд 32

Компонент, интеграция, система

Компонент, интеграция, система

Слайд 33

Компонент, интеграция, система

Компонент , модуль, программа- наименьший элемент ПО, который может быть

Компонент, интеграция, система Компонент , модуль, программа- наименьший элемент ПО, который может быть протестирован отдельно
протестирован отдельно

Слайд 34

Компонент, интеграция, система

Компонент, интеграция, система

Слайд 35

Компонент, интеграция, система

Система - совокупность компонентов, объединенная для выполнения определенной функции или

Компонент, интеграция, система Система - совокупность компонентов, объединенная для выполнения определенной функции или набора функций
набора функций

Слайд 36

Компонент, интеграция, система

Интеграция - процесс объединения компонентов или систем в большую структуру

Компонент, интеграция, система Интеграция - процесс объединения компонентов или систем в большую структуру

Слайд 37

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

Компонентное (unit) тестирование - тестирование отдельных компонентов ПО

Уровни тестирования Компонентное (unit) тестирование - тестирование отдельных компонентов ПО

Слайд 38

Компонентное тестирование

Компонентное тестирование

Слайд 39

Драйвер

Драйвер - компонент ПО или тестовый инструмент, который заменяет компонент обеспечивающий управление

Драйвер Драйвер - компонент ПО или тестовый инструмент, который заменяет компонент обеспечивающий
или вызов компонента или системы

Слайд 40

Заглушка

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

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

Слайд 41

Компонентное тестирование

TDD (Test driven development) Разработка управляемая тестирование - способ разработки ПО,

Компонентное тестирование TDD (Test driven development) Разработка управляемая тестирование - способ разработки
где тест кейсы разрабатываются и автоматизируются до того как будет написан сам код, который будет прогонять данные тест кейсы

Слайд 42

Интеграционное тестирование

Интеграционное тестирование - тестирование выполняемое для обнаружение дефектов в интерфейсах и

Интеграционное тестирование Интеграционное тестирование - тестирование выполняемое для обнаружение дефектов в интерфейсах
во взаимодействии между объединенными компонентами или системами

Слайд 43

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

Стратегия “Большого взрыва”

Стратегии интеграционного тестирования Стратегия “Большого взрыва”

Слайд 44

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

Интеграция по нарастающей и убывающей

Стратегии интеграционного тестирования Интеграция по нарастающей и убывающей

Слайд 45

Системное тестирование

Системное тестирование - процесс тестирования системы в целом, с целью проверки

Системное тестирование Системное тестирование - процесс тестирования системы в целом, с целью
того, что она соответствует установленным требованиям

Слайд 46

Системное тестирование

Базис - > функциональные, нефункциональные (глобальные) требования -> тестовое окружение (эксплуатационное,

Системное тестирование Базис - > функциональные, нефункциональные (глобальные) требования -> тестовое окружение
!антивирус, фаервол, версия базы данных и т.д.)

Слайд 47

Приемочное тестирование

Приемочное тестирование – формальное тестирование, по отношению к потребностям , требованиям

Приемочное тестирование Приемочное тестирование – формальное тестирование, по отношению к потребностям ,
и бизнес процессам конечного пользователя, проводимое для определения соответствия ПО, критериям приемки, а также дать возможность заказчикам или иным лицам определить, принимать ПО или нет

Слайд 48

Приемочное тестирование

Критерии приемки: скорость ПО, как оно выглядит, пользователь проверяет пользовательские сценарии
Тестирование

Приемочное тестирование Критерии приемки: скорость ПО, как оно выглядит, пользователь проверяет пользовательские
может проводится заказчиком, конечным пользователем, а иногда, если согласовано, то самой фирмой и ее тестировщиками.

Слайд 49

Приемочное тестирование

Пользовательское
Эксплуатационное
Контрактное и правовое
Альфа
Бета

Приемочное тестирование Пользовательское Эксплуатационное Контрактное и правовое Альфа Бета

Слайд 50

Приемочное тестирование

Альфа тестирование - моделируемое, действительное эксплуатационное тестирование потенциальными пользователями или независимой

Приемочное тестирование Альфа тестирование - моделируемое, действительное эксплуатационное тестирование потенциальными пользователями или
командой тестирования вне разрабатывающей организации. Часто применяется к коробочному ПО

Слайд 51

Приемочное тестирование

Бета тестирование - эксплуатационное тестирование потенциальными пользователями или независимой командой тестирования

Приемочное тестирование Бета тестирование - эксплуатационное тестирование потенциальными пользователями или независимой командой
вне разрабатывающей организации с целью определения действительно ли ПО удовлетворяет требованиям клиента
Тестирование надежности - тестирование устойчивости ПО