Статья 2 Investigation of Methods for Testing AspectOriented Software Исследование методов для аспекта тестирования ориентированное программное обеспечение


Тестирование программного обеспечения, ориентированного на аспекты



Скачать 65.55 Kb.
страница7/24
Дата23.06.2022
Размер65.55 Kb.
#130952
ТипСтатья
1   2   3   4   5   6   7   8   9   10   ...   24
Статья 2-Исследование методов аспекта тестирования (9000 слов) (1-4 главы)

Тестирование программного обеспечения, ориентированного на аспекты


Согласно Sommerville (2010, стр. 586), проблемы проверки и получения тестов для
аспектно-ориентированных программ являются существенным препятствием для внедрения аспектно-ориентированной разработки программного обеспечения в крупных программных проектах. Для отличных характеристик и разработки дизайна аспектно-ориентированное программное обеспечение создает новые проблемы для тестирования. Мы находим некоторые новые типы ошибок в этой новой технологии разработки программного обеспечения. Когда аспекты вплетаются в классы и методы основной проблемы, возникают некоторые с ложные модели поведения как основных, так и сквозных проблем. Александр и др. (2004) выделяют некоторые характеристики аспектов. Для аспектов отсутствует независимая идентичность или существование. Для идентификации и контекста выполнения aspect полагается на другие классы. Любые изменения этих классов могут повлиять на аспекты.
Когда аспекты вплетаются в любое приложение, это также приводит к некоторым изменениям в структурах потока управления и потоков данных. Сложность в поведении аспекта увеличивает вероятность наличия какого-то нового вида ошибок. Александр и др. (2004) также выявили некоторые источники ошибок для связанных аспектов в программе. Неисправность может присутствовать в основной проблеме. Таким образом, ошибка может возникнуть без процесса плетения. В коде аспекта может быть ошибка, но изолированная от контекста. Когда в основную абстракцию вплетено множество аспектов, становится трудно определить местоположение неисправности.
Для некоторых специальных критериев проектирования (например, процесса ткачества) процесса разработки аспектно-ориентированного программного обеспечения тестирование также требует некоторых специальностей. Сравнительно этот вид процесса развития является незрелым. Мы нашли несколько подходов к эффективным методам тестирования аспектно-ориентированного программного обеспечения. Чжао (2003) предложил модульное тестирование аспектно-ориентированных программ на основе потока данных. Xu и др. (2004) предлагают подход, основанный на состоянии, и график потоков аспектов для тестирования программного обеспечения, ориентированного на аспекты. Бернарди и Лукка (2007) предложили график потока управления межпроцедурными аспектами для тестирования аспектно-ориентированного программного обеспечения. Александр и Биман (2004) предложили модель неисправностей для систематического тестирования аспектно-ориентированного программного обеспечения.
Объектно-ориентированное программирование имеет некоторые характеристики, такие как статическое состояние и инкапсуляция. Эти характеристики определяют, что объектно-ориентированное программирование не может изменить внутреннее поведение объекта и это снижает коэффициент гибкости разработки программного обеспечения (Li & Xie, 2009). Тестирование Аспектно-ориентированных программ должно быть сосредоточено на ошибках, которые могут возникнуть из-за характера этой парадигмы разработки программного обеспечения (Чеккато и др., 2005). Аспект достаточно способен повлиять на поведение определенного класса. Тип ошибок, которые могут возникнуть в объектно-ориентированной программе, также может возникнуть в основных проблемах аспектно-ориентированного программирования. В аспектно-ориентированной программе мы находим некоторые новые виды ошибок для аспектно-ориентированных функций. Некоторые типы неисправностей обсуждаются ниже:
Проблема с силой точечной резки: Правильность выражения точечной резки очень важна для правильного процесса плетения. Точечный разрез является частью аспекта, который содержит спецификации, соответствующие определенному типу перехватываемой точки соединения. Поэтому разработчикам важно написать точечный срез с надлежащей силой. В противном случае могут возникнуть два вида сценариев:
1) Если шаблон точечного разреза слишком силен, он не сможет выбрать какую-либо требуемую точку соединения.
2) Если шаблон точечного разреза слишком слаб, он выберет некоторую дополнительную точку соединения, которую следует игнорировать (Moreira et al., 2010).
Оба вышеприведенных сценария приводят к сбою аспекта из-за перехвата неправильной точки соединения. Поэтому для проверки правильности силы точечного удара очень важно. Проверка правильности точечного разреза указывает на проверку указателей точечного разреза, которые определяют точку выполнения для аспектов.
Конфликты между аспектами: Мы можем рассмотреть систему, разработанную с помощью аспектно-ориентированного программирования. Когда добавляется аспект, это означает, что в систему добавляется новое поведение. новый аспект может нарушить предыдущие тесты. Если вновь добавленный аспект конфликтует со старым аспектом, это влияет на правильность старого аспекта. Следовательно, старые аспекты необходимо повторно протестировать после добавления нового аспекта. Это явление влияет на качество систем (Moreira et al., 2010). Поэтому важно найти источник конфликта, который вызван добавлением нового аспекта. Иногда программисты небрежно допускают ошибки при определении точечных разрезов. В результате совет может повлиять на выполнение другого совета. Поэтому аспект становится причиной изменения поведения другого аспекта. Если оба неправильно подобранных совета станут активными во время выполнения, это может привести к бесконечному циклу. Очень трудно обнаружить такого рода ошибку, потому что она выглядит правильной (Zhang & Zhao, 2007). Поэтому, когда в систему добавляется новый аспект, он влияет на некоторый блок кода. Но дело в том, чтобы выяснить, на какой блок кода это влияет. Тогда станет легко указать часть кода, которая должна быть повторно протестирована.
Отсутствие приоритета рекомендаций: В аспектно-ориентированном программировании мы обнаруживаем, что более одного совета может перехватываться в одной точке соединения. Результат работы программы может зависеть от последовательности выполнения рекомендаций. Отсутствие приоритета выполнения может повлиять на результат программы без какого-либо отчета об ошибке. Это событие может быть неудачным. Поэтому следует соблюдать порядок выполнения рекомендаций, когда более одного совета перехватывается в общей совместной точке (Zhang & Zhao, 2007). Когда вводится новый аспект, он также может изменить ход выполнения. Для нового аспекта новые поля могут быть добавлены в класс базовой системы.
Ошибки, созданные в процессе плетения: иногда мы не обнаруживаем наличия ошибки как в аспекте, так и в базовом классе. Но во время процесса плетения может появиться ошибка. Также возможно, что ошибка была скрыта в аспекте или базовом классе (Ubayashi & Tamai, 2002). Из-за сложности в поведении аспектно-ориентированного программирования становится очень проблематичным найти местоположение ошибки. Иногда такого рода ошибки возникают из-за неправильного порядка плетения. Еще у тестировщиков недостаточно знаний, чтобы охватить наиболее распространенные ошибки, связанные со сложностью аспектно-ориентированного программирования.
Согласно Александру и др. (2004), уникальные характеристики AOP не встречаются в объектно-ориентированных или даже процедурно-ориентированных программах. Каждая характеристика имеет возможность проявлять новые типы неисправностей, которые в конечном итоге приводят к сбоям в программе.
Как было указано выше, разделение интересов является ключевым принципом аспектно-ориентированного программирования. Возможность тестирования отдельных проблем отдельно может упростить тестирование аспектно-ориентированного программирования по сравнению с традиционным приложением (Ceccato et al., 2005). Авторы также решают две проблемы, чтобы проверить аспекты отдельно: 1) способ тестирования изоляции базового кода. 2) Способ повторного тестирования кода при появлении нового аспекта.
Одной из целей разработки любого вида программного обеспечения является обеспечение высокого качества. Надлежащее тестирование важно для обеспечения качества. Деятельность по тестированию часто занимает большую часть затрат на разработку программного обеспечения. Поэтому при разработке или изобретении методов необходимо выяснить экономически эффективные методы тестирования. Поэтому возникают новые проблемы с тестированием аспектно-ориентированного программного обеспечения.

Скачать 65.55 Kb.

Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   10   ...   24




База данных защищена авторским правом ©vossta.ru 2022
обратиться к администрации

    Главная страница