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 <iostream.h> 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—11 (или 1 — 12).

Кстати, спек имеет еще один баг: не сказано, как должна отреагиро­вать программа, если пользователь введет недействительный ввод, например 0, 13, "А", "#" или пустое место...


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


103


Две последние вещи в разговоре о стадии кодирования. Первая вещь

Как мы помним, на этой стадии тестировщики пишут тест-кейсы. Так вот тест-комплекты необходимо, как и спеки, хранить в CVS и публиковать линки к ним на интранете для предоставления возможности свободного ознакомления с ними любому заинтере­сованному лицу внутри компании. Главные преимущества хране­ния тест-кейсов в CVS:

• отсутствие возможности случайного удаления файла;

• присутствие возможности возвратиться к предыдущим вер­сиям файла;

• файл хранится на сервере, и каждый, кому нужно (и кто имеет право), может взять его для исполнения тестирова­ния, изменения и удаления существующих или включения дополнительных тест-кейсов.

Вторая вещь

Хорошая идея для компании в целом и для интересов самого тестировщика — это провести рассмотрение тест-кейсов(Test-case Review), когда за несколько дней до начала тестирования со­бираются

• продюсер, написавший спек,

• программист, написавший по спеку код и

• тестировщик, написавший по спеку тест-кейсы.

Тестировщик раздает присутствующим распечатки этих тест-кей­сов и подробно рассказывает, как он будет проверять функцио­нальности, описанные в спеке.

Полезность рассмотрения тест-кейсов заключается в том, что во многих случаях продюсеры и программисты дают новые идеи для тестирования и/или корректируют допущенные не­точности.

Политический момент

Если участники митинга

не предложили внести в тест-кейсы ничего нового либо

предложили и вы внесли,

то это формально означает, что они одобрили то, как будет протести­рован код. А так как все протестировать невозможно и всегда есть веро­ятность, что мы не проверим какой-либо багосодержащий сценарий,


104


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


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

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

Во многих крупных интернет-компаниях рассмотрение тест-кей­сов — это обязательная процедура перед переходом к стадии...


Дата добавления: 2018-05-02; просмотров: 468; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!