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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!