Методы тестирования программного обеспечения. Степанченко И.В. - 35 стр.

UptoLike

Составители: 

     близок к нулю, а результат не может быть сохранен в типе частного
     (превышает его).
5.   Существуют ли неточности при работе с двоичными числами?
6.   Не выходит ли значение переменной за пределы установленного
     диапазона?
          Может ли значение переменной выходить за пределы установ-
     ленного для нее логического диапазона? Например, для операторов,
     присваивающих значение переменной probability (вероятность), мо-
     жет быть произведена проверка, будет ли полученное значение все-
     гда положительным и не превышающим единицу. Другие диапазоны
     могут зависеть от области решаемых задач.
7.   Правильно ли осуществляется деление целых чисел?
          Встречается ли неверное использование целой арифметики, осо-
     бенно деления? Например, если i – целая величина, то выражение
     2*i/2 = i зависит от того, является значение i четным или нечет-
     ным, и от того, какое действие – умножение или деление – выполня-
     ется первым.
                       2.4.4. Ошибки при сравнениях
         Сводный список вопросов таков:
1.   Сравниваются ли величины несовместимых типов? Например, число
     со строкой?
2.   Сравниваются ли величины различных типов?
          Например, переменная типа int с переменной типа long? Каждый
     язык ведет себя в этих случаях по-своему, проверьте это по его опи-
     санию. Как выполняются преобразования типов в этих случаях?
3.   Корректны ли отношения сравнения?
          Иногда возникает путаница понятий «наибольший», «наимень-
     ший», «больше чем», «меньше чем».
4.   Корректны ли булевские выражения?
          Если выражения очень сложные, имеет смысл преобразовать их
     или проверять обратное утверждение.
5.   Понятен ли порядок следования операторов?
          Верны ли предположения о порядке оценки и следовании опера-
     торов для выражений, содержащих более одного булевского опера-
     тора? Иными словами, если задано выражение (А == 2) &&
     (В == 2) || (С == 3), понятно ли, какая из операций выполня-
     ется первой: И или ИЛИ?
6.   Понятна ли процедура разбора компилятором булевских выражений?
          Влияет ли на результат выполнения программы способ, которым
     конкретный компилятор выполняет булевские выражения? Напри-
     мер, оператор
                    if ((x != 0) && ((y/x) > z))
                                   37