Глава 1. Понятие алгоритма, базовые алгоритмические констркуции - 1.5. Тестирование алгоритма

E-mail Печать PDF
Рейтинг пользователей: / 17
ХудшийЛучший 
Индекс материала
Глава 1. Понятие алгоритма, базовые алгоритмические констркуции
1.2. Свойства алгоритма
1.3. Способы записи алгоритмов
1.4. Базовые алгоритмические конструкции
1.4.1. Линейные алгоритмы
1.4.2. Разветвляющиеся алгоритмы
1.4.3. Циклические алгоритмы
1.4.4. Итерационные циклы
1.4.5. Вложенные циклы
1.4.6. Использование рекуррентной формулы
1.5. Тестирование алгоритма
Все страницы

1.5. Тестирование алгоритма

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

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

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

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

1) набор данных должен обеспечивать выполнение каждого оператора, по крайней мере, один раз;

2) тестовые наборы данных в узлах ветвления с более чем одним условием должны обеспечивать принятие каждым условием значения истина или ложь хотя бы по одному разу;

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

Рассмотрим пример простого алгоритма.

Пусть требуется вычислить значение выражения  Блок-схема вычисления этого выражения выглядит так:

При построении тестов с помощью первого критерия достаточно проверки алгоритма на тестах:

1) a = 1, b = 4;

2) a = 1, b = 6.

Заметим, что в этих тестах ни разу не был рассмотрен случай, когда  a равно нулю.

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

1) a = 1, b = 6;

2) a = 0, b = 1.

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

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

1) a = 1, b = 4;

2) a = 0, b = 4;

3) a = 1, b = 6;

4) a = 0, b = 6.

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

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

Входное условие

Классы эквивалентности

правильные

неправильные

а не должно быть равно 0

а <> 0

а = 0

 

b находится в диапазоне от -5 до 5

-5 ? b ? 5

b < -5; b > 5

 

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

1) a = 0, b = 6;

2) a = 1, b = -7.

1.6. Вопросы для самоконтроля

1. Дайте определение алгоритма.

2. Перечислите свойства алгоритма.

3. Как определяется свойство массовости алгоритма? Если алгоритм позволяет решить одну задачу, обладает ли он свойством массовости?

4. Для чего используется свойство детерминированности алгоритма? Может ли алгоритм быть недерминированным?

5. Когда алгоритм теряет свойство результативности?

6. Как определяется свойство понятности алгоритма?

7. Что значит зацикливание алгоритма?

8. Можно ли считать, что программа - это один из способов записи алгоритма?

9. Какими свойствами должен обладать исполнитель, выполняющий алгоритм решения задачи?

10. Перечислите формы записи алгоритма.

11. Как определить словесный способ записи алгоритма?

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

13. Что такое псевдокод? Для каких целей он используется?

14. Чем отличается программный способ записи алгоритмом от других способов?

15. Назовите три базовые алгоритмические структуры.

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

17. Для чего используется базовая структура ветвление? Какие варианты этой структуры существуют?

18. Для каких целей используются циклы?

19. Дайте определение цикла с заданным числом повторений. Когда целесообразно применять циклы с заданным числом повторений?

20. Что такое итерационные циклы. Когда возникает необходимость в их использовании?

21. Как реализуется цикл с предусловием?

22. Как реализуется цикл с постусловием?

23. Определите основные отличия между циклами с постусловием и предусловием. Как они выполняются?

24. Что такое вложенные циклы?

25. Что такое итерационные циклы? Для решения каких задач они используются?

26. Что называется рекуррентной формулой? Для решения какого класса задач ее следует применять?

27. Что такое тестирование алгоритма,  для какой цели оно используется?

28. Какие виды тестирования алгоритма существуют?

29. Когда используется структурное тестирование алгоритма? Перечислите правила составления тестовых наборов данных для этого вида тестирования.

30. Что такое функциональное тестирование алгоритма, когда оно используется? Как разбить входные наборы данных на классы эквивалентности?



 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий:

Комментарии

Интересное




Похожие материалы

Партнёры