АННОТАЦИЯ ПРОГРАММЫ УЧЕБНОЙ ДИСЦИПЛИНЫ 1. Наименование дисциплины: Тестирование программного обеспечения 2. Направление: 231000 "Программная инженерия" 3. Квалификация (степень): бакалавр 4. Профиль подготовки: "Разработка программно-информационных систем" 5. Кафедра: автоматизированных систем управления (АСУ) 6. Структура дисциплины Курс Семестр 4 7 Трудоемкость (в зачетных единицах) 3 Общее Лекции 108 34 Кол-во часов Практические Лабораторные занятия работы 17 ИРС СРС 8 43 Форма итогового контроля зачет 7. Цели дисциплины Овладеть навыками тестирования программного обеспечения. 8. Содержание дисциплины Условия выполнения программы, ошибки, защитное программирование, комментирование кода, конвенция программирования, артефакт, тест, стандарт документирования тестов, анализ кода, отладка кода, ошибка, тест, полнота тестов, покрытие программы тестами, генератор тестов, характеристики ПО, структурное тестирование, потоковое тестирование, инспектирование кода, метрика программного продукта, отладка программного продукта, система тестовых заданий, этап разработки ПО. 9. Результаты обучения В результате освоения дисциплины «Тестирование программного обеспечения» обучающиеся должны: • знать: Инструменты для изменения элементов программы во время выполнения, тестирования программы в сложных условиях (многократного запуска, нехватки оперативной памяти, системной ошибки). Основные методы защитного программирования, методы блочного тестирования (IEEE 1008-1987), методы и назначение комментирования кода Методы выделения алгоритма из программного кода, составления тестов по артефактам программы и по коду, стандарты документирования тестов (IEEE 829-1998). Инструменты среды разработки для анализа кода. Методики написания кода, устойчивые к неверным входным данным, обеспечения корректного завершения программы. Итеративный подход к написанию программы. Генераторы тестовых заданий, методики покрытия кода тестами, анализа граничных условий выполнения программы, создание лесов для тестирования классов. Основные метрики программного продукта (среднее число ошибок в коде, оценка уровня сложности кода, сложности проекта), методы обработки, нахождения и исправления ошибок, подходы к составлению протоколов тестирования, методы локализации ошибок, классификацию ошибок. Структурное тестирование и тестирование на основе потоков данных. Методики инспектирования кода. IEEE-1061-1998 стандарт методологии метрик качества ПО, IEEE-730-2002 стандарт планирования контроля качества ПО. Этап отладки программного продукта, этап сопровождения программного продукта, методы описания и получения информации об ошибках, полученных во время эксплуатации ПО. Составление системы тестовых заданий на этапе анализа поставленной задачи. Методы исправления программного продукта, сохранения актуальной версии, предоставления прототипов • уметь: Изменять значения элементов программы во время выполнения, тестировать программу с сложных условиях, предугадывать ошибки выполнения, выявлять подверженные ошибкам места программы. Составлять условия применения программы. Писать код, не вызывающий непредвиденных ошибок, разбивать программу на части и тестировать ее по частям, составлять документацию для тестирования Выделять абстрактный алгоритм из кода, составлять документацию по программе, вносить комментарии в код. Конвенции именования. Пользоваться инструментами среды разработки для отладки программы и внесения изменений. Избегать написания подверженный ошибкам участков кода. Вносить изменения в программный продукт. Составлять автоматические тесты для написанных программ, с достаточной степенью покрывающих написанный код. Определять ОДЗ входных данных. Учитывать в коде программы применение к ней тестов. Рассчитывать различные метрики программного продукта. Определять на этапе анализа задачи тактику нахождения, исправления и обработки ошибок. Применять к программе методы структурного и потокового тестирования. Применять инспектирование кода при написании программы. При необходимости выделять в работе над программным продуктом этапы анализа, отладки, сопровождения и составлять по этим этапам соответствующую документацию. Определять системы тестовых заданий для достижения программой требуемого уровня качества. Следить за актуальной версией программы и переопределять ее, создавать на основе нее прототипы. • владеть: Навыками проверки программы в сложных условиях и определения условий работы программы. Навыками защитного программирования, блочного тестирования, комментирования кода. Навыками чтения программного кода и написания читаемого программного кода. Навыками написания кода, не вызывающего непредвиденных ошибок. Навыками составления тестов, покрывающих программу, определения их полноты. Методами включения и исключения из программы тестовых блоков. Методами определения требуемых от программы характеристик и их достижения. Методами разбиения работы над программным проектом на этапы и выделения в них элементов для тестирования программы. Методами контроля над версиями программы. Приобретаемые компетенции ПК-3 готовность к использованию методов и инструментальных средств исследования объектов профессиональной деятельности ПК-10 умение применять основы информатики и программирования к проектированию, конструированию и тестированию программных продуктов ПК-11 навыки чтения, понимания и выделения главной идеи прочитанного исходного кода, документации ПК-16 навыки использования различных технологий разработки программного обеспечения ПК-17 умение применять основные методы и инструменты разработки программного обеспечения ПК-18 понимание концепций и атрибутов качества программного обеспечения (надежности, безопасности, удобства использования), в том числе, роли людей, процессов, методов, инструментов и технологий обеспечения качества ПК-19 понимание стандартов и моделей жизненного цикла ПК-25 понимание методов контроля проекта и умение осуществлять контроль версий Автор аннотации ___________________________ Тищенко А.Д. Заведующий кафедрой ___________________________ Кузнецов Л.А.