ЛАб №1 ТиКПО КИ19-21Б. Лабораторная работа 1 Рогалев А. А. подпись, дата
Скачать 151.52 Kb.
|
Федеральное государственное автономное образовательное учреждение высшего образования «СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» Институт космических и информационных технологий Кафедра «Прикладная информатика» ЛАБОРАТОРНАЯ РАБОТА №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). Поэтому для начала составим полный список всех возможных тестовых примеров. Результат показан на таблице.
В списке всего 16 возможных тестов, 2 набора значений выделенные желтым, они не подходят для теста поскольку, изменив значения переменных результат не изменится. Для нашего выражения достаточно будет и n+1 тестов для полного покрытия MC/DC. Список тестов для полного покрытия MC/DC показан на таблице.
Критерии условий и решений не будут гарантировать покрытие всех атомарных условий, причина в том что во многих случаях некоторые предикаты закрыты другими: например, с помощью только двух предложенных тестов невозможно знать, какой именно предикат повлиял на результат вычисления полного условия. В свою очередь покрытие условий/решений (MC/DC) требует, чтобы каждый предикат принимал один раз значение «истина» и один раз «ложь», и при этом единолично влиял на результат полного условия. Это достигается парой тестов, в которых изменение значения только одного атомарного условия будет изменять также значение всего условия. Таким образом, критерий MC/DC значительно сильнее, чем критерии покрытия условий и решений |