Анализ и проектирование информационных систем Лекция 10 – Тестирование Филипп Владимирович Станкевич Лекция 11 – План • Что такое тестирование • Зачем нужно тестировать? • Функциональное тестирование • Дымовое тестирование • Приемочное тестирование • UI-тестирование • Тестовые сценарии • Ручное и автоматическое тестирование • Unit-тестирование • Интеграционное тестирование 2 Что такое тестирование? Тестирование программного обеспечения — процесс исследования, испытания программного продукта, имеющий две различные цели: • продемонстрировать разработчикам и заказчикам, что программа соответствует требованиям; • выявить ситуации, в которых поведение программы является неправильным, нежелательным или не соответствующим спецификации. 3 Функциональное тестирование Функциональное тестирование — это тестирование ПО в целях проверки реализуемости функциональных требований, то есть способности ПО в определённых условиях решать задачи, нужные пользователям. Функциональные требования определяют, что именно делает ПО, какие задачи оно решает. 4 Функциональные требования Функциональные требования включают в себя: • Функциональная пригодность (англ. suitability). • Точность (англ. accuracy). • Способность к взаимодействию (англ. interoperability). • Соответствие стандартам и правилам (англ. compliance). • Защищённость (англ. security). 5 Дымовое тестирование (Smoke testing) Дымовое тестирование в тестировании программного обеспечения означает минимальный набор тестов на явные ошибки. «Дымовой тест» обычно выполняется самим программистом; не проходившую этот тест программу не имеет смысла отдавать на более глубокое тестирование. 6 Приемочное тестирование (Acceptance testing) • Приемочное тестирование – это комплексное тестирование, необходимое для определения уровня готовности системы к последующей эксплуатации. Тестирование проводится на основании набора тестовых сценариев, покрывающих основные бизнес-операции системы. 7 Регресионное тестирование (Regression testing) • Регресионное тестирование– это набор тестов, направленных на обнаружение дефектов в уже протестированных участках приложения. 8 Тестирование пользовательского интерфейса (User Interface testing) Тестирование пользовательского интерфейса - это процесс тестирования графического пользовательского интерфейса продукта, чтобы обеспечить его соответствие спецификациям. Обычно это осущесетвляется с помощью различных тестовых сценариев. 9 Тестовый сценарий (Test Case) Тестовый сценарий - это документ, описывающий совокупность шагов, конкретных условий и параметров, необходимых для проверки реализации тестируемой функции или её части. 10 Тестовый сценарий - пример 11 Ручное тестирование Ручное тестирование — часть процесса тестирования на этапе контроля качества в процессе разработки программного обеспечения. Оно производится тестировщиком без использования программных средств, для проверки программы или сайта путём моделирования действий пользователя. В роли тестировщиков могут выступать и обычные пользователи, сообщая разработчикам о найденных ошибках. 12 Автоматизированное тестирование Автоматизированное тестирование программного обеспечения — часть процесса тестирования на этапе контроля качества в процессе разработки программного обеспечения. Оно использует программные средства для выполнения тестов и проверки результатов выполнения, что помогает сократить время тестирования и упростить его процесс. 13 Модульное тестирование (Unit testing) Модульное тестирование, или юнит-тестирование — процесс в программировании, позволяющий проверить на корректность отдельные модули (классы) исходного кода программы. 14 Unit-тест 15 Интеграционное тестирование (Integration testing) Интеграционное тестирование — одна из фаз тестирования программного обеспечения, при которой отдельные программные модули объединяются и тестируются в группе. Обычно интеграционное тестирование проводится после модульного тестирования и предшествует системному тестированию. 16 Анализ и проектирование информационных систем Филипп Владимирович Станкевич f.stankevich@mail.ru