ОБЗОР АВТОМАТИЗАЦИИ ГЕНЕРАЦИИИ ТЕСТОВЫХ СЛУЧАЕВ

M.Prasanna1 S.N. Sivanandam2 R.Venkatesan3 R.Sundarrajan4

1. Lecturer 2. Prof & Head 3. Professor 4. PG Student

Department of Computer Science and Engineering

PSG College Of Technology, Coimbatore 641 004

Автор перевода: Зиновьев Д.А.

Источник: http://www.acadjournal.com/2005/v15/part6/p4/

РЕФЕРАТ

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

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

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

  3. ОБЗОР ЛИТЕРАТУРЫ
  4. Были предложены некоторые подходы для генерации тестовых случаев, в основном случайные, ориентированные на путь, ориентированные на цель и интеллектуальные подходы. Случайные методы определения тестовых случаев основаны на предположениях о ложных распределениях. Ориентированные на путь методы обычно используют управление потоком информации для выявления множества путей для покрытия и генерирования соответствующих тестовых случаев для этих путей. Эти методы могут далее быть классифицированы как статические и динамические. Статические методы зачастую основаны на символической казни, в то время как динамические методы получают необходимую информацию, выполняя программу на стадии тестирования. Ориентированные на цель методы выявления тестовых случаев покрытия выбранной цели, такие как утверждения или ветки, независимо от пройденного пути. Интеллектуальные методы автоматической генерации тестовых случаев полагаются на сложных вычислениях для определения тестовых случаев.

    Многие исследователи и практики работают над созданием оптимальных тестов случаев на основе технических требований, по-прежнему 100% тестирование является невозможным. Языки моделирования используются для получения спецификации и генерации тестовых случаев. Поскольку UML (Unified Modeling Language) является наиболее широко используемым языком, многие исследователи используют UML диаграммы, такие как диаграммы состояний, диаграммы прецедентов, диаграммы последовательностей и т.д. для создания тестовых случаев, и это привело к модели на основе генерации тестовых случаев.

    UML можно представить в виде архитектуры четырех мета-моделей с тремя логическими дополнительными пакетами: основание, поведенческая модель и элементы управления. UML предоставляет возможность исследовать статические и динамические характеристики и физического развертывания системы. Возможность использовать UML для тестирования программного обеспечения была описана Clay E. Williams [2]. UML модели построены широко для объектно-ориентированных систем программного обеспечения. Диаграмма классов, диаграмма состояний и OMT (Объектных методов моделирования) и единого процесса используются для тестирования объектно-ориентированных систем. Здесь автор обеспечил основу, чтобы показать, какую из диаграмм можно использовать, для каждого этапа в процессе тестирования. Но он утверждает, что эти знания не достаточны, так как им не хватает детализации. Таким образом, изменения необходимы для тестеров, чтобы создавать свои собственные модели. Другой подход может заключаться в создании стандартизированных библиотек или расширить архитектуру четырех мета-моделей.

    Даже несмотря на то, что были предложены различные подходы, с появлением таких средств моделирования как Rational Rose, в течение десяти лет наблюдается постоянные исследования по генерации тестовых случаев на основе спецификаций и дизайна моделей. Для простоты понимания, мы классифицировали подходы генерации тестовых случаев на две категории - Спецификация основанная на генерации тестовых случаев и модели на основе генерации тестовых случаев.

    В данной работе исследование было проведено по работе, проделанной в течение последнего десятилетия, где большинство исследователей были направлены на модели генерации тестовых случаев.

  5. Интеллектуальная техника
  6. Новый метод тестирования, которые используются комбинаторные конструкции для создания эффективных наборов тестов был предложен David M. Коэн и др. [15]. Авторы выполнили свои метод в AETG системе, которая используется в различных приложениях. Здесь, тестер определяет параметры, которые вычисляет возможные сценарии тестирования. Затем тестер использует комбинаторные конструкции, чтобы создать тестовый план, который охватывает все парные, тройные или n-пути сочетания параметров испытаний. Эвристический алгоритм был разработан для создания попарного тестирования. способность коммутатора на телефонные вызовы было принято в качестве проблемы для тестирования. В разнообразных экспериментах, AETG система показала, что более полный охват происходит с использованием случайных тестовых данных. Эмпирические данные показывают, что попарное тестирования является практичным и эффективным для различных типов программного обеспечения системы

  7. ОБСУЖДЕНИЕ
  8. Таким образом, существует много методов для генерации тестовых случаев, чтобы удовлетворить критерии тестового покрытия. Случайные генерации тестовых случаев может создать множество тестовых данных, но, возможно, не найти тест, чтобы удовлетворить требованиям. Ориентированный на путь подход определяет путь, по которому тестовые случаи должны быть сгенерированы, однако путь может быть невозможным, генератор тестовых данных может не найти входные данные, которые пройдут путь. Интеллектуальный подход генерирует тестовые случаи быстро, но является довольно сложным. По сравнению с этими приемами, модели на основе тестирования является ценным, так как они создают гибкую, полезную автоматизацию тестирования практически с первых дней развития. Модели легко изменять, генерируя бесчисленные тестовые последовательности, что позволяет тестерам получить больше тестирований в более короткие сроки. Даже несмотря на то, что доступны различные подходы генерации тестовых случаев, модель, основанная на подходе тестирования привлекает многих исследователей и до сих пор исследования проводятся для оптимизации генерации тестов с минимальными человеческими усилиями.

     

  9. ССЫЛКИ

[1] Jeff Offutt, Aynur Abdurazik, October 1999, "Generating Tests from UML specifications", Second International Conference on the Unified Modeling Language (UML99), pp. 416-429, Fort Collins, CO.

[2] Clay E. Williams, November 1999, "Software testing and the UML", International Symposium on Software Reliability Engineering (ISSRE’99), Boca, Raton.

[3] Jeff Offutt, Aynur Abdurazik, October 2000, "Using UML Collaboration diagrams for static checking and test generation", Third International Conference on UML, York, UK.

[4] Lydie du Bousquet, Hugures Martin, Jean Marc Jezequel, 2001, "Conformance Testing from UML Specification Experience Report".

[5] Alessandra Cavarra, Charles chrichton, Jim Davies, Alan Hartman, Thierry Jeron, Laurent Mounier, September 2000 , "Using UML for Automatic Test Generation", Oxford University Computing Laboratory, Tools and Algorithms for the Construction and Analysis of Systems, (TACAS'2000).

[6] Jeff Offutt, Shaoying Liu, Aynur Abdurazik, Paul Ammann, March 2003, "Generating Test data from State based Specifications", The Journal of Software Testing, Verification and Reliability, 13(1):25-53.

[7] Andras Toth, Daniel Varro, Andras Pataricca, 2003, "Model Level Automatic Test Generation for UML State-Charts", Sixth IEEE workshop on Design and Diagnostics of Electronic Circuits and System, (DDECS 2003).

[8] Marlon E. Vieira, Marcio S. Dias, Debra J. Richardson, "Object-Oriented Specification-Based Testing Using UML Statechart Diagrams", University of California.

[9] Jean Hartmann, Marlon Vieira, Herb Foster, Axel Ruder, "UML based Test generation and Execution". www.gm.fh_koelin.de/~winter/tav/html/tav21/TAV21P6Vieira.pdf

[10] Jeff Offutt, Aynur Abdurazik, Andrea Baldini, 2004, "A Controlled experiment evaluation of Test cases generated for UML diagram".

www.isse.gmu.edu/techrep/2004/04-03.pdf

[11] Ahmed M. Salem, Lalitha Subramaniam, 2004, "Utilizing UML use cases for testing requirements", International Conference on Software Engineering research and practice, (SERP 2004).

[12] Stefania Gresi, Diego Latella, Mieke Massink, 2004, "Formal Test Case Generation for UML State-Charts", Ninth IEEE International Conference on Engineering Complex computer system Navigating complexity in e-Engineering Age.

[13] Matthias Riebish, Ilka Philippow, Marco Gotze, "UML Based Statistical Test Case Generation".

[14] Bertolino A., Marchetti E., 2004, "Introducing a reasonably complete and coherent approach for model based testing", Tools and Algorithms for the Construction and Analysis of Systems, (TACAS'2004).

[15] Cohen, D. M., Dalal, S. R., Fredman, M. L., Patton, G.C., 1997, "The AETG Design: an approach to testing based on Combinatorial design", IEEE trans on Software Engineering, vol. 23, no. 7, pp. 437-444.

[16] Sami Baydeda, Volker Gruhn, 2003, "BINTEST – binary search-based test case generation", In Computer Software and Applications Conference (COMPSAC), IEEE Computer Society Press, 2003.