Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по САПР.doc
Скачиваний:
276
Добавлен:
02.05.2014
Размер:
3.88 Mб
Скачать

Глава 9.

ТЕСТИРОВАНИЕ

9.1 Введение

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

Основная цель тестирования – проверить. Выполняет ли разработанная система возложенные на нее функции и высока ли ее надежность.

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

Системный анализ

Проектирование системы

Программирование

Тестирование программ

Испытания системы

Предъявление системы пользователю.

Испытания должны продемонстрировать, что система сответствует своему назначению, удобна в эксплуатации и правильно взаимодействует с другими автоматизированными системами. Для проверки процедур обслуживания системы необходимо привлекать к ее тестированию представителей подразделений эксплуатации. Кроие того, следует проверить прпоцедуры обеспеченич зпщиты и восстановления данных, а также все процессы циклического и периодического взаимодействия между программами. План испытаний – неотъемлемая часть проекта ИС, и он должен разрабатываться на этапе проектирования системы.

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

На стадии анализа должны быть разработаны и согласованы с пользователями способы проверки «внешних» функций системы. Основное отличие между испытаниями системы и проверкой внешних функций состоит в том, что в последнем случае пользователи рассматривают объект испытаний в качестве «черного ящика» и интересуются только входными и выходными данными. В ходе испытаний необходимо рассмтреть и взаимодействующзие с ситемой неавоматизированные процедуры. Программа, график проведения приемо-сдаточных испытаний и состав комиссии утверждаются руководством подразделений-пользователей. Детальная проработка плана испытаний возлагается на аналитиков.

9.2 Подготовка тестовых данных

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

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

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

9.3 Разделение тестовых данных

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

9.4. Процедура тестирования.

  1. Общее планирование испытаний

  2. Детальное планирование испытаний

  3. Планирование проверки внешних функций.

  4. Планирование проверки интерфейсов с другими системами

  5. Планирование проверки работоспособности системы

  6. Систематизация проверок

  7. Формирование плана выполнения контрольных примеров

  8. Подготовка тестовых данных

  9. Использование тестовых данных

  10. Прогнозирование результатов проверок

  11. Разработка заданий на выполнение контрольных примеров

  12. Составление календарного плана испытаний

  13. Выполнение контрольных примеров

  14. Анализ результатов испытаний

  15. Анализ объемно-временных характеристик системы

  16. Анализ ошибок, обнаруженных в ходе испытаний

  17. Ведение библиотеки испытаний системы

  18. Утверждение результатов и завершение испытаний

Рис. 9.3. Задачи, решаемые при подготовке и проведении испытаний системы

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

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

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

  2. Сетевой график выполнения основных работ.

  3. Календарный график выполнения основных работ с указанием необходимых ресурсов

  4. Краткое описание каждой работы.

Подготовленный план должен быть тщательно рассмотрен всеми участвовавшими в его составлении. Важно, чтобы итоговый документ получил всеобщее одобрение.

Детальное планирование испытаний. По завершении проектирования системы общий план испытаний может быть уточнен и скорректирован. Ответственность за это. Как и прежде, возлагается на руководителя проекта.

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

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

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

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

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

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

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

Краткое описание проверяемых условий заносится в специальные бланки контрольных примеров.

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

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

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

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

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

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

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

  • выделить тестовые данные из имеющихся машинных файлов;

  • выделить тестовые данные из внемашинных докуметов.

Наилучший вариант – предоставить подготовку данных непосредственно пользователям с помощью форм входных документов. В отдельных случаях избыточность данных допускается сознательно.

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

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

Разработка заданий на выполнение контрольных примеров. Во время программирования могут быть подготовлены задания для выполнения контрольных примеров.

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

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

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

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

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

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

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

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

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

9.5. Хранение тестовых данных систем

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

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

9.6. Заключение.

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