ТОП 10:

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



Тестирование – запуск программ с использованием разных исходных данных и анализ результатов с целью оценки работоспособности программы.

Основными принципами тестирования являются:

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

Методы ручного тестирования.

 

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

Инспекции и сквозные просмотры

  • Инспекции исходного текста и сквозные просмотры являются основными методами ручного тестирования. Так как эти два метода имеют много общего, они рассматриваются здесь совместно.
  • Инспекции и сквозные просмотры включают в себя чтение или визуальную проверку программы группой лиц. Оба метода предполагают некоторую подготовительную работу. Завершающим этапом является «обмен мнениями» – собрание, проводимое участниками проверки. Цель такого собрания – нахождение ошибок, но не их устранение (т. е. тестирование, а не отладка).

Понятие отладки. Методы отладки.

 

Отладка – выявление и устранение ошибок в программе, если такие обнаружены в процессе тестирования.

Методы:

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

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

Метод индукции включает:

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

Альтернативный метод дедукции заключается в:

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

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

Силовые методы:

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

110. Понятие отладки. Принципы отладки. Анализ ошибок

 

Отладка – выявление и устранение ошибок в программе, если такие обнаружены в процессе тестирования.

Принципы отладки

Принципы локализации ошибок:

  • Большинство ошибок обнаруживается вообще без запуска программы - просто внимательным просматриванием текста.
  • Если отладка зашла в тупик и обнаружить ошибку не удается, лучше отложить программу. Когда глаз "замылен", эффективность работы упорно стремится к нулю.
  • Чрезвычайно удобные вспомогательные средства - это отладочные механизмы среды разработки: трассировка, промежуточный контроль значений. Можно использовать даже дамп памяти, но такие радикальные действия нужны крайне редко.
  • Экспериментирования типа "а что будет, если изменить плюс на минус" - нужно избегать всеми силами. Обычно это не дает результатов, а только больше запутывает процесс отладки, да еще и добавляет новые ошибки.

Принципы исправления ошибок:

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

Классификация ошибок

  • ошибки обращения к данным.
  • ошибки описания данных.
  • ошибки вычислений.
  • ошибки при сравнении.
  • ошибки в передаче управления.
  • ошибки ввода-вывода.
  • ошибки интерфейса.

Ошибка программирования - ошибка, возникающая в процессе программирования.

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

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

 

Графы

Понятие графа. Способы изображения графов. Способы представления графов.

 

Граф – совокупность двух множеств {V,X}, где V – множество вершин графа, X – множество ребер графа.

Элементами множества X являются пара элементов из множества V (записывается в виде x=(u,v) или x=uv).

Вершины u и v инцидентны x (x инцидентно u и v), если x соединяет их.

Два ребра, инцидентные одной вершине – смежные. Две вершины, инцидентные одному ребру – смежные.

 

Способы изображения графов

1. Текстовый (в виде множеств)

G={V,X}

V={1,2,3,4,5}

X={(1,2),(1,3),(1,4),(2,4),(1,5),(3,5),(5,5),(4,5)}

2. Графический

 

Петля – ребро, инцидентное одной и той же вершине.

Если ребра имеют направление, то граф – ориентированный (ребра – дуги).

Граф помеченный, если каждая вершина имеет свою пометку.

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

Маршрут, в котором совпадают начальная и конечная вершины – замкнутый. Иначе – открытый.

Цепь – маршрут, у которого все ребра различны.

Простая цепь – маршрут, в котором все вершины различны.

Расстояние между вершинами – длина кратчайшей простой цепи, которая соединяет эти вершины.

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

 

Способы представления графов

· Текстовый

· Графический

· Матрица инциденций

Строки – вершины, столбцы – ребра.

Значения:

-1 – начинается ребро

1 – заканчивается ребро

2 – петля

0 – в остальных случаях

 

  1,2 1,3 2,3 3,4 4,4 4,5 5.5 5,6 6,5
-1 -1
-1
-1
-1
-1
-1

 

Матрица смежности

Не делается различий между ориентированными и неориентированными графами.

Нельзя отличить, что существует два ребра, соединенных одинаковыми вершинами.

 

 

 

 

Список ребер

headà 1,2à 1,3à 2,3à 3,4à 4,4à 4,5à 5,5à 5,6à 6,5\

Список инциденций

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

headà 1à 2à 3\

2à 3\

3à 4\

4à 4à 5\

5à 5à 6\

6\à 5\

 







Последнее изменение этой страницы: 2016-07-14; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 100.24.125.162 (0.017 с.)