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

Глава I: Пример серии тестов 27

Тест

100 +

100

<Епїег>+<Епіег>

123456 + 0

1,2 + 5 А +• Ь

Чем он интересен Замечания

Граничное условие: числа больше максимального допустимого значения (99)

Что происходит при отсутствии введенных данных?

Введем побольше цифр

Попробуем с десятичными знаками

Недопустимые символы

<С1г1+А>+<Ш+В> Управляющие символы и <С1г!+С>+<СЫ+0> функциональные клавиши <Р1>+<Езс> часто являются

источниками проблем.

Программа приняла 10. Когда вы ввели второй 0, чтобы получилось 100, программа повела себя так, как будто вы нажали <ЕШег>. Так же было и со вторым числом 100. В результате по окончании теста на экране было следующее:

? 10 ? 10 20

Когда аы нажали <Еп1ег>, программа напечатала 10 - последнее введенное вами число. То же было и после второго нажатия <Еп1ег>, и в качестве суммы программа напечатала 20.

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

Реакция на десятичный разделитель такая же, как и на <Еп1ег>.

Когда вы нажали <Ьйег> после <А> программа “зависла". Для продолжения тестирования вам пришлось перезапустить компьютер.

Для всех комбинаций клавиш, кроме <СМ+С>, программа отобразила графические символы, затем, после нажатия <Еп1ег>, “зависла".

Нажатие <СМ+С> привело к завершению программы и выходу в операционную систему.

РИСУНОК 1.5. Дальнейшие исыедовательские тесты

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

Шаг 5. Подведем итоги тому, что мы узнали о программе и ее недостатках

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

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

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

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

Очень полезно для начала записать свои итоговые впечатления о про­грамме. Вот они.

• У программы очень ограниченный интерфейс.

• Программа не работает с отрицательными числами. Наибольшая сумма, которую она может вычислить, — 198, а наименьшая — 0.

• Третий вводимый символ (например, третью цифру в числе 100) программа интерпретирует как нажатие <Enter>.

• Пока вы не нажмете <Enter>, любые вводимые вами символы вос­принимаются как допустимые.

• Программа не проверяет, действительно ли вы ввели число, преж­де чем нажали <Enter>. Если вы ничего не ввели, программа ис­пользует последнее число, введенное ранее.

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

Код обработки ошибок занимает память. Это же касается заголовков, сообщений об ошибках и инструкций. Если программа должна поместить­ся в очень маленьком фрагменте памяти, для всего этого места нет. По­добным же образом обстоит дело и со временем: оно требуется и на проверку допустимости вводимых символов, и на проверку того, что тре­тьей нажатой клавишей действительно является <Enter>, и на печать сообщений на экране, и на очистку переменных перед выполнением оче­редного задания.

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

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