Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Процессы и средства тестирования программных компонентов




 

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

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

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

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

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

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

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

При разработке сложных ПС верификация и тестирование требуют значительных ресурсов в течение всего ЖЦ ПС, и наиболее критичным ресурсом является допустимое время поэтапного выполнения этих процедур. Интенсивность выявления дефектов при тестировании программ практически экспоненциально убывает в зависимости от времени, затрачиваемого на их обнаружение, и соответственно возрастают интервалы между очередными проявлениями дефектов. На основе экспериментальных данных созданы математические модели, которые позволяют прогнозировать интервалы времени между последовательными обнаружениями дефектов или ошибок в программных компонентах при некотором методе и этапе верификации или тестирования (см. лекцию 10). Например, если при тестировании определенного модуля или компонента ПС выявлено определенное число дефектов (например, 5 или 10), то модели позволяют оценить ресурсы (время), необходимое для обнаружения следующего дефекта и рентабельность продолжения тестирования используемым методом. Рациональное изменение стратегии или метода выявления дефектов может приводить к кратковременному повышению интенсивности их проявления, а затем к постепенному ее снижению.

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

Современные системы систематического тестирования и отладки программных компонентов высокого и контролируемого качест­ва должны обеспечивать:

- удобный, дружественный диалог в символьном и графическом видах, пользователей со средствами автоматизации и, в основном, безбумажное тестирование программ;

- использование достаточно развитой и эффективной базы дан­ных проектирования (репозитория) для накопления и хранения разнообразной ин­формации о разрабатываемых программах, их версиях, планах тести­рования, тестовых и эталонных данных, выполненных корректировках;

- автоматическое обнаружение статическими методами типовых ошибок в исходных текстах программ, обусловленных нарушениями формализованных правил семантики программирования, структурного построения модулей и использования данных;

- автоматизированное планирование тестирования, выдачу ре­комен-даций пользователям по систематическому применению методов, стратегий и средств динамической отладки;

- эффективную реализацию отладочных заданий с целью дости­жения максимальной корректности программ в условиях ограниченных ресурсов на тестирование;

- оценку достигнутой корректности программ по выбранным критериям тестирования и определение основных показателей ка­чества созданных программных компонентов;

- автоматизированную регистрацию и документирование всех выполняемых изменений в программах, и учет версий программных мо­дулей и групп программ, в которых проведены корректировки.

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

- статические - анализирующие спецификации и исходные тексты программ без их исполнения в объектном коде;

- динамические, при использовании которых программы функци­онируют в объектном коде и пригодны для их реального применения.

Эти средства объединяются средствами интерактивного диалога с пользователями и базой данных проектирования. В группу стати­ческой отладки входят средства, автоматизирующие структурный анализ и проверку формальной корректности текстов программ и выявление соответствующих типов ошибок. Кроме того, они должны обеспечивать автоматизированное получение данных, поддерживающих выявление ошибок при последующем применении динамических средств. Средства подготовки данных для планирования тестирования должны обеспечивать выделение типовых структур в модуле (циклов, альтернатив, маршрутов исполнения) и их упорядочения по некото­рым правилам. Выделение маршрутов исполнения программы и условий их формирования позволяет определить границы областей изменения переменных, влияющие на формирование тестовых наборов и их объ­ем. В результате статического анализа программы, автоматически могут создаваться упорядоченные наборы ее характеристик, которые используются для подготовки наборов тестов, а также для контроля полноты проведенного тестирования модулей при динами­ческой отладке.

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

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

- трансля­ции программ, тестов и заданий с языка отладки;

- исполнения программы по отладочному заданию в соответствии с планом и сценарием тестирования;

- регистрации данных о результатах тестирования.

Средс­тва трансляции заданий с языка отладки обеспечивают обработку и подготовку к исполнению тестов и сценария отладочного задания. В задании указывается тестируемая программа, контролируемые и регистриру­емые переменные и состояния программы в процессе исполнения. Тестовые значения преобразуются в форму пригодную для исполнения отлаживаемой программой. Операторы отладочного задания объединя­ются с отлаживаемой программой или подготавливаются для исполне­ния в режиме эмуляции или интерпретации.

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

Средства регистрации и обобщения данных о результатах тестирования осущест­вляют преобразование зафиксированных данных функционирования от­лаживаемой программы на язык отладки для диалогового взаимодейс­твия с пользователем. Для сокращения избыточной информации про­изводится редактирование и селекция результатов исполнения опе­раторов отладочного задания. Отображение результатов тестирования в мнемонической и графичес­кой формах, может обеспечиваться унифицированными средствами ин­терактивного взаимодействия пользователей с ЭВМ.

Для каждого отлаженного программного компонента должно обеспечи­ваться хранение основных тестов и отладочных заданий, с исполь­зованием которых проведено тестирование. Это позволяет поддерживать высокое качество компонентов и при необходимости вносить в них корректировки. При проведении таких изменений соответственно расширяется и модифицируется состав применявшихся тестов и зада­ний. Вместе с тестами целесообразно хранить результаты оценки полноты тестирования и достигнутой корректности программного ком­понента. Эти данные вместе с оценкой сложности компонента, структурными и информационными характеристиками могут объединять­ся в паспорт аттестации компонента.

Для поддержки конфигурационного управления программными компонентами может быть полезным хранение на некотором интервале времени проведенных изменений и выявленных ошибок (см. лекцию 16). Эти данные могут использоваться для прогнозирования процессов отладки прог­рамм и сроков достижения заданного их качества. Они позволяют выявлять статистические характеристики ошибок и квалифицированно управлять процессом модификации программ.

Планирование тестирования - процесс творческий и средства авто­матизации предназначены, в основном, для подготовки исходных данных, используемых при планировании. Эту информацию можно раз­делить на три группы данных:

- о циклах в программе;

- о маршрутах исполнения программы;

- о предикатах, определяющих маршруты исполнения программы и границы областей изменения переменных.

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

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

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

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

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

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

- исходные данные: технические задания и спецификации требований; комплекс эталонных значений; критерии качества результатов тестирования; ограничения доступных ресурсов для реализации тестирования;

- совокупность выбранных методов, стратегий и сценариев тестирования при реализации этапов и процессов плана;

- план тестирования компонентов;

- методы и критерии оценки достигнутого качества программных компонентов;

- входные и результирующие данные тестирования;

- графики организации решения частных задач тестирования и необходимые для них ресурсы;

- распределение ответственности между специа­листами по компонентам и видам проверок;

- протоколы результатов тестирования и обобщенные отчеты о достигнутом качестве программных компонентов.

 




Поделиться с друзьями:


Дата добавления: 2014-01-13; Просмотров: 2692; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.