Основы тестирования ПО. Виды и методы тестирования

Содержание

Слайд 2

В этом разделе:
Уровни тестирования;
Виды и направления тестирования;
Методы тестирования;
Базовая

В этом разделе: Уровни тестирования; Виды и направления тестирования; Методы тестирования; Базовая терминология. В этом разделе:
терминология.

В этом разделе:

Слайд 3

Уровни тестирования (по степени детализации приложения).

Уровни тестирования (по степени детализации приложения).

Слайд 4

Компонентное тестирование (component testing, unit testing) – тестирование отдельного модуля.
Интеграционное тестирование (integration

Компонентное тестирование (component testing, unit testing) – тестирование отдельного модуля. Интеграционное тестирование
testing) – проверка взаимодействия модулей.
Системное тестирование (system testing) – полная проверка приложения.

Компонентное ? Интеграционное ? Системное

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

Слайд 5

Компонентное тестирование
Компонентное тестирование (Component Testing/Unit testing/ Module testing ): “Тестирование отдельных компонентов

Компонентное тестирование Компонентное тестирование (Component Testing/Unit testing/ Module testing ): “Тестирование отдельных
программного обеспечения”
Компонент (Component): “Наименьший элемент программного обеспечения, который может быть протестирован отдельно”

Слайд 6

Компонентное тестирование
Компоненты для тестирования:
Отдельный метод/функция в коде программы;
Отдельный компонент в

Компонентное тестирование Компоненты для тестирования: Отдельный метод/функция в коде программы; Отдельный компонент
программе (модуль логина, аккаунт пользователя);
Отдельная программа из сложной интеграционной системы.

Слайд 7

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

Интеграционное тестирование (Integration Testing) - тестирование части системы, состоящей из двух

Интеграционное тестирование Интеграционное тестирование (Integration Testing) - тестирование части системы, состоящей из
и более частей.
Основная задача – поиск дефектов, связанных с ошибками в реализации и интерпретации взаимодействия между модулями.
Так же, как и модульное тестирование, оперирует интерфейсами модулей и подсистем и требует создания тестового окружения.

Слайд 8

Немного терминологии

Интерфе́йс (англ. interface) — совокупность возможностей, способов и методов взаимодействия двух информационных

Немного терминологии Интерфе́йс (англ. interface) — совокупность возможностей, способов и методов взаимодействия
систем, устройств или программ.
Интерфейс программирования приложений (API) — набор методов, которые можно использовать для доступа к функциональности другой программы.
Интерфейс командной строки (CLI): инструкции компьютеру даются путём ввода с клавиатуры текстовых строк (команд).
Графический интерфейс пользователя (GUI): программные функции представляются графическими элементами экрана.

Слайд 9

Интеграционное тестирование
Заглушки (stab) и драйверы (driver):
Используются для эмуляции недостающих компонентов:
Внешние

Интеграционное тестирование Заглушки (stab) и драйверы (driver): Используются для эмуляции недостающих компонентов:
компоненты/системы (регистрация из соц. сетей без подключения к ним);
Подсистемы/неготовые модули (регистрация без БД);
Может понадобиться специально написать их для тестируемой системы (SUT).

Слайд 10

Тестирование интеграции компонентов (component integration testing): тестирование, взаимодействия между несколькими интегрированными компонентами

Тестирование интеграции компонентов (component integration testing): тестирование, взаимодействия между несколькими интегрированными компонентами
одного приложения.
Системное интеграционное тестирование (system integration testing): тестирование, взаимодействия между всеми компонентами системы, между различными приложениями объединенными в систему, интерфейсами связи с внешними системами (интернет и т.д.).

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

Слайд 11

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

Системное тестирование (System Testing):
“Процесс тестирования системы в целом с целью проверки

Системное тестирование Системное тестирование (System Testing): “Процесс тестирования системы в целом с
того, что она соответствует установленным требованиям”.
Тестирование полной системы:
Может быть последним шагом в интеграционном тестировании в узком смысле;
Может быть первый раз, когда из компонентов появляется рабочая система.
В идеале – проводится независимой тестовой командой.

Слайд 12

Приемочное тестирование
Приёмочное тестирование (acceptance testing): тестирование по отношению к потребностям и требованиям

Приемочное тестирование Приёмочное тестирование (acceptance testing): тестирование по отношению к потребностям и
пользователя, проводимое с целью дать возможность пользователям, заказчикам определить, принимать систему или нет.
Как правило заключительный этап тестирования, осуществляемый перед передачей продукта заказчику и/или конечным пользователям.

Слайд 13

Типичные формы приемочного тестирования:
Пользовательское приемочное тестирование (UAT);
Эксплуатационное приемочное тестирование (OAT);
Альфа- и бета-

Типичные формы приемочного тестирования: Пользовательское приемочное тестирование (UAT); Эксплуатационное приемочное тестирование (OAT);
тестирование.

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

Слайд 14

Формы приемочного тестирования.

Пользовательское приемочное тестирование (User acceptance testing):
Тестирование конечного продукта проводят пользователи;
Может

Формы приемочного тестирования. Пользовательское приемочное тестирование (User acceptance testing): Тестирование конечного продукта
проходить как на оборудовании производителя или пользователей.
Эксплуатационное приемочное тестирование (Operational acceptance testing):
Тестирование резервного копирования/восстановление;
Аварийное восстановление;
Задачи технической поддержки;
Периодические проверки уязвимостей безопасности.

Слайд 15

Формы приемочного тестирования.

Альфа-тестирование (alpha testing): тестирование потенциальными пользователями/заказчиками или независимой командой тестирования

Формы приемочного тестирования. Альфа-тестирование (alpha testing): тестирование потенциальными пользователями/заказчиками или независимой командой
на стороне разработчиков, но вне разрабатывающей организации.
Бета-тестирование (beta testing): тестирование потенциальными и/или существующими клиентами/заказчиками на внешней стороне никак не связанными с разработчиками.
Это форма внешнего приёмочного тестирования готового программного обеспечения для того чтобы получить отзывы рынка

Слайд 16

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

Резюме
Существует много разных подходов к компонентному тестированию.
Интеграционное тестирование проверяет, как компоненты

Уровни тестирования Резюме Существует много разных подходов к компонентному тестированию. Интеграционное тестирование
и/или системы взаимодействуют друг с другом.
Системное тестирование позволяет проверить систему в целом согласно спецификаций, требований и бизнес процессов.
Участие пользователя в приемочном тестировании является критически важным.

Слайд 17

Есть вопросы? Давайте обсудим!

?

Есть вопросы? Давайте обсудим! ?

Слайд 18

Исторически так сложилось, что как минимум «тип тестирования» (testing type) и «вид

Исторически так сложилось, что как минимум «тип тестирования» (testing type) и «вид
тестирования» (testing kind) давно стали синонимами. С. Куликов.

Слайд 19

Виды/направления тестирования по целям и задачам.

Виды/направления тестирования по целям и задачам.

Слайд 20

Виды тестирования

Функциональное тестирование (functional testing): тестирование, основанное на анализе функциональности компонента или

Виды тестирования Функциональное тестирование (functional testing): тестирование, основанное на анализе функциональности компонента
системы.
Функции – это то, ЧТО ДЕЛАЕТ система;
Функциональное тестирование может проводиться на всех уровнях тестирования.

Слайд 21

Виды тестирования

Нефункциональное тестирование (non-functional testing): Тестирование атрибутов компонента или системы, не относящихся

Виды тестирования Нефункциональное тестирование (non-functional testing): Тестирование атрибутов компонента или системы, не
к функциональности, то есть:
надежность,
внешний вид,
практичность,
устойчивость..
Проверяет, КАК система РАБОТАЕТ.
Может быть представлено на всех уровнях тестирования.

Слайд 22

Инсталляционное тестирование (installation testing) – «установка и удаление»

Виды тестирования

Инсталляционное тестирование (installation testing) – «установка и удаление» Виды тестирования

Слайд 23

Конфигурационное тестирование (configuration testing) – «разное оборудование и настройки»

Виды тестирования

Конфигурационное тестирование (configuration testing) – «разное оборудование и настройки» Виды тестирования

Слайд 24

Тестирование совместимости (compatibility testing) – «разный софт вокруг»

Виды тестирования

Тестирование совместимости (compatibility testing) – «разный софт вокруг» Виды тестирования

Слайд 25

Тестирование графического интерфейса (GUI testing) – «как расположены кнопочки».

Виды тестирования

Тестирование графического интерфейса (GUI testing) – «как расположены кнопочки». Виды тестирования

Слайд 26

Тестирование удобства использования (usability testing) – «не заставляй меня думать»

Суровая правда жизни

Тестирование удобства использования (usability testing) – «не заставляй меня думать» Суровая правда
(C) bash.org.ru
«Поражаюсь старательности подрастающего поколения... Сегодня по дороге на работу заметил появление большого количества скворечников на деревьях. Дабы не долбить деревья гвоздями, скворечники примотаны скотчем. Многие прямо поперек кругленького отверстия...»

Виды тестирования

Слайд 27

Виды тестирования

Тестирование удобства
проводится с целью определения, удобна ли программа для ее

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

Слайд 28

Тестирование интернационализации (internationalization testing, i18n) – «а если перевести на японский?»

Виды тестирования

Тестирование интернационализации (internationalization testing, i18n) – «а если перевести на японский?» Виды тестирования

Слайд 29

Тестирование локализации (localization testing, l10n) – «как перевели?»

Виды тестирования

Тестирование локализации (localization testing, l10n) – «как перевели?» Виды тестирования

Слайд 30

Тестирование безопасности (security, penetration testing) – «а если ломать?»

Виды тестирования

Тестирование безопасности (security, penetration testing) – «а если ломать?» Виды тестирования

Слайд 31

Виды тестирования

Тестирование безопасности (security testing): Тестирование с целью оценить защищенность программного продукта.
Насколько

Виды тестирования Тестирование безопасности (security testing): Тестирование с целью оценить защищенность программного
просто неавторизованному пользователю получить доступ к системе?
Насколько просто постороннему лицу получить доступ к данным?

Слайд 32

Тестирование доступности (accessibility testing) – «а если я плохо вижу».

Виды тестирования

Тестирование доступности (accessibility testing) – «а если я плохо вижу». Виды тестирования

Слайд 33

Виды тестирования

Тестирование производительности (performance test): тест, проводимый с целью оценить поведение системы под

Виды тестирования Тестирование производительности (performance test): тест, проводимый с целью оценить поведение системы под нагрузкой.
нагрузкой.

Слайд 34

Направления тестирования производительности

Нагрузочное тестирование (load test): «а если много пользователей?».

Направления тестирования производительности Нагрузочное тестирование (load test): «а если много пользователей?».

Слайд 35

Направления тестирования производительности

Стресс тестирование (stress test): «а если гораздо больше, чем может

Направления тестирования производительности Стресс тестирование (stress test): «а если гораздо больше, чем может выдержать?»
выдержать?»

Слайд 36

По «тестированию изменений».

По «тестированию изменений».

Слайд 37

Тестирование нового функционала (new feature testing) – «всё обещанное на месте и

Тестирование нового функционала (new feature testing) – «всё обещанное на месте и
работает»

«Крайне важно успеть скомпилировать библиотеку до того момента, как придёт новая отличная идея.»
(C) bash.org.ru

Виды тестирования

Слайд 38

Повторное тестирование (confirmation testing, re-testing, bug-fix verification) – «что было исправлено, то

Повторное тестирование (confirmation testing, re-testing, bug-fix verification) – «что было исправлено, то стало работать» Виды тестирования
стало работать»

Виды тестирования

Слайд 39

Регрессионное тестирование (regression testing) –
«нет ухудшений», т.е. «что работало, то продолжает работать»

Виды

Регрессионное тестирование (regression testing) – «нет ухудшений», т.е. «что работало, то продолжает работать» Виды тестирования
тестирования

Слайд 40

Регрессионное тестирование
Регрессионное тестирование:
Объем регрессионного тестирования основан на риске обнаружения дефектов в ранее

Регрессионное тестирование Регрессионное тестирование: Объем регрессионного тестирования основан на риске обнаружения дефектов
работавшем ПО;
Может проводиться на всех уровнях тестирования;
Применимо к функциональному и нефункциональному тестированию;
Регрессионные тесты должны запускаться и при изменениях в ПО, и при изменениях в окружении;
Регрессионное тестирование – очень важная техника тестирования!

Слайд 41

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

Резюме:
Исправлена ошибка – программа ДОЛЖНА быть протестировано повторно.
Исправления старых – могут

Регрессионное тестирование Резюме: Исправлена ошибка – программа ДОЛЖНА быть протестировано повторно. Исправления
появляться новые.
Обещали справить – не факт, что исправили.
Тесты должны разрабатываться с целью их повторного использования.
Повторное тестирование – это перезапуск «провалившихся» тестов после исправления ошибок, чтобы убедиться, что исправленное работает.
Регрессионное тестирование - это запуск более широкого набора тестов, чтобы проверить, не появились ли неожиданные ошибки в коде, который не меняли.

Слайд 42

Типы тестирования в зависимости от фазы разработки.

Типы тестирования в зависимости от фазы разработки.

Слайд 43

В зависимости от фазы разработки

Тестирование разработки (development testing): тестирование, проводимое во время

В зависимости от фазы разработки Тестирование разработки (development testing): тестирование, проводимое во
разработки системы, обычно в рабочей среде разработчиков. Основная цель – вызвать максимально возможное количество отказов, чтобы они были обнаружены и исправлены;
Приёмочное тестирование (acceptance testing): тестирование по отношению к потребностям пользователя или заказчика. Основная цель – подтвердить, что система работает, как ожидается, чтобы решить принимать или нет;

Слайд 44

В зависимости от фазы разработки

Тестирование в период сопровождения (maintenance testing): тестирование изменений

В зависимости от фазы разработки Тестирование в период сопровождения (maintenance testing): тестирование
в действующей системе или влияния изменений в окружении на действующую систему. Основная цель – проверить, что при разработке изменений не было произведено новых дефектов;

Слайд 45

Тестирование в период сопровождения

Главные мотивы:
Изменение программных продуктов;
Включает запланированные улучшения, поправки и аварийные

Тестирование в период сопровождения Главные мотивы: Изменение программных продуктов; Включает запланированные улучшения,
изменения, изменения окружения (обновление БД, патчи для уязвимостей ОС).
Миграция программных продуктов (из одной программы в другую);
Следует включить эксплуатационное тестирование в новых условиях.
Вывод из эксплуатации ПО или систем;
Может включать тестирование миграции данных или архивирования (если требуется длительное хранение данных).

Слайд 46

Тестирование в период сопровождения
Особенности:
Изменения в приложении - как правило незначительные;
Система должна

Тестирование в период сопровождения Особенности: Изменения в приложении - как правило незначительные;
быть протестирована быстро и эффективно, так как:
Ранняя остановка тестирования – ошибки могут быть пропущены;
Затянутое тестирование – упущенные возможности бизнеса;
Эти системы могут быть установлены и работать годами:
Жизненно важные для бизнеса;
Могут быть в использовании 24/7.

Слайд 47

Тестирование в период сопровождения
Что делать:
Регрессионное тестирование для частей системы, которые подверглись изменениям;
Объем

Тестирование в период сопровождения Что делать: Регрессионное тестирование для частей системы, которые
тестов связан с риском изменения, размером существующей системы и размером изменения.

Слайд 48

Тестирование в период сопровождения
Основные сложности для тестировщика:
Отсутствие документации/требований к приложению;
Старая/не актуальная документация.
Выход:
уже

Тестирование в период сопровождения Основные сложности для тестировщика: Отсутствие документации/требований к приложению;
имеющаяся система (для эталонного тестирования),
руководство пользователя,
профессиональные знания специалиста.

Слайд 49

Есть вопросы? Давайте обсудим!

?

Есть вопросы? Давайте обсудим! ?

Слайд 50

По степени важности тестируемых функций и приоритету выполнения тестов.

По степени важности тестируемых функций и приоритету выполнения тестов.

Слайд 51

По степени важности и приоритету выполнения

Смоук тест (smoke test) – «только самое

По степени важности и приоритету выполнения Смоук тест (smoke test) – «только
важное».
Тест критического пути (critical path test) – «повседневное».
Расширенный тест (extended test) – «всё остальное».

Слайд 52

Внимание! Возможна путаница!

Единой классификации не существует, и две катигории имеют в обиходе

Внимание! Возможна путаница! Единой классификации не существует, и две катигории имеют в
профессионалов похожие названия:
Уровни тестирования (по степени детализации приложения) = компонентное, интеграционное, системное.
Уровни функционального тестирования (по важности функций) = smoke, critical path, extended.

Слайд 53

По принципу работы с приложением.

По принципу работы с приложением.

Слайд 54

По принципу работы с приложением

Позитивные тесты (positive test) – все «строго по

По принципу работы с приложением Позитивные тесты (positive test) – все «строго
инструкции».
Негативные тесты (negative test) – делаем так, как нельзя.

Слайд 55

По запуску кода на исполнение.

По запуску кода на исполнение.

Слайд 56

Статическое тестирование
(static testing) – без запуска программы

Статическое тестирование (static testing) – без запуска программы

Слайд 57

Динамическое тестирование (dynamic testing) – с запуском программы

Динамическое тестирование (dynamic testing) – с запуском программы

Слайд 58

По «доступу к коду».

По «доступу к коду».

Слайд 59

Метод белого ящика

(white-box testing, glass-box testing)
«тестировщик опирается на код».

Метод белого ящика (white-box testing, glass-box testing) «тестировщик опирается на код».

Слайд 60

Метод чёрного ящика

Тестирование методом черного ящика (black-box testing, specification based, behavioral based):

Метод чёрного ящика Тестирование методом черного ящика (black-box testing, specification based, behavioral
без знания внутренней структуры компонента или системы.
тестировщик опирается на требования и интерфейс приложения
«работаем так, как работает конечный пользователь»

Слайд 61

Метод серого ящика (gray box testing)

совокупность подходов из методов белого и чёрного

Метод серого ящика (gray box testing) совокупность подходов из методов белого и чёрного ящика
ящика

Слайд 62

Какие плюсы и минусы есть у каждого из этих методов тестирования?

Какие плюсы и минусы есть у каждого из этих методов тестирования?

Слайд 63

По «уровню формализации».

По «уровню формализации».

Слайд 64

По «уровню формализации»

На основе тест-кейсов (scripted testing, test case based testing) –

По «уровню формализации» На основе тест-кейсов (scripted testing, test case based testing)
тестирование производится на основе заранее подготовленных тест-кейсов.
На основе чек-листов (checklist-based testing) – тестирование производится на основе чек-листов.
Исследовательское тестирование (exploratory testing) – по тест-кейсу/сценарию, который дорабатывается в процессе выполнения самих тестов.
Свободное (интуитивное) тестирование (ad hoc testing) – ни тест-кейсов, ни чек-листов, ни сценариев, полностью опираемся на свой профессионализм и интуицию.

Слайд 65

Есть вопросы? Давайте обсудим!

?

Есть вопросы? Давайте обсудим! ?

Слайд 66

Смоук тест (smoke test) – «только самое важное».
Тест критического пути (critical path

Смоук тест (smoke test) – «только самое важное». Тест критического пути (critical
test) – «повседневное».
Расширенный тест (extended test) – «всё остальное».

Итак, мы разрабатываем ПО для мобильного телефона. Приведите по 3-5 примеров тестов для смоук и экстендед тестов.

Задание.

Слайд 67

Задание.

Смоук тест (smoke test) – «только самое важное».
Тест критического пути (critical path

Задание. Смоук тест (smoke test) – «только самое важное». Тест критического пути
test) – «повседневное».
Расширенный тест (extended test) – «всё остальное».

Слайд 68

And now, requirements for new feature on your web site. And again,

And now, requirements for new feature on your web site. And again,
smoke and extended level tests.

Задание.

User Story #1
Summary: As an end user, I want to send files via chat.
Description:
There is possibility to send *.jpg and *.doc format;
User can click on “Browse” button and select file in file system;
User can drag-and-drop file into chat field;
In case of slow internet connection (< 1 Mbps), sending is canceled, user is notified with “File can not be sent due to slow Internet. Please, try later”.

Слайд 69

Есть вопросы? Давайте обсудим!

?

Есть вопросы? Давайте обсудим! ?
Имя файла: Основы-тестирования-ПО.-Виды-и-методы-тестирования.pptx
Количество просмотров: 127
Количество скачиваний: 5