Помощь в написании студенческих работ
Антистрессовый сервис

Тестирование ПО. Программная инженерия и технологии программирования сложных систем

РефератПомощь в написанииУзнать стоимостьмоей работы

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

Тестирование ПО. Программная инженерия и технологии программирования сложных систем (реферат, курсовая, диплом, контрольная)

Тестирование ПО (Software Testing) заключается в проверке работы кода в динамике на конечном (ограниченном) наборе тестов, охватывающих выбранное подмножество сценариев использования ПО и тестовых данных, и сравнении полученных результатов с ожидаемыми.

Данная область знаний включает следующие разделы:

  • • основы тестирования (Software Testing Fundamentals);
  • • уровни тестирования {Test Levels)-,
  • • приемы тестирования (Test Techniques);
  • • метрики тестирования (Test-related Measures);
  • • процесс тестирования (Test Process).

Раздел «Основы тестирования» охватывает терминологию, основные проблемы тестирования и связь с другими областями знаний в SWEBOK. Базовые понятия в области тестирования определяются по стандарту IEEE Std. 610:1990 «Standard Glossary of Software Engineering Terminology». Рассматриваются ключевые проблемы, связанные с формированием критериев отбора (и адекватности) тестов, эффективности тестирования, идентификации дефектов, выбора «оракула» (который принимает решение о том, прошел или не прошел тест), тестируемости и др.

В разделе «Уровни тестирования» указаны уровни объектов ПО, для которых формируются тесты, и цели тестирования этих объектов. Выделены следующие уровни тестирования:

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

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

В разделе «Приемы (техники) тестирования» представлена следующая классификация приемов тестирования:

  • • базирующиеся на интуиции и опыте исполнителя (тестирование по опыту (ad hoc), исследовательское тестирование);
  • • базирующиеся на анализе спецификации (но формальным спецификациям, на основе эквивалентного разделения программы на части, анализа граничных значений, таблиц решений, анализа переходов состояний и др.);
  • • базирующиеся на анализе кода (покрытие условий и решений в блоксхеме, анализ «жизненного цикла» переменных и др.);
  • • специальные приемы обнаружения дефектов (обнаружение дефектов на основе анализа рисков, «подсев» дефектов, мутационное тестирование);
  • • базирующиеся на сценариях и условиях использования (по операционному профилю, по специализированным методикам испытаний системы — на надежность, безопасность и др.);
  • • ориентированные на определенный тип и архитектурную природу ПО (приемы объектно ориентированного, компонентно ориентированного, веб-тестирования, тестирования на соответствие протоколам, тестирование систем реального времени и др.).

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

Для оценки программ в ходе тестирования рекомендуются метрики программ — размера, структурной сложности, частоты обращения к модулям; метрики (модели) дефектов и отказов — плотности дефектов, интенсивности отказов, роста надежности и др. Для оценки эффективности выполненных тестов рекомендуются метрики покрытия/глубины тестирования, оценки результатов мутаций и подсева дефектов, сравнительного анализа различных приемов тестирования.

В разделе «Процесс тестирования» указывается, что концепции, стратегии, техники и измерения тестирования должны быть объединены в единый процесс тестирования как деятельности по обеспечению качества на основе учета четырех элементов и связанных с ними факторов: людей, инструментов, регламентов и количественных оценок (измерений). Базовый стандарт по процессам ЖЦ ISO/IEC 12 207 не выделяет всю деятельность по тестированию в качестве единого процесса, однако рассматривает соответствующие принципы работ по тестированию как неотъемлемую часть процессов ЖЦ.

Составной частью формализации процесса тестирования и основой для сертификации и оценивания организации по моделям зрелости и стандартам качества (например, CMMI) является документация тестирования. При ее составлении SWEBOK рекомендует руководствоваться стандартом IEEE Std. 829:1998 «Standard for Software Test Documentation» по документированию планов тестирования, спецификации процедур тестирования, отдельных тестов и др.

Существенным моментом в процессе тестирования является принятие решения о завершении тестирования (необходимом объеме тестирования). Тщательные измерения покрытия кода или охвата функциональности должны сочетаться с оценками стоимости тестирования, а также рисков отказов и стоимости устранения их последствий при эксплуатации системы.

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

Показать весь текст
Заполнить форму текущей работой