Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Основные принципы тестирования.



Надёжность

Сопровождаемость

Практичность

Эффективность

Мобильность

Функциональность

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

Совокупность исходных данных и ожидаемого результата называется тестовым вариантом или просто тестом

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

Билет

  1. Отладочное тестирование.(?)
  2.  Соотношение структурного и функционального подходов. Примеры реализации.

Ответ

Соотношение подходов:

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

Пример структурного подхода:

Пример:

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

procedure InsList(var p: TList; x: TData);

begin

1  new(q); // создать новый элемент

q^.Data:=x;

2 if p=nil then begin

3    p:=q; p^.Next:=nil; // списокпуст

   end

   else begin

4    r:=p; // списокнепуст

5,6,7     while (x>=r^.Data) and (r^.Next<>nil) do r:=r^.Next;

8    q^.Next:=r^.Next; r^.Next:=q; // вставить после указанного

9   if x<r^.Data then begin

10       q^.Data:=r^.Data; r^.Data:=x; // с перестановкой значений

11 end

12 end

end;

  • Достоинства:
    • возможность предварительной оценки требуемого уровня тестового покрытия;
    • возможность учета особенностей программных ошибок;
    • высокая степень локализации ошибок
  • Недостатки:
    • сложность подготовки тестовых наборов;
    • анализ результатов тестирования требует знания деталей реализации

Пример функционального подхода:

· Построить классы эквивалентности для процедуры бинарного поиска Key в M

· Предусловия:

· M упорядочен;

· M имеет не менее одного элемента;

· нижняя граница <= верхняя граница

· Постусловия:

· элементнайден – Result=True, I=номер;

· элемент не найден – Result=False, I не определено;

 

· Формирование классов эквивалентности выполняется с помощью дерева разбиений, листья которого дают искомые классы эквивалентности

· Последовательность построения дерева:

1. проверка выполнения предусловий;

2. проверка выполнения постусловий;

3. анализ специальных требований;

4. анализ граничных условий

Специальные требования

· Учитывают специфику выполнения конкретных алгоритмов обработки

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

· массив из одного элемента;

· массив из четного числа элементов;

· массив из нечетного числа элементов

Граничные условия

· Формулируются для узлов уровня специальных требований

· В нашем примере возможны следующие классы эквивалентности:

· искомое значение хранится в первом элементе массива;

· искомое значение хранится в последнем элементе массива;

· искомое значение хранится в промежуточном элементе массива

Достоинства:

· независимость от реализации;

· относительная простота подготовки тестов;

· возможность анализа результатов специалистами предметной области

Недостатки:

· слабая локализация ошибок

 

Билет

  1. Интеграционное тестирование. Виды интеграционного тестирования. Критерии полноты тестовых наборов.
  2.  Регрессионное тестирование. Критерии завершения отладочного тестирования.

Ответ
Интеграционное тестированиеодна из фаз тестирования программного обеспечения, при котором отдельные программные модули объединяются и тестируются в группе

  • Система строится поэтапно путем добавления отдельных модулей и их групп
  • На каждом этапе после приращения системы производится ее тестирование

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

Интеграция системы может осуществляться в направлении сверху - вниз или снизу - вверх

Соответственно, различают два метода тестирования, поддерживающих процесс интеграции:

    • нисходящее тестирование интеграции,
    • восходящее тестирование интеграции

Критерии полноты тестирования

Для системного и компонентного тестирования используются специфические виды критериев тестового покрытия:

· тестирование всех типовых сценариев работы;

· тестирование всех сценариев с нештатными ситуациями;

· тестирование попарных композиций сценариев и т.д.

 

Регрессио́нное тести́рование- тестирования программного обеспечения, направленных на обнаружение ошибок в уже протестированных участках исходного кода.

Регрессионными ошибками Такие ошибки — когда после внесения изменений в программу перестает работать то, что должно было продолжать работать,

Билет

1.Системное тестирование. Виды системного тестирования. Критерии полноты тестовых наборов

Ответ

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

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

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

Основные виды системных тестов:

· функциональное тестирование (по методу «черного ящика»),

· тестирование восстановления,

· тестирование безопасности,

· стрессовое тестирование,

· тестирование производительности

Критерии полноты

· Для системного и компонентного тестирования используются специфические виды критериев тестового покрытия:

· тестирование всех типовых сценариев работы;

· тестирование всех сценариев с нештатными ситуациями;

· тестирование попарных композиций сценариев и т.

Билет

1.Особенности объектно-ориентированного тестирования. Расширение области применения тестирования. Критерии тестирования моделей. Тестирование классов. Тестирование кластеров и потоковое тестирование.

Ответ

· Тестирование объектно-ориентированных программных средств имеет ряд существенных отличий от классического тестирования:

· расширение области применения тестирования;

· изменение методики тестирования;

· учет особенностей ООП при проектировании тестовых вариантов

Расширение области применения

· Разработка объектно-ориентированного программного средства начинается с создания его визуальных моделей

· Модели этапа анализа и этапа проектирования определяют основные функциональные и структурные свойства разрабатываемой системы, поэтому необходимо проводить тестирование этих моделей !

Тестирование классов

· Автономное тестирование класса предполагает разработку драйвера, который будет:

· создавать экземпляры тестируемого класса;

· вызывать методы тестируемого класса и передавать им фактические параметры из тестовых вариантов;

· принимать результаты выполнения тестируемых методов

· Методы этого класса создают объекты тестируемого класса и вызывают их методы, в том числе и статические

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

Тестирование потоков

· Объектом интеграции является набор классов, обслуживающих единичный ввод данных в систему

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

· Для контроля побочных эффектов применяют регрессионное тестирование

Кластерное тестирование

· Объектом тестирования является кластер–набор сотрудничающих классов

· Для выделения кластеров можно использовать диаграммы взаимодействия, соответствующие отдельным прецедентам

Билет

Понятие автоматизированного тестирования. Автотесты. Достоинства и недостатки автоматизированного тестирования. Средства автоматизированного тестирования.

Ответы

Возрастание роли тестирования в процессе разработки ПО потребовало замены традиционного «ручного» тестирования автоматизированным, основанным на использовании специальных инструментальных средств

l Основная идея автоматизированного тестирования заключается в использовании автотестов – записанных на специальных скриптовых языках действий по проверке качества программ

l Современные средства автоматизации позволяют вести запись действий тестировщика и создавать заготовку для автотеста

Преимущества

l Экономия времени – программа-робот гораздо быстрее перебирает тестовые варианты, чем любой человек 

l Исключение человеческого фактора – вероятность совершения ошибки при выполнении человеком рутинных операций достаточно высока

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

l Наличие инструментария фиксации ошибок и результатов – это позволяет моделировать различные ошибочные ситуации, строить любые отчеты и диаграммы

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

Недостатки

l Временные затраты на создание, поддержку и тестирование (!) тестов – автоматизированное тестирование всегда начинается с тестирования вручную, поскольку необходимо показать роботу, как, что и с чем он делает

l Неприменимость к некоторым объектам, оцениваемым субъективно – с помощью автомата нельзя протестировать, например, эргономику интерфейса приложения

l Необходимость программистских навыков у тестировщика – настоящая профессиональная автоматизация тестирования невозможна без работы непосредственно с кодом тестового скрипта

l Чувствительность к среде, программному и аппаратному окружению тестируемого приложения - один и тот же тест одной и той же версии повторно может проходить совершенно иначе, чем в первый раз

Средства автоматизации

Чтобы робот-тестировщик мог выполнить необходимую работу, необходимо:

– построить репозиторий с подробным описанием всех тестируемых объектов;

– записать библиотеку функций, методов или элементарных действий с объектами (если не подходят стандартные методы);

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

 

Билет







Последнее изменение этой страницы: 2019-05-18; Просмотров: 1066; Нарушение авторского права страницы


lektsia.com 2007 - 2022 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.026 с.) Главная | Обратная связь