- •1. Определение и сущность основных характеристик качества программ: функциональности, корректности и надежности, эффективности, сложности, трудоемкости и ресурсоемкости, производительности.
- •2. Понятие метрики. Типы метрик и шкал. Понятие критерия оценки качества. Функциональные и конструктивные критерии оценки качества программ.
- •3. Этапы жизненного цикла программ и обеспечение качества программ на различных этапах. Характеристика статических и динамических составляющих качества программ.
- •4. Классификация видов сложности программных продуктов и их краткая характеристика.
- •9. Методы и средства измерения характеристик программ. Схема проведения измерений. Способы регистрации измеряемых параметров. Типы измерительных мониторов и требования к ним.
- •11. Аппаратные измерительные мониторы (аим). Общая структура. Аим с фиксированной программой. Достоинства и недостатки.
- •12. Аппаратные измерительные мониторы (аим) с изменяемой программой (гибридные). Достоинства и недостатки.
- •17. Надежность программ. Основные понятия: отказ, сбой, ошибки и восстановление - применительно к программам. Количественные оценки(показатели) надежности.
- •27. Тестирование программных изделий. Методы и критерии тестирования. Понятие теста. Основные принципы тестирования.
- •28. Объекты тестирования. Категории тестов, для различных объектов тестирования.
- •29. Тестирование на основе потока управления. Критерий покрытия решений.
- •30. Тестирование на основе потока управления. Критерий покрытия условий.
- •31. Тестирование на основе потока управления. Критерий комбинаторного покрытия условий
- •32. Функциональное тестирование. Метод эквивалентного разбиения.
- •33. Функциональное тестирование. Анализ граничных значений.
- •34. Метод тестирования на основе предположения об ошибке. Критерии завершения тестирования.
29. Тестирование на основе потока управления. Критерий покрытия решений.
(Для саморазвития) 3 вида тестирования: 1. Модульноепроверка корректности структуры модулей и их основных конструктивных компонент (циклов, блоков, разветвлений), функций и данных (входных и выходных); 2.Интеграционное– проверка корректности управляющих и информационных связей между модулями. При проведении интеграционного тестирования важным является порядок сбора модулей в единую программу. Существует два основных подхода к комбинированию модулей: пошаговое – каждый модуль подключается к набору ранее оттестированных модулей; монолитное – все модули одновременно объединяются в программу; 3.Системное– проверка соответствия интегрированной в единое целое программной системы спецификациям с учетом среды и режима выполнения.
1 и 2 основаны на структуре программы, 3 основан на функциональной спецификации.
Элементами, которые должны быть покрыты при прохождении тестов, являются вершины, дуги, маршруты, условия, комбинации условий управляющего графа программы. В настоящее время неплохо себя зарекомендовали критерии структурного тестирования, для которых требуемые элементы определяются на основе потока данных, т. е. информационного графа программы.
Критерий покрытие решений (ветвей)– при использовании этого критерия каждая дуга должна быть пройдена хотя бы один раз.
Пример
if ( (A > 1) & ( B=0 ) ) then X:=X/A;
if ( (A = 2) Or ( X>1 ) ) then X:=X+1;
Покрытие решений может быть реализовано двумя тестами, покрывающими либо пути aceиabd, либо путиacdиabe. Если выбрать второе покрытие, то входами двух тестов являются:A=3;B=0;X=3 (путьacd) иA=2;B=1;X=1 (путь
abe). Эти тесты также недостаточны. Например, если выбрано первое покрытие (путьacd),путь, гдеXне изменяется, будет проверен с вероятностью 50%. Если во втором условии имеется ошибка (например,X<1 вместоX>1), то эта ошибка тестами не будет обнаружена!
30. Тестирование на основе потока управления. Критерий покрытия условий.
Начало 29 вопроса.
Критерийпокрытие условий– каждое логическое условие в программе должно выполняться хотя бы один раз.
Пример тот же. В программе имеются 4 условия: A> 1,B= 0,A= 2 иX> 1. Следовательно, требуется достаточное число тестов, чтобы реализовать ситуации, гдеA>1,A1,B=0 иB0 (первое условие) иA=2,A2,X>1,X1 (второе условие). Тесты, удовлетворяющие критерию покрытия условий, и соответствующие им пути: 1.A=2;B=0;X=4 (путьace); 2.A=1;B=1;X=1 (путьabd)
Критерий покрытия условий обычно лучше критерия покрытия решений, поскольку оно может вызвать выполнение решений в условиях, не реализуемых при покрытии решений.
С другой стороны, критерий покрытия условий может не удовлетворять критерию покрытия решений. Для рассмотренного примера предложенные тесты покрытия условий покрывают результаты всех решений, но это случайное совпадение. Например, два альтернативных теста: A=1,B= 0,X=3 иA=2,B=1,X=1 покрывают результаты всех условий, но только два из четырех результатов решений (оба они покрывают путьabeи, следовательно, не выполняют результат истина первого решения и результат ложь второго решения).