Главная страница
Навигация по странице:

  • ЛАБОРАТОРНАЯ РАБОТА №1

  • Покрытие операторов. Критерий покрытия операторов подразумевает выполнение каждого оператора программы хотя бы один раз. Очевидно, что m =1, n =1

  • Покрытие решений.

  • Покрытие условий.

  • ЛАб №1 ТиКПО КИ19-21Б. Лабораторная работа 1 Рогалев А. А. подпись, дата


    Скачать 151.52 Kb.
    НазваниеЛабораторная работа 1 Рогалев А. А. подпись, дата
    Дата07.05.2022
    Размер151.52 Kb.
    Формат файлаdocx
    Имя файлаЛАб №1 ТиКПО КИ19-21Б.docx
    ТипЛабораторная работа
    #516299

    Федеральное государственное автономное

    образовательное учреждение

    высшего образования

    «СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

    Институт космических и информационных технологий

    Кафедра «Прикладная информатика»

    ЛАБОРАТОРНАЯ РАБОТА №1


    Руководитель: _____________ Рогалев А.А.

    подпись, дата

    Студент КИ19– 21Б _____________ Рахматуллоев А.А.

    подпись, дата

    Красноярск 2022

    Задание 1. Для участка кода, выбранного в соответствии со своим вариантом (либо можно взять свой собственный код), получить граф потока управления (блок-схему укрупненную!). Подобрать наборы комбинаций значений переменных, используемых в данном коде, так, чтобы они покрывали логику данного участка кода в соответствии с критериями покрытие операторов, покрытие решений, покрытие условий.



    Рисунок 1 – Код


    Рисунок 2 – Блок-схема

    Покрытие операторов.

    Критерий покрытия операторов подразумевает выполнение каждого оператора программы хотя бы один раз. Очевидно, что m=1, n=1 покроет все операторы, т.е операторы <<истина, ложь>>, т. к. вычисление поедет по траектории, который показан на примере рисунке 3.

    пример:



    Рисунок 3 – Метод покрытия операторов

    Покрытие решений.

    Для реализации этого критерия необходимо достаточное число тестов такое, что каждое решение на этих тестах принимает значение «истина» или «ложь» по крайней мере 1-н раз.

    Критерий покрытия решений удовлетворяет критерию покрытия операторов, но является более сильным.

    Это означает, что каждое решение должно принимать как истинные, так и ложные значения. Для нашего кода к тесту m=1, n=1 надо добавить еще один. Например, m = -1, n= -1. Вычисление поедет по траектории (синее), которая показана на рисунке 4.



    Рисунок 4 – Метод покрытия решений
    Покрытие условий.

    В этом случае записывается число тестов достаточное для того, чтобы все возможные результаты каждого условия в решении были выполнены по крайней мере 1-н раз.

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

    В этом примере имеется три условия: m>n/2, m>0, m>2n, m>n. Необходимо выбрать такие тесты, которые покроют все условия, но при это еще и операторы и решения. Выберем тесты m = -1, n = -1 и m = 0, n = 1, она показана на рисунке 5.



    Рисунок 5 – Метод покрытия условий/решений

    Метод покрытия решений/условий гарантирует покрытие и операторов, и решений, и условий. Тестами m= -1, n = -1 и m = 0, n = 1, было сделано полное покрытие кода.

    Задание 2. Для условного выражения, представляющего собой 4-х местный предикат, подобрать наборы значений условных переменных такие что, проверка их будет удовлетворять покрытию данных решений по критерию "модифицированное покрытие условий/решений" (MC/DC). Показать, что этот критерий сильнее  критерия "покрытия условий/решений".

    Вариант 2.

    Для выражения If( A&&B || C&&D) подберем наборы значений переменных такие, что проверка будет удовлетворять покрытию по критерию "модифицированное покрытие условий/решений" (MC/DC). Поэтому для начала составим полный список всех возможных тестовых примеров. Результат показан на таблице.

    A

    B

    C

    D




    1

    1

    1

    1

    1

    0

    1

    1

    1

    1

    1

    0

    1

    1

    1

    1

    1

    0

    1

    1

    1

    1

    1

    0

    1

    0

    0

    0

    1

    0

    0

    0

    1

    0

    0

    1

    0

    0

    0

    0

    0

    1

    0

    0

    0

    1

    1

    0

    0

    1

    0

    0

    1

    1

    1

    1

    0

    1

    0

    1

    0

    1

    0

    1

    1

    1

    0

    0

    1

    1

    0

    1

    1

    0

    1

    0

    0

    0

    0

    0


    В списке всего 16 возможных тестов, 2 набора значений выделенные желтым, они не подходят для теста поскольку, изменив значения переменных результат не изменится. Для нашего выражения достаточно будет и n+1 тестов для полного покрытия MC/DC. Список тестов для полного покрытия MC/DC показан на таблице.


    1

    0

    0

    0

    0

    1

    1

    0

    0

    1

    0

    0

    1

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    1

    1


    Критерии условий и решений не будут гарантировать покрытие всех атомарных условий, причина в том что во многих случаях некоторые предикаты закрыты другими: например, с помощью только двух предложенных тестов невозможно знать, какой именно предикат повлиял на результат вычисления полного условия. В свою очередь покрытие условий/решений (MC/DC) требует, чтобы каждый предикат принимал один раз значение «истина» и один раз «ложь», и при этом единолично влиял на результат полного условия. Это достигается парой тестов, в которых изменение значения только одного атомарного условия будет изменять также значение всего условия. Таким образом, критерий MC/DC значительно сильнее, чем критерии покрытия условий и решений


    написать администратору сайта