Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тестирование программного обеспечения. Фундамен...docx
Скачиваний:
0
Добавлен:
10.02.2020
Размер:
935.81 Кб
Скачать

Глава 1: Пример серии тестов 23

Обязательно представляйте отдельный “Отчет о проблеме” по каждой ошибке-

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

Шаг 2. Составим заметки о том, что еще должно быть протестировано

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

Входные

Ожидаемый

данные

результат

Замечания

99 + 99

198

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

-99 + -99

-198

В документации не сказано, что нельзя складывать отрицательные числа.

99 + -14

85

Большое первое число может повлиять на интерпретацию программой второго.

-38 + 99

61

Проверим сложение отрицательного числа с положительным.

56 + 99

155

Проверим, не влияет ли слишком большое второе число на интерпретацию первого.

9 + 9

18

9 является наибольшим числом из одной цифры.

0 + 0

0

Программы часто сбоят на нулях.

0 + 23

23

Программа может особым образом обрабатывать 0, поэтому его нужно

проверить и в виде первого, и в виде второго слагаемого.

-78 + 0

-78

РИСУНОК 1.4. Гест на допустимые входные данные

24 Часть I: Основы

Эти тесты охватывают все допустимые входные данные пршраммы — пары чисел, которые ей полагается складывать правильно.

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

Количество возможных тестов (39601) вычисляется так. В допустимом диапазоне от -99 до 99 всего 199 чисел. Любое из них может стоять на первом месте и любое — на втором. Всего получается 1992 = 39 601 пар чисел. Заметьте, что такое количество тестов выходит даже без учета любых чуть более сложных действий пользователя, как, например, нажа­тия клавиши <Васк5расе>. Если же допустить использование клавиш редактирования, количество возможных тестов вырастет многократно. Задача определения количества возможных тестов относится к области математики, именуемой комбинаторным анализом. Обычно задача эта не сложная — необходимые формулы можно найти в любом учебнике по теории вероятности или комбинаторике.

Если вы проверяете комбинацию 2 + 3, а затем 3 + 4, ваши тесты хотя и не в точности одинаковы, но очень близки. Оба они проверяют, как ре­агирует программа на пару однозначных положительных чисел. И если программа пройдет первый тест, наиболее вероятно, что она пройдет и второй. Поэтому из огромного количества возможных тестов нужно выби­рать только наиболее важные.

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

Если от двух тестов ожидается получить один и гот же результат, значит, они принадлежат к одному классу. В нашем случае 81 тест отно­сится к классу “пара однозначных положительных чисел”. Как только удается выделить класс, т.е. группу однотипных тестов, можно провести несколько из них и проигнорировать остальные. Для отбора проводимых тестов есть важное правило.

Jl.ui выполнения всегда выбирайте из класса те тесты, на которых вероятнее всего ожидается сбой программы.