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

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

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

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

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

Учёт риска и неопределённости при принятии управленческих решений

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

Статическое тестирование — производят с использованием ручных методов (по данным IBM определяются 30 – 80% ошибок). Собирается собрание, цель которого ‑ обнаружение ошибок, но не их устранение. Процедура статистического тестирования включает инспекцию исходного текста с применением набора правил и приемов обнаружения ошибок. Обычно группа состоит из 4-х человек: руководитель группы (не автор), автор, проектировщик и специалист по тестированию.

Текст раздается заранее – листинг программы и внешние спецификации.

Методы проектирования тестовых наборов данных

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

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

Функциональное тестирование – тестирование по “входу-выходу”, абстрагируется от логики программы. Исходная информация для тестирования – функциональные спецификации.

Понятие “эффективного” тестового набора данных связано с невозможностью полного перебора вариантов. Пример: имеем графическое изображение передачи управления на участке программы (рисунок 9), который выполняется в цикле 20 раз.

Линейный участок программы, заканчивается ветвлением.

A/B ТЕСТИРОВАНИЕ простыми словами. Как провести АБ тест правильно?

Дуги – варианты передачи управления.

Рисунок 9 — Передача управления на участке программы

Всего количество тестов для участка N=6*20=120, если выполнение каждой ветви исключает выполнение других ветвей.

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

Рассмотрим узел ветвления, в котором заданы два условия (рисунок 10).

Рисунок 10 – Узел ветвления с двумя условиями

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

а) A > 2 ; C = D; Значения переменных: A = 3; C =0; D=0;

Рассмотрены не все возможные варианты, поэтому возможны ошибки при контроле логики.

Структурное тестирование (“белый ящик”) – при разработке тестовых наборов данных руководствуются следующими критериями:

  1. Покрытие операторов – тестовый набор вызывает выполнение каждого оператора в программе хотя бы один раз. Критерий слабый, недостаточное условие тестирования.
  2. Покрытие узлов ветвления- (покрытие ветвлений) – разработка такого тестового набора, который обеспечивает переход по веткам “истина” и “ложь” в каждом узле ветвления хотя бы один раз (пример приведен выше).
  3. Покрытие условий — если узел ветвления содержит более одного условия, то каждое условие должно быть выполнено хотя бы один раз в каждой точке входа в программу.
  4. Комбинаторное покрытие условий– аналогично предыдущему, но используются все возможные варианты:
  • Ид. = 0 символов;
  • Ид. > 8 символов.
  • Почтовый – 1;
  • Телеграфный – 2.
  • А;
  • b;
  • .
  • цифра;
  • подчеркивание;
  • другой символ.
Читайте также:
В какой программе есть бегущая строка

Источник: studfile.net

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

Применяемые методы тестирования: статический, детерминированный, сто­хастический и в реальном масштабе времени.

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

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

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

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

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

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

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

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

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

Основные методы ручного тестирования: инспекции исход­ного текста и сквозные просмотры.

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

Инспекции исходного текста — набор правил и приемов обна­ружения ошибок при изучении текста программы группой специалистов. В инспектирующую группу входят 4 человека: пред­седатель; автор программы; проектировщик и специалист по тестированию.

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

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

Защита информации. Основные понятия. Классификация угроз

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

Читайте также:
Лучшая программа для установки пароля на папку

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

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

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

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

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

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

Преднамеренные угрозы классифицируются как активные и пассивные. Пассивные – это те угрозы, которые не касаются ИС, не влияют на ее функционирование. Направлены, в основном, на раскрытие информации.

Активные угрозы имеют целью нарушение нормального функционирования ИС посредством целенаправленного воздействия на аппаратные, программные и информационные ресурсы. Источник — действия злоумышленников, компьютерные вирусы.

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

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

Теорема Хеза.

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

Рассмотрим пример: “Поставщики” Post(Pname, Adr, Tov, Kol).

Ключем являются атрибуты: Pname (имя поставщика), Tov(товар).

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

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

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

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

4) Аномалии удаления. удалив все товары, поставленные конкретным поставщиком, мы теряем его адрес.

Все перечисленные проблемы будут разрешены (исчезнут), если мы заменим схему Post двумя: R1(Pname,Adr) — о поставщиках и R2(Pname, Tov, Kol)- о поставках.

Воспользуйтесь поиском по сайту:

studopedia.org — Студопедия.Орг — 2014-2023 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с) .

Источник: studopedia.org

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

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

Тестирование – процесс многократного выполнения программы с целью обнаружения ошибок. Программа тестируется для того, чтобы повысить уровень ее надежности. Цель тестирования — выявление как можно большего числа ошибок. Принципы тестирования:

Читайте также:
Программа как положить ламинат

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

2) Исправление уже известных ошибок эффективней занимается сам автор.

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

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

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

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

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

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

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

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

1) Действия, направленные на выявление ошибок (тестирование).

2) Диагностику и локализацию ошибок.

3) Внесение исправлений в программу с целью исправление ошибок.

Процесс отладки начинается с тестовых наборов данных по определенной методике. Большая трудоЙОМКОсть тестирования приводит к необходимости систематизации процесса и методов тестирования. Можно выделить следующие методы:

1) Статический метод.

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

Основано на двух подходах:

Структурное тестирование (белый ящик)

Функциональное тестирование (черный ящик)

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

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

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

В приложении А стандарта изложены рекомендации по преобразованию и адаптации базовой структуры стандарта для конкретного проекта. В приложении Б содержится руководство по выполнению этих рекомендаций ЖЦ программных средств. Стандарт ИСО 152-71: 1998 «Руководство по применению стандарта ISO.

Данный стандарт содержит подробные рекомендации по внедрению программных средств, а так же при организации работ и реализации требований стандарта ISO 122-07. Стандарт ИСО 163-24: 1999. «Руководство по применению ИСО 127 при административном управлении проектами». В этом стандарте изложены работы по поланированию и процедуры выполнения процесса административного правления.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Источник: studopedia.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru