Обнаружение ошибок спецификации

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

Общие положения

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

Эта система включает в себя следующие функции:

  1. Администрирование и эксплуатация.
    1. Изменение абонентских данных. Эта задача состоит в установлении и снятии дополнительных видов обслуживания: организации и эксплуатации абонентских групп, обнаружение злонамеренных вызовов; обслуживание абонентских, соединительных линий и каналов — измерение их параметров, организация групп направлений; установка ограничений и слежение за перегрузкой, установка кода перехвата соединений для направления по другим маршрутам; запись и закрепление за терминалами стандартных сообщений, маршрутизация (назначение маршрутов, групп линий и отдельных каналов).
    2. Измерение трафика. Контроль и регулировка трафика.
    3. Тарификация. Установка и корректировка тарифов. Учет стоимости разговоров.
    4. Обеспечение документирования стоимости. Обеспечение надежности подсчета стоимости.
    5. Обслуживание системы ОКС. Установка пунктов сигнализации. Закрепление каналов за системой ОКС. Обслуживание подсистем пользователя. Обслуживание подсистемы управлени
      я сетью сигнализации.
  2. Техническое обслуживание.
    1. Измерение и тестирование абонентских линий.
    2. Измерение и тестирование соединительных линий и каналов.
    3. Диагностика и устранение повреждений.
    4. Обслуживание и профилактика аппаратных средств.
    5. Ведение документации об аварийных состояниях.
    6. Модификация и обеспечение надежного функционирования программного обеспечения.
    7. Модификация и ведение баз данных.

Аппаратура и методы технической эксплуатации и обслуживания

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

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

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

Диагностические программы позволяют оператору определить место повреждения и сводят восстановление к замене элемента (Типового Элемента Замены — ТЭЗ).

Все операции документируются. Для общения с человеком применяется либо рекомендованный МККТТ язык MML (Man Machine Language), либо система типовых окон и меню. Каждое вводимое сообщение контролируется на правильность, и выполнение подтверждается.

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

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

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

В это комплекс обязательно должны входить:

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

Типовая процедура технического обслуживания

Типовая процедура обслуживания заключается в следующем.

  1. Оповещение оператора визуальными и акустическими средствами. Визуальные сообщения указывают на адрес и характер повреждения.
  2. Оператор подтверждает принятие аварийного сигнала для технического обслуживания.
  3. Оператор начинает на дисплее процедуру технического обслуживания.
  4. Система ведет оператора до момента локализации повреждения.
  5. Оператор блокирует устройство и запускает программу диагностики, которая рекомендует ему ТЭЗ (Типовой Элемент Замены).
  6. Оператор снимает ТЭЗ и ставит новый.
  7. Проводится тестирование нового ТЭЗа.
  8. При положительном результате тестирования снимается блокировка.
  9. Станция вводит блок в конфигурацию и сообщает оператору об устранении отказа.

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

Сопровождение программного обеспечения

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

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

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

Меры по обеспечению надежности системы

Для поддержания надежности системы используются следующие принципы:

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

При этом возможно несколько уровней восстановления (таблица 7.1).

Таблица
7.1.
Уровни восстановления системы

Уровень Влияние на обслуживание Время действия
Восстановление одного процесса Разрушение одного соединения <10 с
Запуск проверочной программы Разрушение одного соединения <2 с
Восстановление отдельных приборов Задержка выполнения новых запросов на обслуживание

Сброс устанавливаемых соединений

1,5-3 мин. (без перезагрузки памяти)

3-5 мин. (с перезагрузкой памяти)

Полное восстановление Задержка выполнения новых запросов

Сброс всех соединений

1,5-3 мин. (без перезагрузки памяти)

3-5 мин. (с перезагрузкой памяти)

Вопросы поддержки сети

Эта тема относится к большому разделу TMN (Telecommunication Management Network) и будет рассмотрена далее. В соответствии с концепцией TMN система коммутации должна поддерживать ряд центров и рабочих мест, число и иерархия которых определяются принятой организацией обслуживания на сети (например, проблемно-ориентированными группами обслуживания). В связи с этим станция должна поддерживать работу операторов для выполнения отдельных задач. Полномочия операторов должны защищаться персональным кодом, также проводится регистрация входа пользователей и их действий.

Документация

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

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

  • на уровне спецификации (specification — описание перечня задач, выполняемых программным обеспечением);
  • на уровне описания (description — описание того, из чего состоит и как сделано программное обеспечение).

Должны быть составлены соответствующие руководства, сопровождаемые алгоритмами по основным разделам: Администрирование и техническое обслуживание; Эксплуатация.

Система документирования программного обеспечения на основе рекомендаций ITU рассмотрена в [12].

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

Перейти

При распределении времени работы компьютера станционные процедуры и процессы находятся на _______ уровне.

Перейти

Автоабонент предназначен для _______

Перейти

Спецификация — это описание _______

Перейти

Сетевой элемент – это _______

Перейти

Информационное – дерево показывает _______

Перейти

Через УАК 2 проходит _______ нагрузка

Перейти

Интеграция станции в сеть — это _______

Перейти

Сопровождение программного обеспечения требуется для _______

Перейти

Глобальное состояние вызова применяется для _______

Перейти

Главная /
Телекоммуникационные сети и устройства /
Обнаружение ошибок и поддержание работы системы обеспечиваются _______

вопрос

Правильный ответ:

системой самоконтроля

резервированием

отображением или распечаткой информации

всеми средствами указанными выше

Сложность вопроса

88

Сложность курса: Телекоммуникационные сети и устройства

70

Оценить вопрос

Очень сложно

Сложно

Средне

Легко

Очень легко

Спасибо за оценку!

Комментарии:

Аноним

Зачёт в студне отлично. Мчусь отмечать отмечать отлично в зачётке по интуит

29 сен 2019

Аноним

Зачёт сдан. Лечу в клуб отмечать сессию интуит

29 июн 2018

Оставить комментарий

Другие ответы на вопросы из темы сетевые технологии интуит.

  • #

    1.Информация синхронизации цикла в ИКМ 30 переносится в__________ кадре

  • #

    В процессе передачи команд медленными считаются устройства выполняющие команды за время _____

  • #

    В случае освобождения исходящей соединительной линии передается сигнал_____.

  • #

    Интерфейс _____ служит для взаимодействия систем с системами поддержки функционирования других сетей TMN

  • #

    Для формата кодов пунктов сигнализации региональной сети – индикатор сети равен _________

Например, в протоколе TCP, обнаружение ошибок обеспечивается с помощью специального поля в заголовке, которое называется checksum (контрольная сумма). Контрольная сумма вычисляется передающей программой TCP по всему сегменту TCP и помещается в поле checksum. Принимающая программа TCP снова рассчитывает контрольную сумму, если значение вновь вычисленной контрольной суммы будет совпадать со значением контрольной суммы, рассчитанной на передаче, то принимающая программа TCP считает, что сегмент принят правильно (без искажений). Если же значения контрольных сумм не совпадают, то значит сегмент искажён; таким образом обнаружена ошибка. Об обнаружении ошибки принимающая программа TCP сообщает передающей программе TCP, не передавая квитанции подтверждения. А рас квитанция не получена принимающей

программой TCP, значит произошла ошибка.

Если квитанция не пришла к отправителю, то это означает, что либо сегмент искажён, либо сегмент потерян (если сегмент потерян, то и квитанция на него не придёт), либо потеряна квитанция.

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

3.2.7 Исправление ошибок.

Например, в протоколе TCP исправление ошибок обеспечивается за счёт повторной передачи тех сегментов,

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

3.2.8 Перенос срочных данных.

Эта функция имеет реализацию в протоколе TCP. В формате поля заголовка TCP есть поле под названием URG, если это поле установлено в 1, то сегмент с таким значением поля URG будет обрабатываться вне очереди. Например, если приёмный буфер получателя будет полностью заполнен и при этом придёт срочный сегмент, то он будет принят, за счёт вытеснения (удаления) других не срочных сегментов.

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

3.3 Фаза разъединения соединения.

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

Разъединение соединения может включать следующие функции:

3.3.1Уведомление о причине разъединения.

3.3.2Идентификация разъединившегося транспортного

соединения.

3.3.3Перенос данных.

4.Приостановка и продолжение транспортного соединения.

С помощью функции приостановки соединения происходит

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

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

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

С помощью функции продолжить, транспортный уровень вновь устанавливает сетевое соединение и обмен данными может быть продолжен.

Функции транспортного уровня в режиме без установления соединения:

1.Отображение транспортного адреса на сетевой адрес.

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

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

3. Обнаружение ошибок и контроль качества обслуживания.

Примером транспортного протокола, работающего в режиме без установления соединения и выполняющего эту функцию, может служить протокол дейтаграмм пользователя UDP (User Datagram Protocol).

В отличие от протокола TCP, в протоколе UDP отсутствует подтверждение приёма блоков данных, что делает UDP намного проще, чем TCP, но относительно менее надёжным. Но протокол UDP может обнаруживать ошибки в дейтаграммах, делает он это с помощью поля checksum, назначение которого такоеже как и в протоколе TCP. Если протокол UDP обнаруживает ошибку в дейтаграмме, то он сообщает об этом отправителю и ничего более. Этот механизм является единственным средством для простого контроля качества обслуживания. Если, например получатель регистрирует слишком большое количество ошибок, то он может отказаться от передачи данных на данный момент и возобновить её позже.

Несмотря на то, что протокол UDP не обеспечивает высокую

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

5.1 КЛАССЫ И ТИПЫ ТРАНСПОРТНОГО ОБСЛУЖИВАНИЯ

Определены два типа транспортного обслуживания:

1.Обслуживание в режиме с установлением соединения.

2.Обслуживание в режиме без установления соединения.

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

В модели OSI нет никаких определённых классов

транспортного обслуживания.

5.2КАЧЕСТВО ТРАНСПОРТНОГО ОБСЛУЖИВАНИЯ В РЕЖИМЕ

СУСТАНОВЛЕНИЕМ СОЕДИНЕНИЯ

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

С помощью параметров качества обслуживания пользователь транспортных услуг TS (Transport Service) задаёт свои требования к тем услугам, которыми он будет пользоваться, то есть исходя из этих требований транспортный уровень будет знать какое качество обслуживания нужно обеспечить для того или иного пользователя TS.

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

качества обслуживания это может означать, что:

1.Задержка увеличивается;

2.Пропускная способность уменьшается;

3.Коэффициент ошибок повышается;

4.Приоритет становиться ниже;

5.Вероятность отказа становится выше;

6.Уровень защиты транспортного соединения понижается.

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

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

I. Виды тестирования по цели

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

  • Функциональные.
  • Нефункциональные.
  • Связанные с изменениями.

Функциональные виды тестирования

Функциональные тесты базируются на функциях и особенностях, а также на взаимодействии с другими системами и могут быть представлены на всех уровнях тестирования: компонентном или модульном (Component/Unit testing), интеграционном (Integration testing), системном (System testing), приемочном (Acceptance testing). Функциональные виды тестирования рассматривают внешнее поведение системы. Далее перечислены одни из самых распространенных видов функциональных тестов.

Функциональное тестирование рассматривает заранее указанное поведение и основывается на анализе спецификаций функциональности компонента или системы в целом.

1.Функциональные тесты основываются на функциях, выполняемых системой, и могут проводиться на всех уровнях тестирования (компонентном, интеграционном, системном, приемочном). Как правило, эти функции описываются в требованиях, функциональных спецификациях или в виде случаев использования системы (use cases).

Тестирование функциональности может проводиться в двух аспектах:

  • Требования.
  • Бизнес-процессы.

Тестирование в аспекте «требования» использует спецификацию функциональных требований к системе, как основу для дизайна тестовых случаев (Test Cases). В этом случае необходимо сделать список того, что будет тестироваться, а что нет, приоритезировать требования на основе рисков (если это не сделано в документе с требованиями), а на основе этого приоритезировать тестовые сценарии (test cases). Это позволит сфокусироваться и не упустить при тестировании наиболее важный функционал.

Тестирование в аспекте «бизнес-процессы» использует знание бизнес-процессов, которые описывают сценарии ежедневного использования системы. В этом аспекте тестовые сценарии (test scripts), как правило, основываются на случаях использования системы (use cases).

2. Тестирование безопасности (Security and Access Control Testing)

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

Общая стратегия безопасности основывается на трех основных принципах:

  • Конфиденциальность.
  • Целостность.
  • Доступность.

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

Существует два основных критерия при определении понятия целостности:

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

3. Тестирование взаимодействия или Interoperability Testing

Тестирование взаимодействия (Interoperability Testing) – это функциональное тестирование, проверяющее способность приложения взаимодействовать с одним и более компонентами или системами и включающее в себя тестирование совместимости (compatibility testing) и интеграционное тестирование (integration testing).

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

Нефункциональные виды тестирования

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

1.Все виды тестирования производительности

Тестирование производительности ( Performance testing ).

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

Измерение времени выполнения выбранных операций при определенных интенсивностях выполнения этих операций.

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

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

Исследование производительности на высоких, предельных, стрессовых нагрузках.

Стрессовое тестирование ( Stress Testing )

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

Объемное тестирование ( Volume Testing )

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

Измерение времени выполнения выбранных операций при определенных интенсивностях выполнения этих операций.

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

Тестирование стабильности или надежности( Stability / Reliability Testing)

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

В англоязычной терминологии вы можете так же найти еще один вид тестирования — Load Testing — тестирование реакции системы на изменение нагрузки (в пределе допустимого). Нам показалось, что Load и Performance преследуют все же одну и ту же цель: проверка производительности (времени отклика) на разных нагрузках. Собственно поэтому мы и не стали разделять их. В то же время кто то может разделить. Главное все таки понимать цели того или иного вида тестирования и постараться их достигнуть.

2. Тестирование установки (Installation Testing)

Тестирование установки направленно на проверку успешной инсталляции и настройки, а также на обновление или удаление программного обеспечения.

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

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

В распределенных системах, где приложение разворачивается на уже работающем окружении, простого набора инструкций может быть мало. Для этого часто пишется план установки (Deployment Plan), включающий не только шаги по инсталляции приложения, но и шаги отката (roll-back) к предыдущей версии (в случае неудачи). Сам по себе план установки также должен пройти процедуру тестирования для избежания проблем при выдаче в реальную эксплуатацию. Особенно это актуально, если установка выполняется на системы, где каждая минута простоя — это потеря репутации и большого количества средств, например: банки, финансовые компании или даже баннерные сети. Поэтому тестирование установки можно назвать одной из важнейших задач по обеспечению качества программного обеспечения.

3. Тестирование удобства пользования (Usability Testing)

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

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

Тестирование удобства пользования дает оценку уровня удобства использования приложения по следующим пунктам:

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

Правильность ( accuracy) — сколько ошибок сделал пользователь во время работы с приложением (меньше — лучше).

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

Эмоциональная реакция ( emotional response ) – как пользователь себя чувствует после завершения задачи — растерян, испытал стресс? Порекомендует ли пользователь систему своим друзьям? (положительная реакция — лучше).

Виды тестирования связанные с изменениями

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

Ниже перечислены виды тестирования, которые необходимо проводить после установки программного обеспечения, для подтверждения работоспособности приложения или правильности осуществленного исправления дефекта:

  1. Дымовое тестирование (Smoke Testing)
  2. Регрессионное тестирование (Regression Testing)
  3. Тестирование сборки (Build Verification Test)
  4. Санитарное тестирование или проверка согласованности/исправности (SanityTesting)

Дымовой тест (англ. Smoke testing или smoke test, дымовое тестирование) — в тестировании программного обеспечения означает минимальный набор тестов на явные ошибки. Дымовой тест обычно выполняется программистом; не проходившую этот тест программу не имеет смысла отдавать на более глубокое тестирование.

Регрессио́нное тести́рование (англ. regression testing, от лат. regressio — движение назад) — собирательное название для всех видов тестирования программного обеспечения, направленных на обнаружение ошибок в уже протестированных участках исходного кода. 

Тестирование сборки (Build Verification Test), как и дымное тестирование, направленно для предварительной проверки разрабатываемого программного продукта перед запуском полномасштабного тестирования по всем параметрам, проводимого командой тестировщиков. Проводится оно для того, чтобы знать – готов ли релиз для такого этапа разработки ПО, как Тестирование или же он еще нуждается в доработке.

Тестирование сборки состоит из набора коротких тестов, которые и определяют готовность сборки.

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

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

Цель санитарного тестирования — проверить «рациональность» системы после изменений, чтобы продолжить более тщательное тестирование.

II. Виды тестирования по степени автоматизации

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

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

Мифы о ручном тестировании:

– кто угодно может провести ручное тестирование

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

– автоматизированное тестирование мощнее ручного

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

– ручное тестирование – это просто

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

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

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

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

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

автоматизация тестирования кода (Code-driven testing) – тестирование на уровне программных модулей, классов и библиотек (фактически, автоматические юнит-тесты);

автоматизация тестирования графического пользовательского интерфейса (Graphical user interface testing) – специальная программа (фреймворк автоматизации тестирования) позволяет генерировать пользовательские события – нажатия клавиш, клики мышкой, и отслеживать реакцию программы на эти действия – соответствует ли она спецификации.

автоматизация тестирования API (ApplicationProgrammingInterface) – программного интерфейса программы. Тестируются интерфейсы, предназначенные для взаимодействия, например, с другими программами или с пользователем. Здесь опять же, как правило, используются специальные фреймворки.

Автоматические тесты – это полноценные программы, просто предназначенные для тестирования.

III. Виды тестирования по запуску кода

Статическое тестирование (static testing) — тестирование без запуска кода на исполнение.

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

Статическое тестирование начинается на ранних этапах жизненного цикла ПО и является, соответственно, частью процесса верификации.

Можно поделить статическое тестирование на 2 типа:

1. Обзоры (Review)

2. Статический анализ (Static Analysis)

Обзоры

Обзоры (Review) – проверка обычно используется для поиска и устранения ошибок или неясностей в документах. Это могут быть требования, дизайн, тестовые случаи и так далее.

В свою очередь обзоры делятся на:

  1. Неформальные. При неофициальном рассмотрении создатель документов показывает содержание документов аудитории. Каждый присутствующий высказывает свое мнение, что позволяет выявить недостатки на ранней стадии.
  2. Сквозные просмотры (Walkthroughs). Выполняются опытным человеком или экспертом для проверки отсутствия дефектов, с целью предупреждения возникновения проблем на этапе разработки или тестирования.
  3. Экспертная оценка. Означает проверку документов для выявления и исправления дефектов. В основном это делается в команде.
  4. Инспектирование ПО. Это, в большинстве, проверка документа вышестоящим органом, например, проверка требований к программному обеспечению.

Статический анализ

Статический анализ (Static Analysis) – код, написанный разработчиками, анализируется на наличие структурных дефектов, которые могут привести к ошибкам.

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

— неиспользуемые переменные,

— мертвый код,

— бесконечные циклы,

— переменные с неопределенными значениями,

— неправильный синтаксис.

В рамках этого подхода тестированию могут подвергаться:

  1. Документы (требования, тест-кейсы, описания архитектуры приложения, схемы баз данных и т.д.).
  2. Графические прототипы (например, эскизы пользовательского интерфейса).
  3. Код приложения (что часто выполняется самими программистами в рамках аудита кода (code review), являющегося специфической вариацией взаимного просмотра в применении к исходному коду). Код приложения также можно проверять с использованием техник тестирования на основе структур кода.
  4. Параметры (настройки) среды исполнения приложения.
  5. Подготовленные тестовые данные.

Динамическое тестирование (dynamic testing) — тестирование с запуском кода на исполнение. Запускаться на исполнение может как код всего приложения целиком (системное тестирование), так и код нескольких взаимосвязанных частей (интеграционное тестирование), отдельных частей (модульное или компонентное тестирование) и даже отдельные участки кода.

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

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

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

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

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

IV. Виды тестирования по времени проведения

Альфа и Бета тестирование

Альфа-тестирование — имитация реальной работы с системой штатными разработчиками, либо реальная работа с системой потенциальными пользователями/заказчиком. Чаще всего альфа-тестирование проводится на ранней стадии разработки продукта, но в некоторых случаях может применяться для законченного продукта в качестве внутреннего приёмочного тестирования. Иногда альфа-тестирование выполняется под отладчиком или с использованием окружения, которое помогает быстро выявлять найденные ошибки. Обнаруженные ошибки могут быть переданы тестировщикам для дополнительного исследования в окружении, подобном тому, в котором будет использоваться ПО.

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

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

Дымовое тестирование или Smoke Testing

Понятие дымовое тестирование пошло из инженерной среды:

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

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

Регрессионное тестирование

Регрессио́нное тести́рование (англ. regression testing, от лат. regressio — движение назад) — собирательное название для всех видов тестирования программного обеспечения, направленных на обнаружение ошибок в уже протестированных участках исходного кода. Такие ошибки — когда после внесения изменений в программу перестает работать то, что должно было продолжать работать, — называют регрессионными ошибками (англ. regression bugs).

Регрессионное тестирование (по некоторым источникам) включает new bug-fix — проверка исправления найденного ранее дефекта, old bug-fix — проверка, что исправленный ранее и верифицированный дефект не воспроизводится в системе снова, а также side-effect — проверка того, что не нарушилась работоспособность работающей ранее функциональности, если ее код мог быть затронут при исправлении некоторых дефектов в другой функциональности. Обычно используемые методы регрессионного тестирования включают повторные прогоны предыдущих тестов, а также проверки, не попали ли регрессионные ошибки в очередную версию в результате слияния кода.

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

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

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

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

Приемочное тестирование или Приемо-сдаточное испытание (User Acceptance Testing)

Формальный процесс тестирования, который проверяет соответствие системы требованиям и проводится с целью:

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

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

  • продукт достиг необходимого уровня качества;
  • заказчик ознакомлен с Планом Приемочных Работ (Product Acceptance Plan) или иным документом, где описан набор действий, связанных с проведением приемочного тестирования, дата проведения, ответственные и т.д.

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

V. Виды тестирования по доступу к коду (методы тестирования)

Метод белого ящика

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

Метод черного ящика

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

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

VI. Виды тестирования по позитивности сценария

Позитивное тестирование – это тестирование с применением сценариев, которые соответствуют нормальному (штатному, ожидаемому) поведению системы. С его помощью мы можем определить, что система делает то, для чего и была создана. Например, умножение на калькуляторе цифр 3 и 5.

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

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

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

Источники:

  1. https://qastart.by/class/vidi-testirovaniya-m/4-vidi-testirivaniya-po-celi
  2. http://www.protesting.ru/testing/testtypes.html
  3. https://qalight.ua/ru/baza-znaniy/ruchnoe-i-avtomatizirovannoe/
  4. https://studfile.net/preview/2426273/page:7/
  5. https://vk.com/@zapiskisedogotestera-vidy-testirovaniya-po-zapusku-koda
  6. https://qalight.ua/ru/baza-znaniy/testirovanie-sborki/
  7. https://intellect.icu/sanitarnoe-testirovanie-ili-proverka-soglasovannosti-ispravnosti-ili-sanity-testing-6092

Понравилась статья? Поделить с друзьями:
  • Обнаружены ошибки при сохранении файла excel
  • Обнаружение ошибок при передаче информации
  • Обнаружены ошибки при сохранении excel возможно
  • Обнаружение ошибок активации
  • Обнаружены ошибки при сохранении excel 2016