Академический Документы
Профессиональный Документы
Культура Документы
ua
Уровни и виды тестирования.
2.1. Уровни тестирования
2.2. Юнит тесты
2.3. Классификация и Виды тестирования
skillup.com.ua
Ad-hoc
Error Guessing
Exploratory testing
Регрессионное тестирование
2.1. Уровни тестирования
Тестирование на разных
уровнях производится на
протяжении всего жизненного
цикла разработки и
skillup.com.ua
сопровождения программного
обеспечения. Уровень
тестирования определяет то,
над чем производятся тесты:
над отдельным модулем,
группой модулей или системой,
в целом. Проведение
тестирования на всех уровнях
системы - это залог успешной
реализации и сдачи проекта.
Модульное (компонентное) тестирование
(Module testing, Component testing)
skillup.com.ua
элементы системы, максимально отделенные от других
элементов и, в то же время, пригодные для тестирования.
Такое тестирование обычно проводится сразу же вслед за
разработкой каждого из элементов и направлено на оценку
соответствия функциональности каждого из компонентов
спроектированной “модели компонентов”.
Интеграционное тестирование (Integration Testing)
skillup.com.ua
элементов.
● Комплексное тестирование направлено не на проверку
взаимодействия компонентов в соответствии с
«Архитектурой системы».
● Тесты данного уровня обычно проверяют все интерфейсы
взаимодействия между компонентами, до тех пор, пока
все компоненты не будут разработаны, отлажены и
проинтегрированы друг с другом в единую систему.
Системное тестирование (System Testing)
skillup.com.ua
нефункциональные требования к разрабатываемой системе.
skillup.com.ua
Формальный процесс тестирования, который проверяет
соответствие системы требованиям и проводится с целью:
● определения удовлетворяет ли система приемочным
критериям;
● вынесения решения заказчиком или другим
уполномоченным лицом принимается приложение или
нет.
2.2. Юнит тесты
skillup.com.ua
исходного кода программы.
skillup.com.ua
Есть требование к продукту, его надо реализовать с
минимальными затратами времени и сил. Для этого
разработчику нужно четко представлять конечный результат
на языке программного кода. Один из вариантов такого
представления – модульные тесты, сердце TDD (Test driven
development - разработка через тестирование) .
Достоинства модульных тестов:
skillup.com.ua
5. Скорость нахождения багов.
skillup.com.ua
2. Модульных тестов недостаточно для качественного
тестирования приложений. Ясно, что модульные тесты не
охватывают работу всей системы в целом.
3. Модульные тесты выполняются “в вакууме”, в стерильных
условиях. В реальной жизни код может валиться, скажем, из-за
проблем с производительностью, причем именно в том месте,
где, казалось бы, модульные тесты и не нужны.
4. Модульные тесты, как и любые другие, покажут наличие ошибок,
но не докажут их отсутствие.
skillup.com.ua
2.3. Классификация и Виды тестирования
skillup.com.ua
1. По запуску кода на исполнение:
skillup.com.ua
могут подвергаться документы, графические прототипы,
код приложения и т.д.
● Динамическое тестирование (Dynamic Testing) —
тестирование с запуском кода на исполнение. Основная
идея состоит в том, что проверяется реальное поведение
(части) приложения.
2. По доступу к коду и архитектуре приложения:
skillup.com.ua
3. По степени автоматизации:
skillup.com.ua
большого количества дополнительных знаний.
● Автоматизированное тестирование (Automated Testing) —
тест-кейсы частично или полностью выполняет специальное
инструментальное средство.
● Полуавтоматизированное (Partially automated). Один из
фундаментальных принципов тестирования гласит: 100%
автоматизация невозможна. Поэтому, ручное тестирование –
необходимость.
4. По уровню детализации приложения (по уровню
тестирования):
skillup.com.ua
небольшие части приложения.
● Интеграционное тестирование (Integration Testing) —
проверяется взаимодействие между несколькими частями
приложения.
● Системное тестирование (System Testing) —
приложение проверяется как единое целое.
5. По принципам работы с приложением:
skillup.com.ua
никаких недопустимых действий, некорректных данных и
т.д.
● Негативное тестирование — в работе с приложением
выполняются (некорректные) операции и используются
данные, потенциально приводящие к ошибкам (классика
жанра — деление на ноль).
6. По степени подготовленности:
● Тестирование по документации
● Интуитивное тестирование (Ad-hoc)
skillup.com.ua
7. По объекту тестирования:
skillup.com.ua
правило, эти функции описываются в требованиях, функциональных
спецификациях или в виде случаев использования системы (use
cases).
Преимущества функционального тестирования:
● имитирует фактическое использование системы;
Недостатки функционального тестирования:
● возможность упущения логических ошибок в программном
обеспечении;
● вероятность избыточного тестирования.
Функциональное тестирование (Functional testing) рассматривает
заранее указанное поведение и основывается на анализе
спецификаций функциональности компонента или системы в целом.
skillup.com.ua
обеспечением целостного подхода к защите приложения, атак
хакеров, вирусов, несанкционированного доступа к
конфиденциальным данным.
skillup.com.ua
Нефункциональное тестирование описывает тесты, необходимые
для определения характеристик программного обеспечения,
которые могут быть измерены различными величинами.
В целом, это тестирование того, "Как" система работает.
● Все виды тестирования производительности:
○ нагрузочное тестирование (Performance and Load
Testing)
○ стрессовое тестирование (Stress Testing)
тестирование стабильности или надежности
skillup.com.ua
(Stability / Reliability Testing)
○ oбъемное тестирование (Volume Testing)
skillup.com.ua
Recovery Testing) — способность противостоять и успешно
восстанавливаться после возможных сбоев, возникших в связи с
ошибками программного обеспечения, отказами оборудования
или проблемами связи (например, отказ сети).
● Конфигурационное тестирование (Configuration Testing) —
проверка работы программного обеспечения при различных
конфигурациях системы (заявленных платформах, при
различных конфигурациях компьютеров и т.д.)
Связанные с изменениями виды тестирования:
skillup.com.ua
прогон программы (после написания или после внесения
существенных изменений). Как правило, используется для
определения, готова ли программа для проведения более
обширного тестирования.
● Санитарное тестирование или проверка
согласованности/исправности (Sanity Testing) — это
узконаправленное тестирование достаточное для
доказательства того, что конкретная функция работает согласно
заявленным в спецификации требованиям
skillup.com.ua
● Регрессионное тестирование (Regression Testing)
skillup.com.ua
используется практически в любом проекте.