Жизнь замечательных багов
215
Я имя многострочного текстового поля:
А я текст внутри многострочного текстового поля.
Такие вот дела.
Многострочное текстовое поле (text entry area)
используется для ввода информации, которая не умещается в одно-
строчном текстовом поле. Например, для создания постинга на
интернет-форумах под предмет сообщения (subject) отдается текст-
бокс, а под само сообщение — многострочное текстовое поле.
Кстати,
прекрасным, истинно сероящичным тестом является проверка того,
умещается ли наш ввод в соответствующую колонку базы данных.
Под вводом в данном случае подразумеваются данные, введенные
посредством текст-бокса или многострочного текстового поля.
Пример
При регистрации наш новый пользователь заполняет соответст-
вующую веб-форму и нажимает на кнопку "Зарегистрироваться".
Некий файл (например, написанный на языке Python и живущий на
сервере с приложением) трансформирует эту форму в язык, понятный
базе данных (язык называется SQL — Structured Query Language,
произносится как "эс-кью-эл"), и создает новую строку (record) в
таблице, называемой, например, USER ADDRESS (адрес
пользователя).
Допустим, что при создании таблицы USERADDRESS программист
ошибочно указал максимальный размер колонки ADDRESS1 в 7
символов (VARCHAR (7)) вместо 37, положенных по спеку. Это при-
ведет к тому, что при создании новой строки в USERADDRESS дан-
ные, включаемые в колонку ADDRESS1, будут ограничены 7 симво-
лами, а 8-й и прочие символы будут отсечены (truncated) (кстати,
пробел — это тоже символ):
USER_ADDRESS
RECORD
ID
ADDRESS 1
ADDRESS2
CITY
STAT
E
Country
ZIP CODE
1
12 49th
Apt. 2
San Francisco
CA
USA
94118
2
121 Ano
Moscow
Russia
117602
3
221b Ba
London
UK
NW1
4
82 Boul
Paris
France
75018
Что делаем? Правильно, заносим баг, и, после того как баг зафик-
сирован и проверен нами, адреса, хвосты которых были отсечены, уже
выглядят так: