Лекция1_тестирование_-жизненный-цикл-ПО_-методологии_-этапы-тест. Урок 1 тестирование, жизненный цикл по, методологии, этапы тестирования Дрюпина Екатерина Ведущий тестировщик
Скачать 2.65 Mb.
|
www.aplana.ru Урок 1: тестирование, жизненный цикл ПО, методологии, этапы тестирования Дрюпина Екатерина Ведущий тестировщик 3 2 Содержание урока • Что такое тестирование? • Кто такой тестировщик? • Жизненный цикл ПО. • Методологии разработки. • Этапы тестирования. • Виды тестирования. • Примеры и практика. 3 3 Открыть книжку и начать читать: Роман Савин «Тестирование dotcom или Пособие по жестокому обращению с багами в интернет-стартапах» www.aplana.ru 1. Тестирование 3 5 Здесь было тестирование? Тестирование – это проверка соответствия между реальным поведением программы и ее ожидаемым поведением на конечном наборе тестов, выбранном определенным образом. [EEE Guide to Software Engineering Body of Knowledge, SWEBOK, 2004] 3 6 Кто такой тестировщик? 3 7 Зачем тестировать? 3 8 Что такое качество? Качество программного обеспечения – это: • степень, в которой ПО обладает требуемой комбинацией свойств; • совокупность характеристик ПО, относящихся к его способности удовлетворять установленные и предполагаемые потребности. www.aplana.ru 2. Жизненный цикл ПО, методологии разработки 3 10 Есть ли жизнь у ПО? 3 11 Жизненный цикл ПО Идея Требования Разработка Тестирование Эксплуатация Поддержка 3 12 Waterfall model Анализ Проектирование Реализация Внедрение Сопровождение Анализ Проектирование Реализация Внедрение Сопровождение 3 13 V-model Бизнес-модель Бизнес- требования Функциональные требования Архитектура системы Техническое задание Кодирование Модульное тестирование Интеграционное тестирование Системное тестирование Приемочное тестирование Операционное тестирование 3 14 Spiral model 3 15 Agile model Планирование Проектирование Разработка Тестирование Обратная связь Запуск Планирование Проектирование Разработка Тестирование Обратная связь Запуск Планирование Проектирование Разработка Тестирование Обратная связь Запуск Спринт 1 Спринт 2 Спринт 3 3 16 Agile model « Бэклог» проекта « Бэклог» спринта Результат Спринт (до 4-х недель) Итерация (сутки) 3 17 Agile model www.aplana.ru 3. Этапы тестирования 3 19 Этапы тестирования Анализ требований •Тестирование требований •Уточнение требований Планирование тестирования •Определение цели тестирования •Составление тест-плана •Определение трудоемкости тестирования •Составление расписания тестирования Разработка тестов •Составление чек-листов, тест-кейсов •Создание тестовых данных Выполнение тестов •Выполнение тестов •Заведение дефектов Оценка результатов тестирования •Составление отчета по тестированию •Оповещение заинтересованных лиц о результатах тестирования www.aplana.ru 4 . Виды тестирования 3 21 Виды тестирования 3 22 Функциональное тестирование Функциональное тестирование Функциональное Тестирование безопасности Тестирование взаимодействия Функциональное — тестирование, направленное на проверку корректности работы функциональности приложения. Тестирование безопасности — тестирование, направленное на проверку способности приложения противостоять злонамеренным попыткам получения доступа к данным или функциям, права на доступ к которым отсутствует. Тестирование взаимодействия – проверка взаимодействия ПО с различными внешними системами. 3 23 Нефункциональное тестирование Нефункциональное тестирование Нагрузочное Стресс Юзабилити Тестирование стабильности и надежности Объемное Инсталляционное Конфигурационное Тестирование на отказ и восстановление Нагрузочное (тестирование производительности) - исследование способности приложения сохранять заданные показатели качества при нагрузке в допустимых пределах и некотором превышении этих пределов. Стресс-тестирование - исследование поведения приложения при нештатных изменениях нагрузки, значительно превышающих расчётный уровень, или в ситуациях недоступности значительной части необходимых приложению ресурсов. Тестирование удобства пользования - тестирование, направленное на установление степени удобства использования, обучаемости, понятности и привлекательности для пользователей разрабатываемого продукта в контексте заданных условий. Тестирование стабильности или надежности - проверка работоспособности приложения при длительном (многочасовом) тестировании со средним уровнем нагрузки. Время выполнения операций может играть в данном виде тестирования второстепенную роль. При этом на первое место выходит отсутствие утечек памяти, перезапусков серверов под нагрузкой и другие аспекты влияющие именно на стабильность работы. 3 24 Нефункциональное тестирование Нефункциональное тестирование Нагрузочное Стресс Юзабилити Тестирование стабильности и надежности Объемное Инсталляционное Конфигурационное Тестирование на отказ и восстановление Объёмное - исследование производительности при обработке различных (как правило, больших) объёмов данных. Инсталляционное - тестирование, направленное на выявление дефектов, влияющих на протекание стадии инсталляции приложения (например, стадии установки, обновления, удаления ПО). Конфигурационное - вид тестирования, направленный на проверку работы программного обеспечения при различных конфигурациях системы (заявленных платформах, поддерживаемых драйверах, при различных конфигурациях компьютеров и т.д.). Тестирование на отказ и восстановление – проверка с точки зрения способности противостоять и успешно восстанавливаться после возможных сбоев, возникших в связи с ошибками ПО, отказами оборудования или проблемами связи (очень важно для систем, работающих по принципу “24x7”). 3 25 Тестирование, связанное с изменениями Связанное с изменениями Дымовое Регрессионное Тестирование сборки Санитарное Дымовое – тестирование на минимальном наборе тестов, с целью убедиться, что дальнейшее тестирование целесообразно. Регрессионное — тестирование, направленное на проверку того факта, что в ранее работоспособной функциональности не появились ошибки, вызванные изменениями в приложении или среде его функционирования. Тестирование сборки – тестирование, направленное на определение соответствия выпущенной версии критериям качества для начала тестирования (аналог дымового, но немного шире). Санитарное – узконаправленное тестирование, достаточное для доказательства того, что конкретная функция работает согласно заявленным в спецификации требованиям. 3 26 Уровни тестирования Уровни тестирования Модульное Системное Интеграционное Интеграционное (модульно- интеграционное, системно- интеграционное) – тестирование связи между модулями, тестирование связи между системами. Модульное – тестирование отдельного модуля системы. Системное – тестирование системы в целом. 3 27 Доступность кода По доступу к коду Метод белого ящика Метод серого ящика Метод черного ящика Метод черного ящика - доступа к внутренностям приложения нет, нет доступа к коду. Метод белого ящика (стеклянного) – есть доступ к коду. Метод серого ящика – есть частичный доступ к коду (или комбинация методов черного и белого ящиков). 3 28 Доступность кода 3 29 Какое еще бывает тестирование? По запуску кода Динамическое Статическое Динамическое – тестирование, проводимое во время выполнения ПО (тестирование с запуском кода на исполнение). Статическое – тестирование артефактов разработки ПО (требования, дизайн, код), проводимое без исполнения этих артефактов (без запуска кода приложения). 3 30 Какое еще бывает тестирование? По степени автоматизации Ручное Автоматизированное Ручное – тестирование выполняет человек вручную. Автоматизированное – тестирование выполняет инструмент. 3 31 Какое еще бывает тестирование? По принципам работы Позитивное Негативное При позитивном проверяются функции ПО строго по требованиям, по инструкциям, только с допустимыми действиями и корректными данными. Негативное – проверка поведения ПО при вводе некорректных данных, то что не предусмотрено требованиями или типом данных, используются данные, потенциально при-водящие к ошибкам. www.aplana.ru 5. Примеры и практика 3 33 Протестируйте карандаш 3 34 3 35 Сокращения • ПО • АС • ФП • НФ • РТ • СТ • ИФТ • ПСИ • ПМИ • ПРОМ • ФТ • ТЗ • НТ • Е2Е • ЦА • ТБ • ОД • БД • ЦОД • ФЛ • ЮЛ • ИП • КСШ • ТФС • ТКС • МС • ДУЛ • RQ • RS 3 36 3 37 Практическое задание Требование Предусловие Получен запрос от вызывающей системы. Описание основного сценария 1. СИСТЕМА1 направляет запрос в СИСТЕМА2 на получение данных продукта посредством сервиса < SearchProduct >. Запрос содержит значения следующих параметров: • номер счёта. 2. СИСТЕМА2 возвращает в СИСТЕМА1 идентификатор и значения параметров продукта. 3. СИСТЕМА1 сохраняет полученные данные в БД. 4. СИСТЕМА1 направляет запрос в СИСТЕМА3 на получение данных клиента посредством сервиса 5. СИСТЕМА3 возвращает в СИСТЕМА1 данные клиента. 6. СИСТЕМА1 проверяет, что в отношении владельца вклада не наступила смерть (код статуса КЛИЕНТА не равен 4). 7. СИСТЕМА1 сохраняет полученные данные в БД. Описание альтернативного сценария 1. От модуля, к которому был направлен запрос, получен ответ содержащий ошибку. СИСТЕМА1 прерывает процесс с уведомлением вызывающей системы. 2. Получена информация, что в отношении владельца вклада наступила смерть. СИСТЕМА1 прерывает процесс с уведомлением вызывающей системы. 3. Получена информация, что запрашиваемый счет не найден. СИСТЕМА1 прерывает процесс с уведомлением вызывающей системы. Постусловие Получены данные: • данные по клиенту; • данные по продукту клиента. 3 38 Практическое задание № Проверка Ожидаемый результат 1п Отправка запроса из С1 в С2 через сервис SearchProduct с существующим номером счета Запрос отправлен из С1 в С2 2п Получение ответа из С2 после отправки запроса из С1 через сервис SearchProduct с существующим номером счета Ответ получен из С2 в С1 с идентификатором и значением параметров продукта 3п Отправка запроса из С2 в С3 через сервис SearchClient с данными «живого» клиента Запрос отправлен из С1 в С3 4п Получение ответа из С3 после отправки запроса из С1 через сервис SearchClient с данными «живого» клиента Ответ получен из С3 в С1 с данными клиента 5п Проверка С1 в отношении полученных данных о живом клиенте из С3, сохранение данных в БД С1 проведена проверка в отношении клиента – клиент не умер, полученные данные сохранены в БД … ….. …. 9п Проверка С1 в отношении полученных данных об умершем клиенте из С3, уведомление в ВС об остановке процесса С1 проведена проверка в отношении клиента – статус клиента=4, клиент умер, процесс прерван, уведомление в ВС передано 3 39 Домашнее задание • Выберите одно приложение и напишите 5 проверок (тестов) для разных видов тестирования. • Возьмите 2-3 модели разработки ПО и проведите сравнительный анализ этих моделей (укажите 1-2 отличительных признака). Спасибо за внимание! Ваши вопросы? |