08.04.2020 Кол-во часов 4 ч. 1. Изучить краткие теоретические сведения; 2. Выполнить задания; 3. Результаты выполненной работы оформить текстовым документом. Текстовый документ подписать с указанием даты, Ф.И.О., номером группы наименованием учебной дисциплины; 4. Результаты отправить на почту кл.руководителя до 15.00 текущего дня. Практическая работа 8 Тестирование: основные понятия Цель работы. Освоить основные понятия тестирования программного обеспечения. 1.1. Краткие теоретические сведения Ошибка – действия программиста на этапе разработки ПО, приводящее к появлению в ПО внутреннего дефекта, который в процессе работы программы может привести к неправильному результату. Отказ – непредсказуемое поведение ПО, приводящее к неожиданным результатам. Такие результаты могут быть обусловлены дефектами, содержащимися в ПО. Фазы тестирования: − Определение целей – конкретизирует, какие части системы будут тестироваться, какие аспекты их работы будут выбраны для проверки, каково желаемое качество и т.п. − Планирование – включает построение графика разработки тестов для каждой тестируемой подсистемы; оценку необходимых человеческих, программных и аппаратных ресурсов; разработку расписания тестовых циклов. − Разработка тестов – разработка тестового кода для тестируемой системы, если необходимо – кода системы автоматизации тестирования и ручных тестовых процедур. − Выполнение тестов – реализация тестовых циклов. − Анализ результатов. Тестовый цикл – цикл исполнения тестов, включающий в себя фазы №4 и №5 тестового процесса. Заключается в выполнении разработанных тестов на некотором состоянии программного кода. Предполагает следующую последовательность действий: −Проверка готовности системы тестов к проведению тестового цикла; −Подготовка тестовой машины в соответствии с требованиями, определенными на этапе планирования; − Воспроизведение среза системы; − Прогон тестов в соответствии с документированными процедурами; −Сохранение тестовых протоколов; − Анализ протоколов тестирования и принятие решения о прохождении каждого теста; − Анализ и документирование результатов цикла тестирования. Типы тестирования 1) По виду подсистемы или продукта: − тестирование основной функциональности; − тестирование инсталляций; − тестирование пользовательской документации. 2) По способу выбора тестовых данных: − функциональное тестирование; − стрессовое тестирование; − тестирование граничных значений; − тестирование производительности; − тестирование на соответствие стандартам; − тестирование программной и аппаратной совместимости; − тестирование взаимодействия с окружением; − тестирование работы в конкретной платформе. Ролевой состав группы разработки ПО и заинтересованные стороны: − заказчик проекта; − руководитель проекта, менеджер по продукту; − архитектор; − функциональный, технический консультант; − бизнес-аналитик, системный аналитик; − программист, разработчик; − технический писатель; − специалист по тестированию • менеджер тестирования (руководитель группы тестирования – test manager); • разработчик (дизайнер) тестов (test designer); • исполнитель тестов (tester). − специалист по контролю качества; − специалист по сертификации, специалист по безопасности. Пригодность функциональных требований к тестированию Функциональные требования к ПО подразделяются с точки зрения пригодности их к тестированию. Пригодными к тестированию являются требования, основанные на объективных критериях оценки качества разработанного продукта. Требования, включающие субъективные метрики, являются непригодными для тестирования. Объективные критерии оценки качества ПО могут быть детерминированными и вероятностными. 1.2. Задания для выполнения 1. Составить ответы на следующие вопросы: 1) Цели тестирования 2) Стадии разработки ПО. Основные этапы разработки. 3) Модели разработки ПО 4) Проектная команда. Роли в команде, для чего нужны? 5) Стоимость исправления программной ошибки на каждой из стадии разработки? 6) В чем состоит тестирование на этапе планирования? 7) В чем состоит тестирование на этапе проектирования? 8) Что такое тестирование «белого ящика»? 9) Что такое тестирование «черного ящика»? 10) Интеграционное тестирование 11) Восходящее и нисходящее тестирование 12) Суть статического и динамического тестирования 13) Что такое регрессионное тестирование? Для чего оно применятся? 14) Когда применяется регрессионное тестирование? 15) Тесты для регрессионного тестирования 16) Приемочное тестирование. Суть? Для чего необходимо? 17) Как можно «измерить» эффективность тестов? 18) Характеристики хорошего теста 19) Стадии тестирования 20) Виды тестирования 21) Понятие классов эквивалентности. Привести пример 22) Граничные условия. Привести пример 23) Понятие качества и надежности ПО 24) Что такое программная ошибка? 25) Что такое баг – репорт (отчет об ошибке)? Для чего он нужен? 26) Из каких разделов состоит отчет об ошибке? 27) Что такое приоритет ошибки? Какие могут быть приоритеты? 28) Что такое степень важности? 29) Приоритет vs Степень важности? 30) Жизненный цикл ошибки? 31) Назначение баг-трекинговой системы (системы отслеживания ошибок) 32) Нагрузочное тестирование 33) Стресс тестирование 34) Тестирование документации. Цель? 35) Для чего нужна автоматизация тестирования? 36) Выбор тестов для автоматизации? 37) Планирование тестирования. Задачи? 38) Виды тестовой документации. Для чего необходима тестовая документация? 39) Тестовый план. Для чего нужен документ? Кем составляется? Из чего состоит? 40) Основные распространённые программные ошибки.