Similar presentations:
1_7. Методы тестирования
1.
МДК 01.02. Поддержка и тестированиепрограммных модулей
Лекция 7-8, 9-10. Тема:
«Методы и виды тестирования.
Классификация видов тестирования
по уровням»
Преподаватель: Кусков Федор Витальевич
2.
Тестирование - это процесс анализа программного обеспечения напредмет наличия ошибок. Это может включать как ручное
тестирование, так и автоматизированные тесты.
Отладка - это процесс выявления и устранения ошибок в
программной системе. Это может включать анализ кода, чтобы найти
источник ошибки, а также внесение корректировок в код для
устранения проблемы.
Тестирование и отладка - два важных компонента жизненного
цикла
разработки
ПО.
Тестирование
помогает
выявить
потенциальные дефекты ПО. Отладка помогает выявлять и
устранять ошибки в системе. Важно понимать различные типы
тестирования и отладки, чтобы успешно создавать качественное ПО.
3.
Типы отладки программы.4.
Типы отладки:Статическая отладка - это тип отладки, который
включает в себя анализ кода без фактического запуска
программного обеспечения. Этот тип отладки помогает
выявить потенциальные ошибки в коде, такие как
синтаксические и логические.
Динамическая отладка - это тип отладки, который
включает в себя запуск кода и мониторинг поведения
программного обеспечения во время его выполнения. Этот
тип отладки помогает выявлять и устранять ошибки при
фактическом выполнении кода.
5.
Типы отладки:Интеграционная отладка - это тип отладки, который
включает в себя тестирование программного обеспечения в
целом. Этот тип отладки помогает выявить потенциальные
ошибки, которые могут возникнуть из-за взаимодействия
различных частей системы.
Отладка памяти - это тип отладки, который включает в
себя тестирование программного обеспечения на наличие
любых утечек памяти или ошибок, связанных с
использованием памяти. Этот тип отладки помогает
выявить любые проблемы, которые могут возникнуть из-за
неправильного использования системной памяти.
6.
Преимущества отладки:Повышение качества системы
Сокращение времени простоя системы
Повышение удовлетворенности пользователей
Снижение затрат на разработку
Повышенная безопасность
Облегчает внесение изменений
Лучшее понимание системы
Упрощает тестирование
7.
Недостатки отладки:Трудоемкий процесс.
Требует специальных навыков.
Может быть трудно воспроизвести.
Иногда бывает сложно диагностировать.
Исправить может быть сложно.
Ограниченная информация.
Может быть дорогостоящим процессом.
8.
Виды тестирования.9.
Наиболее полная классификация видовhttps://testengineer.ru/vidy-tipy-testirovaniya/
10. Тестирование разделяют по уровню:
Модульное/компонентное тестирование (unit/component testing) – этотестирование наименьших элементов программного обеспечения, которые
могут быть протестированы по отдельности (модули, объекты, классы,
функции).
Задача модульного тестирования – выявление локализованных в модуле
ошибок реализации алгоритмов, а также определение степени готовности
системы к переходу на следующий уровень разработки и тестирования.
Модульное тестирование чаще всего проводится по принципу "белого ящика“.
Интеграционное тестирование – одна из фаз тестирования программного
обеспечения, при которой отдельные программные модули объединяются и
тестируются в группе. Обычно интеграционное тестирование проводится после
модульного тестирования и предшествует системному тестированию.
Основная задача – поиск дефектов, связанных с ошибками в реализации и
интерпретации взаимодействия между модулями.
11. Тестирование разделяют по уровню:
Системное тестирование (system testing) – это тестирование программногообеспечения (ПО), выполняемое на полной, интегрированной системе с целью
проверки соответствия системы исходным требованиям. Системное тестирование
относится к методам тестирования чёрного ящика, поэтому не требует знаний о
внутреннем устройстве системы.
Основная задача системного тестирования – выявление дефектов, связанных с
работой системы в целом.
12. Тестирование разделяют по цели:
Функциональное (Functional testing) – направлено на проверкусоответствий функциональных требований ПО к его реальным
характеристикам.
Нефункциональное – тестирование свойств, которые не
относятся к функциональности системы.
13.
Классификация видовфункционального тестирования (ФТ).
14.
Классификация видов ФТ:1. По характеру сценариев:
• Позитивное тестирование — проверяет, как должна работать программа
в нормальных условиях. Например, если это веб-приложение,
тестирование позитивных сценариев проверит, что пользователь может
успешно зарегистрироваться, войти в систему и без проблем
использовать основные функции.
• Негативное тестирование — проверяет, как программа ведет себя в
необычных или некорректных ситуациях. Такие сценарии показывают,
что программа корректно обрабатывает ошибки и не позволяет
пользователю выполнить действия, которые не предполагаются в
нормальной работе приложения. В веб-приложении может включать
проверку того, что система правильно обрабатывает неправильный ввод
данных или отказывается выполнять определенные действия в
некорректных условиях.
15.
Классификация видов ФТ:2. По запуску кода на исполнение:
• Статическое тестирование — без запуска программы.
• Динамическое тестирование — с запуском программы.
3. По степени автоматизации:
• Ручное тестирование — проверку (тест-кейсы)
выполняет человек.
• Автоматизированное тестирование — тест-кейсы
частично или полностью выполняет специальное
инструментальное средство. Тестировщик создает
скрипты, эмулирующие действия пользователя.
16.
Классификация видов ФТ:4. По доступу к коду и архитектуре приложения (степени знания
системы):
• Метод «белого ящика» — доступ к коду есть.
• Метод «чёрного ящика» — доступа к коду нет.
• Метод «серого ящика» — к части кода доступ есть, к части —
нет. (подробнее далее)
5. По уровню детализации приложения (по уровню тестирования):
• Модульное (компонентное) тестирование — проверяются отдельные
небольшие компоненты (модули) приложения.
• Интеграционное тестирование — проверяется взаимодействие
между несколькими компонентами (модулями) приложения.
• Системное тестирование — приложение проверяется как единое
целое.
17.
Тестирование «черного ящика».Тестирование «черного ящика» (англ. black-box
testing) — это метод тестирования
функционального поведения объекта
(программной системы) с точки зрения
внешнего мира. Программа рассматривается как
объект, внутренняя структура которого
неизвестна.
Тестировщик вводит данные и анализирует результат, но
он не знает, как именно работает программа. Подбирая
тесты, специалист ищет интересные с его точки зрения
входные данные и условия, которые могут привести к
нестандартным результатам.
18.
Тестирование «черного ящика».Основная задача тестировщика для данного метода
тестирования состоит в последовательной проверке
соответствия поведения системы требованиям.
Кроме того, тестировщик должен проверить работу
системы в критических ситуациях — в случае подачи
неверных входных значений.
В идеальной ситуации все варианты критических
ситуаций должны быть описаны в требованиях на
систему, и тестировщику остается только придумывать
конкретные проверки этих требований.
19.
Тестирование «черного ящика».В результате тестирования обычно
выявляются следующие проблемы
системы:
• поведение системы не
соответствует требованиям;
• в ситуациях, не предусмотренных
требованиями, система ведет себя
неадекватно (при этом под
неадекватным поведением может
пониматься как полный крах системы,
так и вообще любое поведение, не
описанное в требованиях).
20.
Техники тестирования «черного ящика»• эквивалентное разбиение;
• анализ граничных значений;
• анализ причинно-следственных связей;
• предположение об ошибке.
21.
Преимущества метода:• Тестировщик не обязан обладать глубокими знаниями в
области программирования.
• Поведение приложения исследуется в контексте
реальной среды выполнения и реальных пользовательских
сценариев.
• Тест-кейсы можно создавать уже на стадии появления
стабильных требований.
• Процесс создания тест-кейсов позволяет выявить
дефекты в требованиях.
• Допускается создание тест-кейсов, которые можно
многократно использовать на разных проектах.
22.
Недостатки метода:• Возможно повторение части тест-кейсов, уже выполненных
разработчиками.
• Высока вероятность того, что часть возможных вариантов
поведения приложения останется непротестированной.
• Для разработки высокоэффективных тест-кейсов необходима
качественная документация.
• Диагностика обнаруженных дефектов более сложна в
сравнении с техниками метода белого ящика.
• В связи с широким выбором техник и подходов
затрудняется планирование и оценка трудозатрат.
• В случае автоматизации могут потребоваться сложные
дорогостоящие инструментальные средства.
23.
Тестирование «белого ящика».Тестирование «белого ящика» (англ. white-box testing),
также тестирование стеклянного ящика (англ. glassbox testing) — тестирование, которое учитывает
внутренние механизмы системы или компонента
(ISO/IEC/IEEE 24765), метод тестирования ПО,
который предполагает, что внутренняя
структура/устройство/реализация системы
известна тестировщику.
Мы выбираем входные значения, основываясь на знании
кода, который будет их обрабатывать.
Точно так же мы знаем, каким должен быть результат этой
обработки.
Знание
всех
особенностей
тестируемой
программы и ее реализации обязательны для этой техники.
24.
Преимущества метода:• Показывает скрытые проблемы и упрощает их
диагностику.
• Допускает достаточно простую автоматизацию тест
кейсов и их выполнение на самых ранних стадиях
развития проекта.
• Обладает развитой системой метрик, сбор и анализ
которых легко автоматизируется.
• Стимулирует разработчиков к написанию качественного
кода.
• Многие техники этого метода являются проверенными,
хорошо себя зарекомендовавшими решениями,
базирующимися на строгом техническом подходе.
25.
Недостатки метода:• Не может выполняться тестировщиками, не обладающими
достаточными знаниями в области программирования.
• Тестирование сфокусировано на реализованной
функциональности, что повышает вероятность пропуска
нереализованных требований.
• Поведение приложения исследуется в отрыве от
реальной среды выполнения и реальных пользовательских
сценариев
26.
Тестирование «серого ящика».Тестирование методом серого ящика - метод
тестирования, который предполагает комбинацию
White Box и Black Box подходов. Т.е. внутреннее
устройство программы нам известно лишь
частично. Предполагается, например, доступ ко
внутренней структуре и алгоритмам работы ПО для
написания максимально эффективных тест кейсов,
но само тестирование проводится с помощью
техники черного ящика, то есть с позиции
пользователя.
Эту технику тестирования также называют методом
полупрозрачного ящика: что-то мы видим, а чтото нет.
27.
Преимущества метода:Тестирование серого ящика включает в себя плюсы
тестирования «черного» и «белого». Другими словами,
тестировщик смотрит на объект тестирования с позиции «черного»
ящика, но при этом проводит анализ на основе тех данных, что
он знает о системе.
Тестировщик может проектировать и использовать более
сложные сценарии тестирования.
Тестировщик работает совместно с разработчиком, что
позволяет на начальном этапе убрать избыточные тест-кейсы. Это
сокращает время функционального и нефункционального
тестирования и положительно влияет на общее качество продукта.
Предоставляет разработчику достаточно времени для
исправления дефектов.
28.
Недостатки метода:Возможность анализа кода и тестового покрытия
ограничена, так как доступ к исходному коду
отсутствует.
Тесты могут быть избыточными в том случае, когда
разработчик также проверяет свой код Unit-тестами.
Нельзя протестировать все возможные потоки ввода
и вывода, поскольку на это требуется слишком много
времени
29.
Классификация тестирования:6. По времени проведения тестирования:
Альфа-тестирование — происходит перед официальным выпуском
программы и предполагает проверку внутри компанииразработчика или ограниченной группой тестировщиков.
Дымовое тестирование — это быстрая проверка ПО, которую
выполняют после внесения значительных изменений или
обновлений в код. Иными словами, происходит «пробный пуск»
программы, чтобы убедиться, что основные функции работают
без критических ошибок.
Регрессионное тестирование – проводится, если программа
(модули/функции) корректируется в процессе создания и
нужна проверка, что правки не повлияли на
работоспособность.
30.
Регрессионное тестирование (Regression testing)Определение: Повторное тестирование после внесения
изменений в программное обеспечение или в его окружение (в
новой версии приложения), чтобы убедиться в том, что функции,
которые работали в предыдущей версии системы, по-прежнему
работают так, как ожидалось, а найденные дефекты успешно
исправлены (все протестированное ранее тестируется повторно)
Цель: Выявление потенциальных проблем, которые могли
возникнуть в результате изменений. Проверка исправления
найденных ранее дефектов.
31.
Дымовое тестирование (проверка на дым, Smoke testing)Определение: Первый прогон программы (после написания или
после внесения существенных изменений). Как правило,
используется для определения, готова ли программа для
проведения более обширного тестирования.
Цель: Выявление проблем «лежащих на поверхности» – тестируется
чаще всего основная бизнес-логика программы
Короткий тест, проверяющий основную
функциональность программного продукта (ПП)
и его работоспособность, ограниченный по
времени, по результатам которого ведущий
инженер по тестированию принимает решение
о приемке версии ПП на тестирование.
32.
Классификация тестирования:6. По времени проведения тестирования:
Приемочное тестирование - выполняют представители
заказчика, чтобы удостовериться, что продукт вышел
качественным, и что за него можно заплатить деньги. Чтобы
успешно пройти приемочное тестирование, обычно нужно
просто выполнить тесты, которые доказывают соответствие
программы требованиям.
Бета-тестирование (финальное) – проводится ограниченной
группой реальных пользователей, которые могут с системой
сами повзаимодействовать. Пользователи выявляют
дополнительные проблемы, разработчики получают обратную
связь от пользователей и улучшают программу перед ее
окончательным выпуском для широкой аудитории.
33.
Приемочное тестирование схоже с системным тестированием, но со следующимразличием:
Системное тестирование проверяет, что разработанная система соответствует
специфицированным требованиям;
Приемочное тестирование проверяет, что разработанная система
удовлетворяет запрошенным Заказчиком требованиям с упором на нужды конечных
пользователей в данной предметной области.
34.
Домашнее задание:Подготовить устный доклад с презентацией об одном
из видов тестирования (любой на выбор).
Обязательно наличие примеров и ответ на вопрос:
В чем особенность данного вида тестирования в
сравнении с остальными?
Объем презентации - от 5 до 10 слайдов.
programming