Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

662

.pdf
Скачиваний:
0
Добавлен:
21.11.2023
Размер:
140.23 Кб
Скачать

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Нижегородский государственный архитектурно-строительный университет»

Никитенкова С.П.

ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Учебно-методическое пособие по подготовке к лекционным и практическим занятиям

(включая рекомендации по организации самостоятельной работы)

для обучающихся по дисциплине «Тестирование программного обеспечения»

по направлению подготовки 09.03.04 Программная инженерия профиль Разработка программно-информационных систем

Нижний Новгород

2018

УДК 004.9

Платов А.Ю. / Тестирование программного обеспечения [Электронный ресурс]: учеб.-метод. пос. / А.Ю. Платов; Нижегор. гос. архитектур. - строит. ун-т – Н. Новгород: ННГАСУ, 2018. – 14 с.– 1 электрон. опт. диск (CD-RW).

В настоящем учебно-методическом пособии по дисциплине «Тестирование программного обеспечения» даются конкретные рекомендации учащимся для освоения как основного, так и дополнительного материала дисциплины и тем самым способствующие достижению целей, обозначенных в учебной программе дисциплины. Цель учебно-методического пособия — это помощь в усвоении лекций, в подготовке к практическим занятиям.

Учебно-методическое пособие предназначено для обучающихся в ННГАСУ по дисциплине «Тестирование программного обеспечения» по направлению подготовки 09.03.04 Программная инженерия, профиль Разработка программно-информационных систем.

Учебно-методическое пособие ориентировано на обучение в соответствии с календарным учебным графиком и учебным планом по основной профессиональной образовательной программе направления 09.03.04 Программная инженерия, профиль Разработка программноинформационных систем, утверждённым решением учёного совета ННГАСУ от 02.03.2018 г. (протокол № 3).

©

А.Ю. Платов, 2018

©

ННГАСУ, 2018

2

Оглавление

1.

Общие положения ..........................................................................................................................

4

 

1.1

Цели изучения дисциплины и результаты обучения ...........................................................

4

 

1.2

Содержание дисциплины........................................................................................................

4

2.

Методические указания по подготовке к лекциям......................................................................

6

 

2.1

Общие рекомендации по работе на лекциях.........................................................................

6

 

2.2

Общие рекомендации при работе с конспектом лекций .....................................................

6

 

2.3

Общие рекомендации по изучению материала лекций .......................................................

6

 

2.4

Контрольные вопросы.............................................................................................................

8

3.

Методические указания по подготовке к практическим занятиям .........................................

10

 

3.1

Общие рекомендации по подготовке к практическим занятиям......................................

10

 

3.2

Примеры задач для практических занятий .........................................................................

10

4.

Методические указания по организации самостоятельной работы........................................

11

 

4.1

Общие рекомендации для самостоятельной работы..........................................................

11

 

4.2

Темы для самостоятельного изучения.................................................................................

13

 

4.3

Учебно-методическое обеспечение самостоятельной работы..........................................

13

 

4.4

Задания для самостоятельной работы .................................................................................

13

3

1. Общие положения

1.1 Цели изучения дисциплины и результаты обучения

Целями освоения учебной дисциплины «Тестирование программного обеспечения» является приобретение студентами теоретических и практических навыков тестирования программных продуктов и улучшение навыков разработки программного обеспечения в области повышения качества программ.

В процессе освоения дисциплины студент должен Знать:

- методы тестирования программного обеспечения, верификация, качество ПО

-основные методы тестирования программного обеспечения баз данных

-типовые методы контроля, оценки и обеспечения качества программной продукции

Уметь:

-проводить тестирование компонентов программного обеспечения информационных систем

-проводить анализ методов тестирования баз данных

-использовать стандарты при разработке и документировании программных средств

Владеть:

-методами тестирования программного обеспечения

-навыками тестирования БД в различных профессиональных областях

-методами и средствами автоматизированного тестирования программного обеспечения Данная дисциплина позволит студентам не только систематизировать полученные теорети-

ческие знания, укрепить исследовательские навыки, но и даст возможность ориентироваться в новом предметном поле программной инженерии.

1.2 Содержание дисциплины

Материал дисциплины сгруппирован по следующим разделам:

1.Основные понятия и термины.

Основные понятия и термины. Дефект и его жизненный цикл. Цели и роль тестирования,

качество программного обеспечения и тестирование

2. Классификация тестирования

Классификация тестирования. Классификация по видам. Классификация по последовательности, методам и глубине. Функциональное тестирование. Проблема подготовки тестовых данных. Классы эквивалентности, парное тестирование, граничные значения, прогноз ошибок. Сложные ошибки: синхронизации (data races), утечки памяти

3. Организация тестирования

Тестовые сценарии и инструменты тестирования. Шаблон и примеры тестовых сценариев.

4

Листы проверки. Формы требований к ПО. Понятие покрытия требований, кода. Инструменты подготовки тестовых данных

4. Автоматизация тестирования

Автоматизация тестирования. Структура и шаблоны тестов для формирования тестовогонабора для автоматического прогона. Инструментальные системы автоматизациитестирования. Затраты, связанные с тестированием. Ручные и автоматизированные тесты,описание тестовых наборов и тестовых отчетов. Жизненный цикл дефекта. Метрики,используемые при тестировании.

5. Статическое и динамическое тестирование

Статическое и динамическое тестирование. Модель динамического тестирования. Тестовые данные и оракулы. Тестирование и требования к ПО

6. Тестирование usability и accessibility, конфигурационное, безопасности, локализации

Тесты на человеческий фактор, эстетику интерфейса и его непротиворечивость, наличие и качество оперативной и контекстной помощи, руководств и учебных материалов.

7. Тестирование и производственные процессы

Тестирование и производственные процессы. Гибкие и классические методологии. Особенности организации тестирования в различных процессах. Жизненный цикл ПО. Задачи тестирования на различных этапах жизненного цикла ПО. Разработка управляемая тестированием

8. Тестирование производительности

Тестирование производительности, надежности и специальные виды тестирования. Виды нагрузочного тестирования и их задачи. Критерии. Инструменты автоматизации нагрузочного тестирования.

9. Стратегии и планирование тестирования.

Содержание плана тестирования. Выход тестирования. Риски. Стратегии и планирование тестирования. Ad-hoc, исследовательское тестирование. Отчетность и прогнозирование.

5

2. Методические указания по подготовке к лекциям

2.1 Общие рекомендации по работе на лекциях

Лекция является главным звеном дидактического цикла обучения. Ее цель — формирование основы для последующего усвоения учебного материала. В ходе лекции преподаватель в устной форме, а также с помощью презентаций передает обучаемым знания по основным, фундаментальным вопросам изучаемой дисциплины.

Назначение лекции состоит в том, чтобы доходчиво изложить основные положения изучаемой дисциплины, ориентировать на наиболее важные вопросы учебной дисциплины и оказать помощь в овладении необходимых знаний и применения их на практике.

Личное общение на лекции преподавателя со студентами предоставляет большие возможности для реализации образовательных и воспитательных целей.

При подготовке к лекционным занятиям студенты должны ознакомиться с презентаций, предлагаемой преподавателем, отметить непонятные термины и положения, подготовить вопросы с целью уточнения правильности понимания. Рекомендуется приходить на лекцию подготовленным, так как в этом случае лекция может быть проведена в интерактивном режиме, что способствует повышению эффективности лекционных занятий.

2.2Общие рекомендации при работе с конспектом лекций

Входе лекционных занятий необходимо вести конспектирование учебного материала. Конспект помогает внимательно слушать, лучше запоминать в процессе осмысленного записывания, обеспечивает наличие опорных материалов при подготовке к семинару, зачету, экзамену.

Полезно оставить в рабочих конспектах поля, на которых делать пометки из рекомендованной литературы, дополняющие материал прослушанной лекции, а также подчеркивающие особую важность тех или иных теоретических положений.

В случае неясности по тем или иным вопросам необходимо задавать преподавателю уточняющие вопросы. Следует ясно понимать, что отсутствие вопросов без обсуждения означает в большинстве случаев неусвоенность материала дисциплины.

2.3 Общие рекомендации по изучению материала лекций

Раздел 1: "Основные понятия и термины" – 2 лекции

Цель: дать основы понимания терминологии предметной области.

Содержание: Тестовые сценарии и инструменты тестирования. Шаблон и примеры тестовых сценариев. Описание начальных условий, входных данных, действий пользователя и ожидаемого результата. Написание тестовых сценариев на основании вариантов использования. Основные ошибки при составлении тестовых сценариев. Примеры тестовых сценариев. Листы проверки.

6

Формы требований к ПО. Понятие покрытия требований, кода. Инструменты подготовки тестовых данных.

Раздел 2: «Классификация тестирования» - 2 лекции

Цель: изучить классификацию тестов в зависимости от задач, которые с их помощью реша-

ются.

Содержание: Классификация тестирования. По объекту тестирования: функциональное тестирование, тестирование производительности, нагрузочное тестирование, стресс-тестирование, тестирование стабильности, конфигурационное тестирование, юзабилити-тестирование, тестирование интерфейса пользователя, тестирование безопасности, тестирование локализации, тестирование совместимости. По знанию внутреннего строения системы: тестирование чёрного ящика, тестирование белого ящика, тестирование серого ящика. По степени автоматизации: ручное тестирование, автоматизированное тестирование, полуавтоматизированное тестирование. По степени изолированности: тестирование компонентов, интеграционное тестирование, системное тестирование. По времени проведения тестирования: альфа-тестирование , дымовое тестирование (англ. smoke testing), тестирование новой функции (new feature testing), подтверждающее тестирование, регрессионное тестирование, приёмочное тестирование, бета-тестирование. По признаку позитивности сценариев: позитивное тестирование, негативное тестирование. По степени подготовленности к тестированию: тестирование по документации (формальное тестирование), интуитивное тестирование (англ. ad hoc testing). Классификация по последовательности, методам и глубине. Функциональное тестирование. Подготовка тестовых данных. Классы эквивалентности, парное тестирование, граничные значения, прогноз ошибок. Сложные ошибки: синхронизации

(data races), утечки памяти.

Раздел 3: «Организация тестирования» – 2 лекции

Цель: изучить основы организации тестирования.

Содержание: Тестирование программного обеспечения — процесс исследования программного обеспечения (ПО) с целью получения информации о качестве продукта. Тестовые сценарии и инструменты тестирования. Шаблон и примеры тестовых сценариев. Проектирование тестов. Способ построения рабочей программы. Монолитное, пошаговое тестирование. Нисходящее и восходящее тестирование. Методы тестирования за столом - инспекции, сквозные просмотры и обзоры программ. Тестирование «белого ящика» и «чёрного ящика». Статическое и динамическое тестирование. Регрессионное тестирование

Раздел 4: «Автоматизация тестирования» – 2 лекции

Цель: изучить способы оценки программ на основе процедурно-ориентированных метрик. Содержание: Автоматизация тестирования. Структура и шаблоны тестов для формирования

тестового набора для автоматического прогона. Инструментальные системы автоматизациитестирования. Затраты, связанные с тестированием. Ручные и автоматизированные тесты, описание тестовых наборов и тестовых отчетов. Жизненный цикл дефекта. Метрики, используемые при тестировании.

Раздел 5: «Статическое и динамическое тестирование» — 2 лекции

7

Цель: изучить способы статического и динамического тестирования.

Содержание: Статическое и динамическое тестирование. Модель динамического тестирования. Ошибки, которые потенциально можно выявить с помощью автоматического статического тестирования. Утечки ресурсов (утечки памяти, неосвобождаемые файловые дескрипторы и т.д.). Возможность переполнения буфера (buffer overflows). Ситуации частичной (неполной) обработки ошибок. Примеры динамического тестирования: модульное тестирование (unit testing), интеграционное тестирование (integrated testing), приемочное тестирование (acceptance testing)

Раздел 6: «Тестирование usability и accessibility» — 2 лекции

Цель: изучить основы оценки доступности интерфейса для пользователей с различными физическими или техническими возможностями.

Содержание: Тестирование usability и accessibility, конфигурационное, безопасности, локализации. Тесты на человеческий фактор, эстетику интерфейса и его непротиворечивость, наличие и качество оперативной и контекстной помощи, руководств и учебных материалов. Тесты на человеческий фактор, эстетику интерфейса и его непротиворечивость, наличие и качество оперативной и контекстной помощи, руководств и учебных материалов.

Раздел 7: «Тестирование и производственные процессы» — 2 лекции

Цель: изучить основы тестирования производительности.

Содержание: Тестирование производительности, надежности и специальные виды тестирования. Разработка нагрузочного теста. Автоматизация нагрузочного тестирования. Нагрузочное (load), стресс (stress), тестирование стабильности (endurance or soak or stability), конфигурационное

(configuration) тестирование.

Раздел 8: "Стратегии и планирование тестирования" -2 лекции

Цель: изучить основы стратегии и планирования тестирования.

Содержание: Стратегии и планирование тестирования. Ad-hoc, исследовательское тестирование. Разработка плана тестирования. Выход тестирования. Оценка рисков. Стратегия оценки рисков. Понятие критического функционала. Требование к численности и квалификации персонала. Проблемы с координацией и кооперацией.

2.4Контрольные вопросы

1.Понятие тестирования ПО. Основные определения.

2.Цели и принципы тестирования (ISTQB)

3.Цели тестирования. Уровень доверия, корректное поведение, реальное окружение

4.Тестирование и качество. Уровни восприятия тестирования в компании.

5.Участники тестирования, их роль, квалификация и обязанности.

6.Мониторинг прогресса и контроль тестирования (ISTQB)

7.Модульное тестирование. Понятие модуля. Драйверы и заглушки.

8.V-образная модель. Статическое и динамическое тестирование.

9.Валидация и верификация. Тестирование методом "чёрного" и "белого" ящика.

10.Тестовый случай, тестовый сценарий и тестовое покрытие.

11.Полное тестовое покрытие. Оценка объема и времени полного покрытия

8

12.Повторяемость тестового сценария. Автоматизированное тестирование

13.Регрессионное тестирование

14.Цели и задачи интеграционного тестирования.

15.Алгоритм интеграционного тестирования. Стратегии интеграции.

16.Тестирование системы целиком - системное тестирование.

17.Тестирование возможностей, стабильности, отказоустойчивости, совместимости

18.Тестирование производительности.

19.Альфа и Бета тестирование.

20.Приемочное тестирование.

21.Статическое тестирование. Рецензия, технические анализ, сквозной контроль.

22.Статическое тестирование. Инспекции.

23.Статическое тестирование. Статический анализ кода.

24.Выбор тестового покрытия с помощью анализа эквивалентности.

25.Анализ граничных значений.

26.Выбор тестового покрытия с помощью таблицы решений.

27.Выбор тестового покрытия с помощью диаграммы состояний и таблицы переходов.

28.Выбор тестового покрытия с помощью функционального тестирования.

29.Три наиболее важных принципа тестирования

30.Оценка полноты набора тестов.

9

3. Методические указания по подготовке к практическим занятиям

3.1Общие рекомендации по подготовке к практическим занятиям

Входе подготовки к практическим занятиям необходимо изучать основную литературу, знакомиться с дополнительной литературой, а также с новыми публикациями в периодических изданиях: журналах, газетах и т.д. При этом необходимо учесть рекомендации преподавателя и требования учебной программы.

Всоответствии с этими рекомендациями и подготовкой полезно дорабатывать свои конспекты лекции, делая в нем соответствующие записи из литературы, рекомендованной преподавателем и предусмотренной учебной программой. Целесообразно также подготовить тезисы для возможного выступлений по всем учебным вопросам, выносимым на практическое занятие.

При подготовке к занятиям можно также подготовить краткие конспекты по вопросам темы. Очень эффективным приемом является составление схем и презентаций.

Готовясь к докладу или реферативному сообщению, желательно обращаться за методической помощью к преподавателю. Составить план-конспект своего выступления. Продумать примеры с целью обеспечения тесной связи изучаемой теории с реальной жизнью. Своевременное и качественное выполнение самостоятельной работы базируется на соблюдении настоящих рекомендаций и изучении рекомендованной литературы. Студент может дополнить список использованной литературы современными источниками, не представленными в списке рекомендованной литературы, и в дальнейшем использовать собственные подготовленные учебные материалы при написании курсовых и дипломных работ.

3.2 Примеры задач для практических занятий

Пример № 1 Составление тестов разного типа для проверки различных функциональностей и форм (на-

пример, стандартный интерфейс авторизации, поисковая система базы данных, и т.д)

Пример № 2

Нахождение и описание дефектов, составление Bug Reports, тестирование специальной программы с введенными дефектами разных типов, практическая работа с баг-трекинг системой.

Пример № 3

Проведение нагрузочного тестирования на примере программы под Windows. Моделирование нагрузки, определение KPI targets для нагрузочного тестирования. Использование стандартных утилит Windows для отслеживания состояния системы.

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]