Лекция 7 Тестирование программного изделия. Принципы тестирования. Этапы тестирования. Методы тестирования



Скачать 56.48 Kb.
Дата18.05.2016
Размер56.48 Kb.
ТипЛекция
ЛЕКЦИЯ 7


  1. Тестирование программного изделия. Принципы тестирования. Этапы тестирования. Методы тестирования.


Тестирование – это процесс многократного выполнения программы с целью обнаружения ошибок.

Особенности тестирования:

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

  2. Высокая сложность программ и принципиальная невозможность исчерпывающего тестирования.

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

Цель тестирования – выявление как можно большего числа ошибок.

Процесс тестирования проходит несколько этапов:



  • поблочное;

  • комплексное;

  • системное.

Тестирование блоков – показывает правильность реализации всех компонент программного изделия, начиная с самого нижнего уровня, вплоть до самого нижнего уровня архитектурного проекта (обычно на уровне задач). Модули, которые не вызывают другие модули, - модули нижнего уровня детального проекта.

При тестировании блоков проверяется правильность не только того, что функционально выполняет модуль, но и того, как он это делает. Таким образом, при тестировании блоков используется не только функциональное тестирование (тестирование "черного ящика"), но и структурное тестирование (тестирование "белого ящика").

Стратегия структурного тестирования предполагает такой подбор тестовых данных, при котором:


  • каждый оператор программы будет выполнен хотя бы один раз,

  • все пути выполнения программы будут охвачены соответствующими тестовыми наборами.

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

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

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



Системное тестирование – процесс тестирования интегрированного программного изделия. Оно осуществляется в процессе разработки или в условиях моделирования эксплуатации.

Системное тестирование должно подтверждать соответствие разработанного программного изделия целям, установленным в документе Требования пользователя.

Системное тестирование включает:


  • передачу данных в систему, проверку корректности обработки данных и вывод результатов;

  • прогон тестов с целью проверки выполнения требований пользователя;

  • стрессовое тестирование для верификации предельных характеристик программного изделия;

  • предварительную оценку надежности и пригодности к сопровождению;

  • проверку правильности Руководства пользователя.

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

Принципы тестирования:

  1. Процесс тестирования более эффективен, если проводится не автором программы.

  2. Описание предполагаемых значений результатов тестовых прогонов должно быть необходимой частью тестового набора данных.

  3. Необходимо досконально изучать результаты применения каждого теста.

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

  5. Необходимо проверить не только, делает ли программа то, для чего она предназначена, но и не делает ли она то, что не должна делать.

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

Методы тестирования:

  1. статическое тестирование;

  2. детерминированное тестирование;

  3. стохастическое тестирование;

  4. тестирование в реальном масштабе времени.

Статическое тестирование – базируется на правилах структурного построения программ и обработки данных. Проверка степени выполнения этих правил путем формального анализа текста программы на языке программирования.

Детерминированное тестирование – (наиболее трудоемкое) – многократное выполнение программы на ЭВМ с использованием определенных, специальным образом подобранных тестовых наборов данных.

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

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



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

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

Используют ручные методы тестирования, которые являются достаточно эффективными. Эти методы способствуют существенному увеличению производительности и повышению надежности программ, позволяют раньше обнаружить ошибки, а значит, уменьшить стоимость исправления.

Основные методы ручного тестирования:


  • инспекция исходного текста;

  • сквозные просмотры.

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

В инспектирующую группу входят 4 человека:



  • председатель (не автор, но знакомый с детальными программами);

  • автор программы;

  • проектировщик;

  • специалист по тестированию.

Функции председателя:

  • подготовка материалов для заседания инспектирующей группы;

  • составление графика проведения инспекций;

  • ведение заседания;

  • регистрация всех найденных ошибок.

Процедура инспекции:

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

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

  • далее программа анализируется по списку вопросов для выявления общих ошибок программирования (предлагаемый список содержит 67 вопросов, сгруппированных в 8 групп). Председатель отвечает за результативность дискуссии, участники – ищут ошибки, но не корректируют.

  • по окончанию заседания автору передается список найденных ошибок.

Оптимальная продолжительность заседания 90-120 мин. Скорость просмотра 150 операторов в час. При большом количестве ошибок - повторная инспекция.

Сквозные просмотры – ряд процедур и способов обнаружения ошибок, осуществляемых группой специалистов.

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



Детерминированное тестирование, или тестирование на определенных входных значениях, основывается на двух подходах:

  • структурное тестирование (СТ),

  • функциональное тестирование (ФТ).

Структурное тестирование, или тестирование программ как "белого ящика" - детальное изучение текста (логики) программы и построение (подбор) таких входных наборов данных, которые позволили бы при многократном выполнении программы на ЭВМ обеспечить выполнение максимально возможного количества маршрутов, логических ветвлений, циклов и т.д.

Функциональное тестирование, или тестирование программ как "черного ящика" (тестирование по "входу-выходу") – программа - "черный ящик", а тестовые наборы выбираются на основании анализа входных функциональных спецификаций.
Каталог: files -> 1 zao
files -> Рабочая программа по курсу «Введение в паблик рилейшнз»
files -> Основы теории и практики связей с общественностью
files -> Коммуникативно ориентированное обучение иностранным языкам в Дистанционном образовании
files -> Варианты контрольной работы №2 По дисциплине «Иностранный (англ.) язык в профессиональной деятельности» для студентов 1 курса заочной формы обучения, обучающихся по специальности 030900. 68 Магистратура
files -> Контрольная работа №2 Вариант №1 Text №1 Use of Non-Police Negotiators in a Hostage Incident
files -> Классификация основных человеческих потребностей по А. Маслоу Пирами́да потре́бностей
files -> Рабочая программа для студентов направления 42. 03. 02 «Журналистика» профилей «Печать», «Телевизионная журналистика»
1 zao -> Основы инженерной геологии Содержание учебной дисциплины и вопросы для самоконтроля


Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©dogmon.org 2017
обратиться к администрации

    Главная страница