учебники, программирование, основы, введение в,

 

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

Тестирование - способ обеспечения качества
Качество программного продукта характеризуется набором свойств, определяющих, насколько продукт "хорош" с точки зрения заинтересованных сторон, таких как заказчик продукта, спонсор, конечный пользователь, разработчики и тестировщики продукта, инженеры поддержки, сотрудники отделов маркетинга, обучения и продаж. Каждый из участников может иметь различное представление о продукте и о том, насколько он хорош или плох, то есть о том, насколько высоко качество продукта. Таким образом, постановка задачи обеспечения качества продукта выливается в задачу определения заинтересованных лиц, их критериев качества и затем нахождения оптимального решения, удовлетворяющего этим критериям. Тестирование является одним из наиболее устоявшихся способов обеспечения качества разработки программного обеспечения и входит в набор эффективных средств современной системы обеспечения качества программного продукта.
С технической точки зрения тестирование заключается в выполнении приложения на некотором множестве исходных данных и сверке получаемых результатов с заранее известными (эталонными) с целью установить соответствие различных свойств и характеристик приложения заказанным свойствам. Как одна из основных фаз процесса разработки программного продукта (Дизайн приложения - Разработка кода - Тестирование), тестирование характеризуется достаточно большим вкладом в суммарную трудоемкость разработки продукта. Широко известна оценка распределения трудоемкости между фазами создания программного продукта: 40%-20%-40% , из чего следует, что наибольший эффект в снижении трудоемкости может быть получен прежде всего на фазах Design и Testing. Поэтому основные вложения в автоматизацию или генерацию кода следует осуществлять, прежде всего, на этих фазах. Хотя в современном индустриальном программировании автоматизация тестирования является широко распространенной практикой, в то же время технология верификации требований и спецификаций пока делает только свои первые шаги. Задачей ближайшего будущего является движение в сторону такого распределения трудоемкости (60%-20%-20% ), чтобы суммарная цена обнаружения большинства дефектов стремилась к минимуму за счет обнаружения преимущественного числа на наиболее ранних фазах разработки программного продукта.
Настоящий курс посвящен обсуждению способов решения задачи контроля качества разработки программного обеспечения с позиций тестирования. В этой области наряду с решением научных и технических проблем немаловажная роль принадлежит проблеме подготовки кадров, способных решать задачи тестирования и автоматизации тестирования в условиях производства программного продукта. Задачей курса, реализующейся через лекционный материал и практикум, является подготовка тестировщиков программного проекта. Это тем более важно, что в существующих вузовских программах подготовки профессиональных программистов не предусмотрен достаточный для решения данной задачи объем лекционного материала и практикумов. Поэтому предлагаемое пособие следует рассматривать как дополнительный учебник для будущих тестировщиков программных проектов.
Предлагаемый вниманию читателей курс обобщает опыт многолетней работы учебного центра "Политехник - Моторола" в Санкт-Петербургском государственном политехническом университете. Естественно, наш учебник не единственный.
Среди учебников, посвященных подготовке тестировщиков, мы рекомендуем обратить внимание на книги], также посвященные передаче опыта промышленного тестирования студентам и аспирантам, выбравшим своей специальностью профессиональное программирование.
Требования к курсу
Курс соответствует требованиям специальности 220400 "Программное обеспечение вычислительной техники и автоматизированных систем", ориентированной на подготовку профессиональных программистов, в частности покрывает разделы курса "Технология программирования", посвященные тестированию.
Разделы курса соответствуют следующим разделам Computing Curricula 2001: Computer Science:

  • Раздел SE4 Процессы разработки ПО
  • Раздел SE5 Спецификации и требования к ПО
  • Раздел SE6 Проверка соответствия ПО

Основные темы лекционного курса

  • Основные понятия тестирования: терминология тестирования, различия тестирования и отладки, фазы и технология тестирования, проблемы тестирования
  • Критерии выбора тестов: структурные, функциональные, стохастические, мутационный, оценки покрытия проекта
  • Разновидности тестирования: модульное, интеграционное, системное, регрессионное, автоматизация тестирования, издержки тестирования
  • Особенности процесса и технологии индустриального тестирования: планирование тестирования, подходы к разработке тестов, особенности ручной разработки и генерации тестов, автоматизация тестового цикла, документирование тестирования, обзоры и метрики
  • Регрессионное тестирование: особенности и виды регрессионного тестирования, методы отбора тестов, оценка эффективности
  • Терминологический словарь: содержит глоссарий терминологии тестирования в соответствии с IEEE Standard Glossary of Software Engineering

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

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

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

  • Разработка документации на тестируемую систему и ее окружение: описание требований (Requirement Specification) и спецификаций разработчика (High Level Design)
  • Планирование тестирования
  • Практикум модульного тестирования
  • Практикум интеграционного тестирования
  • Практикум системного тестирования
  • Ручное тестирование и тестовые процедуры
  • Автоматизированное тестирование на основе скриптов
  • Автоматизированное тестирование на основе MSC-диаграмм и генерация тестов
  • Средства поддержки автоматизации тестирования

Используя модель реальной системы управления, студенты могут:

  • разрабатывать различные виды тестов и тестирующих программ
  • искать дефекты системы в процессе тестирования , участвовать в их исправлении и модернизации тестируемого приложения
  • разрабатывать документацию - требования к системе, тесты и тестовые процедуры - и отслеживать взаимосвязь этих документов с разработанными тестами

Прогнозируемые результаты
В результате изучения курса:

  1. Вырабатывается понимание условий применения Верификации, Валидации и Тестирования
  2. Вырабатываются навыки и приемы тестирования, применяемые на различных фазах разработки качественного программного продукта
  3. Оцениваются условия эффективного применения инструментальных средств в разработке качественного программного обеспечения
  4. Вырабатываются навыки разработки тестовых программ и тестовых наборов в программном проекте
  5. Вырабатываются навыки разработки проектной документации для этапа тестирования
  6. Вырабатываются навыки планирования и отслеживания задач тестирования
  7. Обеспечиваются основы обучения проектной команды, состоящей из разработчиков и тестировщиков
  8. Вырабатываются навыки тестирования программного обеспечения проектов, разработанных на C#

Потребители курса
Курс и практикум рассчитаны на студентов программистских специальностей:

  • 220400 "Программное обеспечение вычислительной техники и автоматизированных систем"
  • 220200 "Программное обеспечение автоматизированных систем управления"
  • 220300 "Системы автоматизации проектирования"
  • 351500 "Математическое обеспечение и администрирование информационных систем"
  • на студентов других специальностей, желающих получить знания и навыки, необходимые для работы в области промышленного тестирования программных продуктов
 
На главную | Содержание | < Назад....Вперёд >
С вопросами и предложениями можно обращаться по nicivas@bk.ru. 2013 г.Яндекс.Метрика