Слайд 2Классификация тестирования по уровням
Существует несколько уровней тестирования, позволяющих полностью проверить программный продукт
![Классификация тестирования по уровням Существует несколько уровней тестирования, позволяющих полностью проверить программный](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-1.jpg)
и выявить максимальное количество ошибок: модульное, интеграционное, системное, выходное, приемочное. Каждый уровень имеет свои цели и компоненты.
Слайд 4Модульное тестирование
Модульное тестирование — это тестирование программы на уровне отдельно взятых модулей,
![Модульное тестирование Модульное тестирование — это тестирование программы на уровне отдельно взятых](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-3.jpg)
функций или классов.
Цель модульного тестирования состоит в выявлении ошибок в реализации алгоритмов, а также в определении степени готовности системы к переходу на следующий уровень разработки и тестирования.
Модульное тестирование проводится по принципу «белого ящика», т.е. основывается на знании внутренней структуры программы, и часто включает те или иные методы анализа покрытия кода.
Модульное тестирование проводится непосредственно разработчиком программного обеспечения и позволяет проверять все внутренние структуры и потоки данных в каждом модуле. Этот вид тестирования является частью этапа разработки.
Слайд 5Модульное тестирование
На уровне модульного тестирования проще всего обнаружить дефекты, связанные с алгоритмическими
![Модульное тестирование На уровне модульного тестирования проще всего обнаружить дефекты, связанные с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-4.jpg)
ошибками и ошибками кодирования алгоритмов, с использованием локальных переменных и ресурсов. Ошибки, связанные с неверной трактовкой данных, некорректной реализацией интерфейсов, совместимостью, производительностью и т.п., обычно пропускаются на уровне модульного тестирования и выявляются на более поздних стадиях тестирования.
Слайд 6Модульное тестирование
Модульное тестирование включает в себя:
• проверку программного кода с использованием некоторого
![Модульное тестирование Модульное тестирование включает в себя: • проверку программного кода с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-5.jpg)
инструментального средства для выявления синтаксических ошибок в программном коде (синтаксическую проверку);
• проверку кода на соответствие стандартам кодирования (например, соответствия оформления программного кода требованиям организации-разработчика);
• технический обзор программного кода.
Слайд 7Модульное тестирование
При выполнении модульного тестирования можно использовать технологию либо структурного, либо функционального
![Модульное тестирование При выполнении модульного тестирования можно использовать технологию либо структурного, либо](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-6.jpg)
тестирования или и ту, и другую. Структурное тестирование является одним из видов тестирования «белого ящика». Его главная идея — правильный выбор тестируемого программного пути. В противоположность ему функциональное тестирование относится к категории тестирования «черного ящика». Каждая функция программы тестируется путем ввода ее входных данных и анализа выходных. При этом внутренняя структура программы учитывается очень редко.
После успешного завершения модульного тестирования все измененные модули и наборы тестов сохраняются в базе данных проекта.
Слайд 8Интеграционное тестирование
Интеграционное тестирование проводится для проверки совместной работы отдельных модулей и предшествует тестированию
![Интеграционное тестирование Интеграционное тестирование проводится для проверки совместной работы отдельных модулей и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-7.jpg)
всей системы как единого целого. Интеграционное тестирование — это тестирование части системы, состоящей из двух и более модулей. Основная задача интеграционного тестирования — поиск ошибок в реализации и интерпретации интерфейсного взаимодействия между модулями.
Слайд 9Интеграционное тестирование
Элементами интеграционного тестирования являются:
• проверка функциональности, т.е. проверка соответствия отдельных функций,
![Интеграционное тестирование Элементами интеграционного тестирования являются: • проверка функциональности, т.е. проверка соответствия](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-8.jpg)
выполняемых связанными модулями, функциям, заданным в спецификациях требований;
• проверка наличия и корректности промежуточных результатов;
• проверка корректности передачи информации между модулями (проверка интеграции).
Слайд 10Интеграционное тестирование
С технологической точки зрения интеграционное тестирование представляет собой количественне развитие модульного,
![Интеграционное тестирование С технологической точки зрения интеграционное тестирование представляет собой количественне развитие](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-9.jpg)
поскольку также, как и модульное тестирование, оперирует интерфейсами модулей и подсистем и требует создания тестового окружения, включая заглушки на месте отсутствующих модулей. Основная разница между модульным и интеграционным тестированием состоит в целях, т.е. в типах обнаруживаемых дефектов. Это определяет стратегию выбора входных данных и методов анализа.
Слайд 11Интеграционное тестирование
Интеграционное тестирование ведется итерационно, с постепенным подключением модулей и подсистем. Оно
![Интеграционное тестирование Интеграционное тестирование ведется итерационно, с постепенным подключением модулей и подсистем.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-10.jpg)
осуществляется независимым тестировщиком.
Ошибки, выявленные в ходе интеграционного тестирования, заносятся в базу данных проекта. Результаты интеграционного тестирования включаются в отчет о ходе тестирования при завершении цикла тестирования.
Слайд 12Системное тестирование
Системное тестирование проводится независимым тестировщиком при условии успешного завершения интеграционного тестирования. Системное
![Системное тестирование Системное тестирование проводится независимым тестировщиком при условии успешного завершения интеграционного](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-11.jpg)
тестирование качественно отличается от интеграционного и модульного уровней, рассматривает тестируемую систему в целом и оперирует на уровне пользовательских интерфейсов, в отличие от последних фаз интеграционного тестирования, которое оперирует на уровне интерфейсов модулей.
Слайд 13Системное тестирование
Основная задача системного тестирования — выявление проблем, связанных с работой системы
![Системное тестирование Основная задача системного тестирования — выявление проблем, связанных с работой](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-12.jpg)
в целом (например, неверное использование ресурсов системы, несовместимость с окружением, непредусмотренные сценарии использования, отсутствующая или неверная функциональность, неудобство в применении и т.п.).
Системное тестирование производится над проектом в целом с помощью метода «черного ящика», т.е. структура программы не имеет никакого значения, для проверки доступны только входы и выходы, видимые пользователю. Тестированию подлежат коды и пользовательская документация.
Слайд 14Системное тестирование
Категории тестов системного тестирования:
• полнота решения функциональных задач;
• корректность использования ресурсов
![Системное тестирование Категории тестов системного тестирования: • полнота решения функциональных задач; •](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-13.jpg)
(утечка памяти, возврат ресурсов);
• оценка производительности;
• эффективность защиты от искажения данных и некорректных действий;
• проверка инсталляции и конфигурации на разных платформах;
• корректность документации.
Слайд 15Системное тестирование
Объемы данных, используемых на этом уровне тестирования, таковы, что более эффективным
![Системное тестирование Объемы данных, используемых на этом уровне тестирования, таковы, что более](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-14.jpg)
подходом является полная или частичная автоматизация тестирования, что приводит к необходимости создания гораздо более сложной тестовой системы, чем система тестирования, применяемая на уровне тестирования модулей или их комбинаций.
Ошибки, выявленные при системном тестировании, заносятся в базу данных проекта. Результаты системного тестирования включаются в отчет о ходе тестирования.
Слайд 16Выходное тестирование
Выходное тестирование осуществляется с целью проверки готовности программного обеспечения для поставки заказчику/пользователям.
![Выходное тестирование Выходное тестирование осуществляется с целью проверки готовности программного обеспечения для](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-15.jpg)
Это завершающий этап тестирования, проводимый независимым тестировщиком, включающий в себя проверку на корректность инструкций по инсталляции, а также проверку комплектности документации. Ошибки, выявленные при выходном тестировании, заносятся в базу данных проекта. При успешном завершении выходного тестирования программного обеспечения заказчику поставляется программный продукт вместе с отчетом о результатах тестирования.
Слайд 17Приемочное тестирование
Приемочное тестирование проводится организацией, отвечающей за инсталляцию, сопровождение программной системы и обучение
![Приемочное тестирование Приемочное тестирование проводится организацией, отвечающей за инсталляцию, сопровождение программной системы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-16.jpg)
конечного пользователя. Это последний уровень тестирования, после которого продукт вводится в эксплуатацию.
Тестирование первых четырех уровней проводится внутри организации-разработчика, а приемочное тестирование выполняется совместно с представителем заказчика. Тестирование первого уровня проводит разработчик программного обеспечения на этапе разработки, а тестирование остальных уровней осуществляют независимые тестировщики.
Слайд 18Альфа-тестирование и бета-тестирование
Существуют еще две разновидности тестирования, отличающиеся друг от друга временем
![Альфа-тестирование и бета-тестирование Существуют еще две разновидности тестирования, отличающиеся друг от друга](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-17.jpg)
исполнения, — альфа-тестирование и бета-тестирование.
Альфа-тестирование — это реальная работа с программным обеспечением, проводимая потенциальными пользователями или заказчиками, либо имитация реальной работы разработчиками. Чаще всего альфа-тестирование проводится на ранней стадии разработки продукта, но уже когда реализована вся или почти вся функциональность системы. В некоторых случаях альфа-тестирование может применяться для законченного продукта в качестве внутреннего приемочного тестирования. Альфа-тестирование может выполняться с использованием отладчика или какого-либо инструментария, который помогает быстро выявлять ошибки. Обнаруженные ошибки могут быть переданы тестировщикам для дополнительного исследования.
Слайд 19Альфа-тестирование и бета-тестирование
Бета-тестирование — это уже интенсивное использование почти готовой версии программного обеспечения
![Альфа-тестирование и бета-тестирование Бета-тестирование — это уже интенсивное использование почти готовой версии](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-18.jpg)
с полным набором запланированных функций. Целью его является выявление максимального числа ошибок в работе программного обеспечения для их последующего устранения перед окончательным выходом продукта на рынок, к массовому потребителю. В отличие от альфа-тестирования, проводимого силами разработчиков или тестировщиков, бета-тестирование предполагает привлечение сторонних пользователей, которым доступна упомянутая предварительная версия продукта (бета-версия).
Слайд 20Альфа-тестирование и бета-тестирование
Кроме того, бета-тестирование может использоваться в рекламных целях как часть
![Альфа-тестирование и бета-тестирование Кроме того, бета-тестирование может использоваться в рекламных целях как](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1172546/slide-19.jpg)
стратегии продвижения продукта на рынок (например, бесплатная раздача бета-версий позволяет привлечь широкое внимание пользователей к окончательной дорогой версии продукта), а также для получения предварительных отзывов о нем от широкого круга будущих пользователей.
Бета-версия не является финальной версией продукта, поэтому разработчик не гарантирует полное отсутствие ошибок, которые могут нарушить работу компьютера и/или привести к потере данных.