Отчет по производственной практике в компании "Software Technologies"

Автор работы: Пользователь скрыл имя, 19 Февраля 2011 в 14:22, отчет по практике

Описание работы

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

Файлы: 1 файл

Отчет по производственной практике.doc

— 1.83 Мб (Скачать файл)

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

 

      3. Формирование критериев  и выбор математической  модели.

Управляющий граф программы(УГП)  – это структурная модель программы, которая показывает связь между ее элементами. В модели вершины графа – операторы разветвления и объединения; дуги – операторы обработки и передачи данных. На рисунке 7 изображен упрощенный пример УГП.

Рисунок 7.

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

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

     Если рассматривать в качестве примера граф, изображенный на рисунке 7, то последовательность обхода дуг графа a  b  c  b  f  e  g  d  e  g даст стопроцентное покрытие операторов кода программы.

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

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

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

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

 

 

3. Оптимизация  процесса построения тестовых наборов.

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

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

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

     Эйлеровым путем графа G(V,E) называется путь e1,e2…et, такой, что каждое ребро появляется ровно 1 раз., то есть t=|E|.

     Граф  называется Эйлеровым, если он имеет замкнутый Эйлеровый путь, и полуэйлеровым, если существует Эйлеров путь, не являющийся замкнутым.

     Рассмотрим  процесс построения графа де Брейна на основе управляющего графа программы.

  1. Исходный граф программы преобразуется в граф Де Брейна, то есть таким образом, что каждая дуга становится вершиной.
  2. Везде, где в исходном графе одна дуга входит в вершину, а вторая дуга выходит из этой вершины, в графе Де Брейна строится дуга из вершины 1 в вершину 2. Например, на исходном управляющем графе программы, изображенном слева на рисунке 8, дуга «а» входит в вершину, из которой выходит дуга «b», на графе Де Брейна справа дуга соединяет вершины «а» и «b».
  3. После того, как граф Де Брейна построен, следует обойти все его ветви, записывая пройденные вершины. Для Эйлерова графа это будет Эйлеров путь.

 Рисунок 8.

     Для графа, изображенного на рисунке 8 справа, получим последовательность обхода дуг управляющего графа программы a  b  c  b  f  e  c  b  g  d  e  f  e  g.

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

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

 

4. Формы документов.

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

Алгоритм  преобразования входных документов в выходные представлен в виде сценариев в разделе 2.

 

План  тестирования (Test plan)

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

Название  раздела Описание
Введение (Introduction) В разделе приводятся ссылки на исходные документы, описываются  общий подход, обеспечивающий полноту  тестирования, описываются требования к итерационности разработки на основе снижения рисков и стоимости проведения полного тестирования.
Тестируемые требования (Requirements to be tested) Приводятся  тестируемые требования (указываются  ссылки на требования). Устанавливаются  правила идентификации и прослеживаемости документов для гарантированного тестирования всех запланированных требований.
Не тестируемые требования (Requirements not to be tested) Описываются требования (указываются ссылки), для которых не планируются проведение тестирования.
Методы  тестирования (Approach) Основной раздел плана. Включает следующую информацию по всем группам требований, планируемых  к тестированию:
  • Ссылка на требования (идентификатор требования)
  • Метод тестирования: указывается общий способ тестирования (подход к тестированию), тип тестирования (ручное или автоматизированное), при необходимости дается обоснование специальных методов тестирования
  • критерий успешности тестов
  • требования к среде тестирования
  • требуемые ресурсы
  • ссылка на тестовую спецификацию (идентификатор тестовой спецификации)
Требования  к среде тестирования (Environmental needs) Указываются общие  требования к установке стенда, инструментальным средствам, среде тестирования, требования к разработке дополнительных программ (имитационных, управляющих, поддерживающих) и пр.
Требуемые Ресурсы (Staffing and Training Needs) Указываются общие  потребности в персонале с  учетом уровня квалификации, необходимость  обучения для проведения тестирования, требования к времени тестирования
Этапы тестирования (Schedule) Указывается этапы тестирования в связи с этапами разработки и указанием видов тестирования: модульное тестирование, интеграционное тестирование, комплексное тестирование, системное тестирование, опытная эксплуатация (beta – тестирование).
Критерии  тестирования (Pass criteria) Указываются критерии завершения тестирования на различных  этапах тестирования. В качестве стандартного критерия завершения тестирования принимается достижение заданного уровня плотности ошибок

 

Тестовые спецификации (test case specifications)

Для каждой тестовой спецификации указываются следующие разделы:

Название  раздела Описание
Идентификатор (Identifier) Указывается идентификатор  тестовой спецификации, приводимый в плане тестирования.
Тестируемый элемент (test item) Указывается модуль, подсистема или приводится ссылка на описание элемента в техническом проекте.
Описание  входа (Input Specification) Описание входной  информации, источников информации, условий ввода.
Описание выхода (Output Specification) Описание ожидаемой  выходной информации или ожидаемой реакции, полностью идентифицирующей корректность работы тестируемого элемента
Метод тестирования (Approach Refinements) Указывается способ тестирования (детальное описание).
Требования  к среде тестирования (Environmental needs) Указываются специальные требования к среде тестирования для данного теста
Процедурные требования (Special Procedural Requirements) Описываются специальные  требования к тестовой процедуре, которая  будет выполнять данный тест
Взаимозависимости (Intercase dependences) Указываются взаимозависимости  между тестовыми спецификациями

 

Тестовые процедуры (Test-Procedure Specifications)

 
Название  раздела Описание
Идентификатор тестовой процедуры (Identifier) Указывается идентификатор  тестовой процедуры
Цель (Purpose) Приводится цель тестовой процедуры. Даются ссылки на исполняемые тестовые спецификации (идентификаторы).
Специальные требования (Special Requirements) Указываются специальные  требования, которые необходимо выполнить для обеспечения работы тестовой процедуры.
Установка (Set Up) Указываются предварительные  действия, которые необходимы для  установки и запуска тестовой процедуры.
Процедурные действия (Procedure steps) Последовательность  шагов, выполняемая при проверке тестируемого элемента для ручного  тестирования. Для автоматического тестирования указывается ссылка на программу тестирования.
Критерии  оценки результата Указываются критерии оценки результатов выполнения тестовой процедуры

 

Отчет тестирования (Test incident report)

.

Название  раздела Описание
Идентификатор отчета (Identifier) Указывается уникальный идентификатор, присвоенный отчету о тестировании
Тестируемый элемент (Test element) Указывается тестируемый  элемент, включая версию элемента.
Тестовая  процедура (Test Procedure) Дается ссылка на тестовую процедуру (идентификатор).
Тестовая  спецификация (Test Case) Дается ссылка на тестовую спецификацию (идентификатор).
Описание ошибки (Defect Description) Дается детальное  описание фактического результата выполнения теста по сравнению с ожидаемым в соответствии с тестовой спецификацией
Оценка  серьезности Указывается оценка тестировщиком степени серьезности  ошибки

 

Итоговый отчет  тестирования (Test summary report)

 
Название  раздела Описание
Идентификатор отчета (Identifier) Указывается уникальный идентификатор, присвоенный отчету
Резюме (Summary) Приводится  ссылка на оттестированную подсистему (систему) и ее версию. Приводится ссылка на план тестирования или часть плана (главы) для которого выпускается отчет. Приводятся итоговые данные по полноте тестирования в соответствии с планом и результирующие данные по уровню не исправленных ошибок.
Отклонения (Variances) Указывается все  отклонения принятые в тестовых спецификациях и тестовых процедурах относительно плана тестирования. Приводятся причины или обоснования принятых отклонений.
Оценка  полноты тестирования (Comprehensiveness Assessment) Проводится  оценка полноты тестирования. Дается список пунктов плана, которые выполнены  не полностью. Приводятся причины неполного  тестирования. 
Суммарные результаты (Summary Results) Дается общее  описание неразрешенных ошибок.
Оценка (Evaluation) Приводится  общая оценка результатов тестирования по всем элементам тестирования (полнота  тестирования, плотность неразрешенных  ошибок)

Информация о работе Отчет по производственной практике в компании "Software Technologies"