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

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

? 99

? 99

198 -- Ргеээ СЪг1-С іо Оиій

РИСУНОК 1.9. Экран

? -9

после очередного цикла

? -9

тестирования

-18 -- Ргєбб СЪг1-С Ьэ (ЗиіЬ

7

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

Последним вы намеревались протестировать блок обработки ошибок. Но вводить трехзначные числа пока нельзя — здесь есть ошибка, которая в это время как раз исправляется. Остался вопрос с недопустимыми кла­вишами, такими как перечисленные на рис. 1.8: <Васк5расе>, <Пробел>, <Ос1е1е> и <+>.

В ответ на нажатие любой из этих клавиш, за исключением знака “ми­нус”, программа “зависает”. Вот какой “Отчет о проблеме” вы составля­ете.

11. Ошибка кодирования.

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

Подробное описание проблемы и как ее воспроизвести'. Проблема с нециф- ровыми клавишами гораздо более серьезна, чем следует из отчетов 7, 8 и

9. В соответствии с этими отчетами компьютер “зависал” при вводе сим­волы, которых в арифметической программе никто вводить не станет. Дальнейшее тестирование показало, что к тому же результату приводит и нажатие таких естественных клавиш, как <Васк8расе> и <ВеМе>, а также <Пробел>, которым многие пользуются, чтобы подровнять числа. Приво­дит к сбою программы и знак “плюс”, а его многие просто рефлекторно нажмут между складываемыми числами. (Вот простейший пример для воспроизведения проблемы: введите А, затем нажмите <Еп1ег>, и програм­ма “зависнет”.)

Предлагаемое исправление. Проверять каждый вводимый символ. Недо­пустимые символы игнорировать или выводить сообщение об ошибке.

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

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

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

Что дальше?

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

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

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

Глава

Желаемое и действительное в жизни тестировщика

Назначение этой главы

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

Многие новички приступают к работе в полной уверенности, что:

• могут полностью протестировать любую программу;

• выполнив такое тестирование, могут не сомневаться, что программа работает правильно;

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

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

• Какова цепь тестирования?