Методологические основы


Структурная сложность программного модуля



Download 2,39 Mb.
bet196/293
Sana26.06.2022
Hajmi2,39 Mb.
#705514
TuriУчебник
1   ...   192   193   194   195   196   197   198   199   ...   293
Bog'liq
Липаев В В Программная инженерия Методологические основы 2006

Структурная сложность программного модуля может быть рас­считана по числу маршрутов Мх в программе и сложности каждого z-ro маршрута Эти показатели в совокупности определяют минимальную сложность Ех тестов для проверки программного модуля (13.1), а следова­тельно, трудоемкость его разработки и тестирования и вероятность про­пуска логической ошибки в программе. Программные модули являются наиболее массовыми компонентами в ПС и требуют для тестирования суммарно наибольших затрат ресурсов. Затраты на тестирование каждого модуля прямо пропорциональны сложности, которая зависит от его струк­туры и объема вычислений При тестировании программного модуля необходимо задать и проанализировать число значений параметров:



  • /=1 у=1

  • Суммарные затраты ресурсов на тестирование модуля пропорцио­нальны значению его сложности Вх и, с учетом удельных затрат на созда­ние каждого теста — с, определяются выражением:

  • (13.4)

  • >=1 у=1

  • Значение множителя с зависит от степени автоматизации процесса тестирования и генерации тестов. В высокоавтоматизированных системах сокращаются затраты ручного труда на подготовку и анализ тестовых данных, однако увеличиваются затраты на машинное время, необходимое для генерации тестов и для автоматической обработки результатов тести­рования. В зависимости от этих факторов значения множителя с могут различаться в несколько раз, и их следует экспериментально определять для каждой системы автоматизации тестирования.

  • Сложность тестирования программ, содержащих циклы. Нали­чие циклов в программе способно резко увеличивать сложность их тести­рования. Полное, исчерпывающее тестирование должно охватывать про­верку каждого маршрута в цикле при всех возможных итерациях цикла и при всех сочетаниях циклов с маршрутами ациклической части програм­мы. Предположим для простоты, что число маршрутов в нижней ацикли­ческой части программы равно М3 = 1. Тогда полное множество маршру­тов М состоит из полной совокупности всех маршрутов в верхней ациклической части программы и группы маршрутов М2, в которой к каждому маршруту из Мх присоединено 1..2..3... итерации (витка) цикла. При этом на каждой итерации выполняется, по крайней мере, один из внутренних маршрутов тела цикла.

  • Например, для графа, имеющего один цикл, требующего исполнения пяти итераций (витков) с тремя внутренними маршрутами, а также со­держащего = 10 ациклических маршрутов, проходящих через цикл, суммарное число маршрутов для исчерпывающего тестирования равно М = (3 х 5) х 10 = 150. При возрастании любого из сомножителей (числа независимых ациклических маршрутов, проходящих через цикл, числа внутренних маршрутов тела цикла или числа его итераций) пропорцио­нально растет их произведение, а следовательно, и сложность тестирова­ния. Поэтому исчерпывающее тестирование реальных сложных про­грамм с циклами может быть практически невозможно.

  • На сложность тестирования цикла оказывают влияние его структура и два параметра: число маршрутов в теле цикла и число итераций цикла. В динамике реального исполнения простейшего цикла между его итерация­ми могут существовать зависимости, по крайней мере, трех видов'.

  • — на разных итерациях цикла исполняются независимо все возможные маршруты тела цикла;

    • на всех итерациях цикла исполняется один и тот же маршрут тела цикла или некоторая определенная их последовательность;

    • на разных итерациях цикла в силу наличия семантических связей исполняется подмножество реализуемых маршрутов тела цикла, завися­щее от данных или от номера итерации.

    • При зависимости первого вида, которая встречается наиболее редко, возникает необходимость в полном переборе всех внутренних маршрутов тела цикла в сочетании с каждым числом итераций. В этом случае слож­ность тестирования цикла определяется сразу обоими параметрами: чис­лом маршрутов тела цикла и числом итераций и приближается к сложнос­ти исчерпывающего тестирования. При зависимости второго вида число маршрутов тела цикла практически не влияет на сложность цикла. Опре­деляющим становится количество итераций, необходимых для тестирова­ния вычислений в теле цикла (например, с учетом требуемой точности). При третьей, наиболее распространенной зависимости определяющим при оценке сложности тестирования является не число итераций цикла, а число маршрутов тела цикла. Простейшие оценки сложности циклических структур целесообразно проводить в предположении, что порядок реали­зации маршрутов тела цикла не зависит от номера итерации. В этом слу­чае при оценке сложности циклических структур конструктивным является подход с позиции минимально необходимого числа проверок итераций циклов.

    • Для оценки сложности структурного тестирования ацикличес­ких логических программ с простейшими циклами целесообразно уточ­нить критерии проверки. По первому критерию ациклическая часть про­граммы покрывается минимальным числом маршрутов, в которые входят маршруты, проходящие через цикл, размыкающие его и образующие мини­мальное покрытие тела цикла. Кроме того, к покрытию добавляется марш­рут, содержащий замыкающую дугу цикла. По второму критерию ацик­лическая часть программы проверяется количеством тестов, равным слож­ности ациклической части программы. При этом к каждому такому маршруту присоединяются все примыкающие к нему циклы. Проверка каждого цикла осуществляется одним маршрутом, содержащим столько итераций, какова сложность тела цикла, а тело цикла покрывается линей­но независимыми маршрутами.

    • При таких оценках определяющими факторами являются полнота про­верки тела цикла, условий его замыкания и размыкания. При этих крите­риях сложность цикла наиболее просто оценить, представив его эквива­лентным ациклическим подграфом. Например, при втором критерии экви­валентным циклу с одной точкой входа и одной точкой выхода будет линейный подграф, содержащий последовательно соединенные все линей­но независимые маршруты тела цикла, связывающие его точку входа с точкой выхода. Такой эквивалентный ациклический подграф добавляется к каждому маршруту в покрытии ациклической части графа по этому критерию.

    • При применении вложенных циклов со сложной структурой и с боль­шим числом ветвлений в теле цикла сложность тестирования резко возра­стает и повышается вероятность сохранения в программе необнаружен­ных ошибок. Однако циклы с простейшей структурой приводят к относи­тельно небольшому увеличению суммарной сложности тестов. Поэтому в процессе проектирования программ необходимо в максимальной степени упрощать циклические компоненты в структуре, которые во многих слу­чаях определяют достигаемую корректность программных модулей при их тестировании.

    • Выражение (13.3) целесообразно использовать для выявления слож­ных модулей, требующих наибольших затрат на тестирование, и для раци­онального распределения ограниченных ресурсов тестирования модулей при создании крупномасштабных комплексов программ. Некоторые моду­ли могут оказаться недостаточно протестированными из-за их высокой сложности и необходимости больших затрат, которые всегда ограничены. Ограниченность ресурсов на тестирование программных модулей при­водит к целесообразности выравнивания их структурной сложности и выделения затрат на проверку в соответствии со сложностью каждого модуля. Особенно сложные модули следует делить на более мелкие и простые и так перестраивать их структуру, чтобы сокращалось суммарное число маршрутов в каждом отдельном модуле и их длина.


    • Download 2,39 Mb.

      Do'stlaringiz bilan baham:
  • 1   ...   192   193   194   195   196   197   198   199   ...   293




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
    ma'muriyatiga murojaat qiling

    kiriting | ro'yxatdan o'tish
        Bosh sahifa
    юртда тантана
    Боғда битган
    Бугун юртда
    Эшитганлар жилманглар
    Эшитмадим деманглар
    битган бодомлар
    Yangiariq tumani
    qitish marakazi
    Raqamli texnologiyalar
    ilishida muhokamadan
    tasdiqqa tavsiya
    tavsiya etilgan
    iqtisodiyot kafedrasi
    steiermarkischen landesregierung
    asarlaringizni yuboring
    o'zingizning asarlaringizni
    Iltimos faqat
    faqat o'zingizning
    steierm rkischen
    landesregierung fachabteilung
    rkischen landesregierung
    hamshira loyihasi
    loyihasi mavsum
    faolyatining oqibatlari
    asosiy adabiyotlar
    fakulteti ahborot
    ahborot havfsizligi
    havfsizligi kafedrasi
    fanidan bo’yicha
    fakulteti iqtisodiyot
    boshqaruv fakulteti
    chiqarishda boshqaruv
    ishlab chiqarishda
    iqtisodiyot fakultet
    multiservis tarmoqlari
    fanidan asosiy
    Uzbek fanidan
    mavzulari potok
    asosidagi multiservis
    'aliyyil a'ziym
    billahil 'aliyyil
    illaa billahil
    quvvata illaa
    falah' deganida
    Kompyuter savodxonligi
    bo’yicha mustaqil
    'alal falah'
    Hayya 'alal
    'alas soloh
    Hayya 'alas
    mavsum boyicha


    yuklab olish