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

UptoLike

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

34
языка; это означает, что большинство ошибок встречается в любом языке
программирования. Любой специалист может дополнить этот список во-
просами, позволяющими выявить ошибки, специфичные для того языка
программирования, который он использует, и обнаруженные им в ре-
зультате выполнения процесса инспектирования.
2.4.1. Ошибки обращения к данным
Сводный список вопросов таков:
1. Используются
ли переменные с неустановленными значениями?
Наличие переменных с неустановленными значенияминаиболее
часто встречающаяся программная ошибка, она возникает при различных
обстоятельствах. Для каждого обращения к единице данных (например, к
переменной, элементу массива, полю в структуре, атрибуту в классе) по-
пытайтесь неформально «доказать», что ей присвоено значение в прове-
ряемой точке.
2. Лежат
ли индексы вне заданных границ?
Не выходит ли значение каждого из индексов за границы, опреде-
ленные для соответствующего измерения при всех обращениях к масси-
ву, вектору, списку и т. п.?
3. Есть ли нецелые индексы?
Принимает ли каждый индекс целые значения при всех обращениях
к массиву, вектору, списку? Нецелые индексы
не обязательно являются
ошибкой для всех языков программирования, но представляют практиче-
скую опасность.
4. Есть ли «подвешенные» обращения?
Создан ли объект (выделена ли память) для всех обращений с помо-
щью указателей или переменных-ссылок на объект (или память)? Нали-
чие, переменных-ссылок представляет собой ошибку типа «подвешенно-
го обращения». Она возникает
в ситуациях, когда время жизни указателя
больше, чем время жизни объекта/памяти, к которому/ой производится
обращение. Например, к такому результату приводит ситуация, когда
указатель задает локальную переменную в теле метода, значение указа-
теля присваивается выходному параметру или глобальной переменной,
метод завершается (освобождая адресуемую память), а программа затем
пытается использовать
значение указателя. Как и при поиске ошибок
первых трех типов, попытайтесь неформально доказать, что для каждого
обращения, использующего переменную-указатель, адресуемая па-
мять/объект существует.
Этот тип ошибок характерен для языка Си или С++, где широко ис-
пользуются ссылки и указатели. Язык Java в этом отношении более раз-
вит, например, при потере
всех ссылок на объект, объект переходит в
«кучу мусора», где автоматически освобождается память из-под объекта
языка; это означает, что большинство ошибок встречается в любом языке
программирования. Любой специалист может дополнить этот список во-
просами, позволяющими выявить ошибки, специфичные для того языка
программирования, который он использует, и обнаруженные им в ре-
зультате выполнения процесса инспектирования.
                   2.4.1. Ошибки обращения к данным
     Сводный список вопросов таков:
1. Используются ли переменные с неустановленными значениями?
     Наличие переменных с неустановленными значениями – наиболее
часто встречающаяся программная ошибка, она возникает при различных
обстоятельствах. Для каждого обращения к единице данных (например, к
переменной, элементу массива, полю в структуре, атрибуту в классе) по-
пытайтесь неформально «доказать», что ей присвоено значение в прове-
ряемой точке.
2. Лежат ли индексы вне заданных границ?
     Не выходит ли значение каждого из индексов за границы, опреде-
ленные для соответствующего измерения при всех обращениях к масси-
ву, вектору, списку и т. п.?
3. Есть ли нецелые индексы?
     Принимает ли каждый индекс целые значения при всех обращениях
к массиву, вектору, списку? Нецелые индексы не обязательно являются
ошибкой для всех языков программирования, но представляют практиче-
скую опасность.
4. Есть ли «подвешенные» обращения?
     Создан ли объект (выделена ли память) для всех обращений с помо-
щью указателей или переменных-ссылок на объект (или память)? Нали-
чие, переменных-ссылок представляет собой ошибку типа «подвешенно-
го обращения». Она возникает в ситуациях, когда время жизни указателя
больше, чем время жизни объекта/памяти, к которому/ой производится
обращение. Например, к такому результату приводит ситуация, когда
указатель задает локальную переменную в теле метода, значение указа-
теля присваивается выходному параметру или глобальной переменной,
метод завершается (освобождая адресуемую память), а программа затем
пытается использовать значение указателя. Как и при поиске ошибок
первых трех типов, попытайтесь неформально доказать, что для каждого
обращения, использующего переменную-указатель, адресуемая па-
мять/объект существует.
     Этот тип ошибок характерен для языка Си или С++, где широко ис-
пользуются ссылки и указатели. Язык Java в этом отношении более раз-
вит, например, при потере всех ссылок на объект, объект переходит в
«кучу мусора», где автоматически освобождается память из-под объекта
                                 34