Читаем tестирование dot com полностью

ясь ошибками в языке программирования, находятся компай-

лером (например, в случае с C++) автоматически. Последний

выдает на экран сообщение об ошибке и принципиально не соз-

Цикл разработки ПО

101

дает исполняемый файл, пока проблема не будет зафиксирована

(в скриптовых языках, таких, как Python, исполняемым файлом

является сам файл с кодом и синтаксические баги находит интер-

претатор языка).

Пример

Вот первая программка любого изучающего C++:

1. #include 2.

3. voidmain

4. {

5. cout<< "Hello, World!<< endl;

6. }

Текст этой программки находится в файле syntax_error.cpp. По-

пробуем ее скомпилировать:

~> C++ syntax error, cpp

syntax_error.cpp:5: unterminated string or character constant

syntaxerror.cpp: 5: possible real start of unterminated constant

Последние две строчки — это текст об ошибке, выданный ком-

пайлером из-за того, что мы не закрыли кавычки в строке 5 после

World! Никакого исполняемого файла создано не было. Если мы

исправим эту ошибку, то файл без проблем скомпилируется.

Тестировщики обязаны устройству Вселенной за то, что есть ло-

гические баги (logical bugs). Эти баги, как следует из их назва-

ния, — это ошибки в логике кода, т.е. код компилируется без син-

таксических ошибок, но фактический результат исполнения этого

кода не соответствует ожидаемому результату.

Пример

Спецификация:

"7.2. Пользователь должен ввести два целых числа от 1 до 12,

после чего программа выведет на экран их среднее арифмети-

ческое".

Код:

1. #include 2.

3. voidmain

4. {

5. int first number = 0;

6. int secondjnumber = 0;

7. float average = 0.0;

102

Тестирование Дот Ком. Часть 1

8.

9. //get first number

10. cout« "Enter first number:";

11. cin » first_n umber;

12.

13.

14. //get second number

15. cout« "Enter second number:";

16. cin » second number; 17.

18. //calculate average

19. average = firstjiumber+second_number/2.0; 20.

21. //output result

22. cout« "Average = "« average « endl; 23.

24. }

Тестирование:

Enter first number: 9 Enter

second number: 2 Average

=10

Согласно спецификации результатом исполнения программы

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

случае 5,5 (ожидаемый результат). Фактический же результат

оказался равен 10.

5,5 не равно 10, соответственно у нас есть логический баг.

Проблема, кстати, в строке 19, которая должна была звучать так

(были пропущены скобки):

19. average = (first_number+second_number)/2.0.

Кстати, в приведенном пункте спека есть баг, так как непонятно, какое

максимально допустимое целое число: 11 или 12? Программист, увидев

этот баг, должен был сделать уточнение у продюсера и обязать того

исправить спек. Если максимальное число = 12, то точная формулировка

должна быть следующей: "7.2. Пользователь должен ввести два целых

числа от 1 до 12 включительно, после чего программа выведет на экран

их среднее арифметическое".

Кстати, программист заложил в коде еще один логический баг, так как

согласно спеку код должен принять только действительный ввод, кото-

рым являются целые числа 1 — 1 1 (или 1 — 12).

Кстати, спек имеет еще один баг: не сказано, как должна отреагировать

Перейти на страницу:

Похожие книги

1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Wi-Fi: Все, что Вы хотели знать, но боялись спросить
Wi-Fi: Все, что Вы хотели знать, но боялись спросить

Жизнь современного человека — это движение. Мобильность для нас становится одним из самых важных моментов для работы, для общения, для жизни. Многие из нас сейчас уже не представляют жизнь без сотовых телефонов, которые из средства роскоши превратились в предмет, без которого жизнь современного человека стала просто немыслима. Многие уже оценили все преимущества Bluetooth, GPRS. Эти устройства превратили наши телефоны из средств связи в незаменимых помощников в работе. К сожалению, один из самых главных недостатков этих беспроводных технологий — малый радиус действия и низкая скорость передачи данных, что сейчас становится очень важным фактором для всех нас. Поэтому к нам на помощь приходит активно развивающийся во всем мире и в России стандарт Wi-Fi. Особенно радует, что в крупных городах России, особенно в Москве и Санкт-Петербурге, начинается массовое внедрение беспроводных сетей Wi-Fi в публичных местах (так называемых Hot Spot) — отелях, аэропортах, ресторанах, торговых центрах и кафе.Что же такое Wi-Fi? Очередной мыльный пузырь IT-индустрии, который изо всех сил надувают производители и поставщики телекоммуникационного оборудования или новая технология, призванная в очередной раз изменить наш привычный мир, как это случилось когда-то с появлением Интернет и сотовой связи?

А К Щербаков , А. К. Щербаков

Компьютерное 'железо' (аппаратное обеспечение), цифровая обработка сигналов / Интернет / Компьютерное «железо» / Книги по IT