Исследование и разработка метода, моделей и алгоритмов тестирования приложений для мобильных устройств тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат технических наук Хатько, Евгений Евгеньевич

  • Хатько, Евгений Евгеньевич
  • кандидат технических науккандидат технических наук
  • 2013, Москва
  • Специальность ВАК РФ05.13.11
  • Количество страниц 170
Хатько, Евгений Евгеньевич. Исследование и разработка метода, моделей и алгоритмов тестирования приложений для мобильных устройств: дис. кандидат технических наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. Москва. 2013. 170 с.

Оглавление диссертации кандидат технических наук Хатько, Евгений Евгеньевич

Введение.

Используемые сокращения.

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Введение диссертации (часть автореферата) на тему «Исследование и разработка метода, моделей и алгоритмов тестирования приложений для мобильных устройств»

Используемые сокращения

ПО - программное обеспечение.

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

МУС - технология разработки приложений Mode-View-Controller (Модель-Представление-Контроллер) .

MV - технология разработки приложений Mode-View (Модель-Представление) .

Формальная модель - модель приложения, разработанная при помощи формального языка.

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

UI - пользовательский интерфейс.

КА - конечный автомат.

РКА - расширенный конечный автомат.

API - application program interface (программный интерфейс приложения). РР метод — метод разработки приложений с ручной разработкой документации и тестов.

РА метод - метод разработки приложений с ручной разработкой документации и автоматизацией тестовых сценариев.

ПР метод - метод разработки приложений на основе прототипа.

СТТ - Chinese postman problem (задача китайского почтальона).

ПМАГТ - программная модель алгоритма генерации тестовых сценариев.

IDE - Integrated development environment (среда разработки и тестирования программных продуктов) Процесс разработки программных продуктов для приложений для мобильных устройств.

Приложения для мобильных устройств

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

1. Приложения разрабатываются с использованием принципа отделения программного кода логики работы приложения от программного кода пользовательского интерфейса приложения (например, по технологии Модель-Представление-Контроллер (1) или Модель-Представление (2)).

2. Каждое приложение разрабатывается под определенный, узкий круг задач, благодаря чему число представлений приложения - конечное число порядка 100.

3. Для любого приложения существует конечный набор элементов пользовательского интерфейса, который позволяет полностью задать представления приложения (его пользовательский интерфейс).

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

Использование прототипов приложений для мобильных устройств

В (3), (4), (5), (6), (7) рассмотрены подходы к моделированию приложений. В случае ПМУ, можно построить прототип, который описывает его пользовательский интерфейс. Последующее использование построенного прототипа в рамках тестирования сводится к генерации тестовых сценариев на его основе.

Конечные автоматы можно использовать для задания прототипа приложеня.

В частности в (8) рассмотрен подход к моделированию пользовательских интерфейсов приложений на основе конечных автоматов. Предложенный подход, однако, не позволяет рассматривать классы эквивалентности входных данных и, как следствие, генерировать необходимый набор тестовых 7 сценариев, для обеспечения полного покрытия в соответствии с критерием на стр.19.

В данной работе под прототипом понимается упрощенная модель приложения, которая описывает его представления (пользовательский интерфейс).

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

В рамках этой задачи необходимо разбить взаимодействие пользователя с приложением на два типа:

• Детерменированные действия пользователя, которые задаются ограниченным набором элементов пользовательского интерфейса ПМУ.

• Действия, связанные с вариационной частью данных, которая задает все возможные наборы вводимых пользователем данных.

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

При таком способе моделирования приложения роль оракула (5), (9) процесса тестирования может выполнять алгоритм генерации тестовых сценариев.

Анализ итеративной схемы разработки

Процесс разработки приложений для мобильных устройств представляет собой итеративную схему, её применение целесообразно в проектах разработки ПМУ, общей продолжительностью до одного года. Её особенность заключается в ускоренном продвижении к готовому продукту в результате нескольких итераций полного цикла разработки. Итеративная схема представлена на Рис. 1.

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

Процесс определения требований требует предварительного анализа целевой аудитории и рынка аналогичной продукции. Возможно несколько вариантов определения бизнесс требований к продукту:

• «Мозговой штурм» с участием всех вовлеченных в процесс разработки людей.

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

Определение требований I

Высокоуровневая схема

Функциональная спецификация

Альфа версия

Тесты

Результаты

Следующая итерация V

Бета версия

Поддержка

Реакция пользователей

Рис. 1 Итеративная схема разработки Существует несколько способов представления и хранения бизнесе требований:

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

• Модель приложения, написанная на формальном языке. В дальнейшем будем называть такие модели «формальная модель». Для разработки формальных моделей необходимо знание соответствующих инструментов моделированя, например, 1МТЕ8К (10). Подобные формальные модели позволяют точно описывать внутреннюю структуру приложения, например ООП классы. Также формальные модели позволяют генерировать функциональные спецификации и тестовые сценарии на основе построенных моделей. Следует отметить, что генерируемые тестовые сценарии могут применяться для тестирования методом «белого ящика», поскольку формальная модель описывает внутреннюю структуру приложения. Такие модели не позволяют «увидеть» готовое приложение, поскольку описывают только функционал, но не пользовательский интерфейс.

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

Подобный анализ процесса разработки позволяет выделить следующие особенности:

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

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

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

Задачи, требующие решения

Исходя из описанных выше особенностей разработки и тестирования ПМУ, можно выявить следующий набор задач, решение которых позволит оптимизировать процесс тестирования ПМУ по временному параметру и полноте тестового покрытия:

1. Предложить метрику тестирования ПМУ, учитывающую их особенности и соответствующие критерии оценки эффективности методов тестирования. Проанализировать эффективность существующих методов тестирования ПМУ по времени и полноте тестового покрытия.

2. Предложить эффективный метод тестирования, основанный на генерации автоматизированных тестов из прототипов ПМУ, который позволит сократить общее время разработки и тестирования, обеспечивая при этом необходимое тестовое покрытие.

3. Разработать аналитическую и программную модели генерации автоматизированных тестов из прототипов ПМУ.

4. Предложить имитационно-статистическую модель тестирования, которая позволит оценить эффективность предложенного метода.

Методы исследования

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

Научная новизна работы

В результате проведенного исследования были получены следующие новые научные результаты:

• Предложена метрика тестирования ПМУ и критерий завершенности тестирования, основанные на особенностях разработки и использования ПМУ.

• Получен интегральный критерий оптимизации методов тестирования ПМУ, основанный на анализе и формальном представлении итеративной схемы разработки.

• Получен частный критерий эффективности процесса генерации тестовых сценариев.

• Предложен метод тестирования ПМУ с использованием расширенных конечных автоматов.

• Разработана аналитическая модель процесса генерации тестовых сценариев на основе алгоритма поиска кратчайшего пути на графе А . Описание работы

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

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

Четвертая глава посвящена моделированию процесса тестирования ПМУ, с применением предложенных методов и алгоритмов. В частности:

• Выбран инструмент моделирования ПМУ.

• Разработан модуль конвертации прототипов приложений в формат входных данных ПМАГТ.

• Выбран один из инструментов автоматизации тестирования ПМУ.

• Разработан инструмент конвертации тестовых сценариев, описанных при помощи формального алфавита тестирования ПМУ в формат тестов выбранного инструмента автоматизированного тестирования.

Получены количественные показатели эффективности предложенного метода тестирования. Получены количественные показатели эффективности предложенного процесса генерации в сравнении с «алгоритмом-оппонентом». В заключении подведены итоги проведенной работы.

Общее представление об области проводимого исследования можно изобразить на схеме, изображенной на рис. 2.

Способ внедрения > Ручной - Автоматизированный

Этапы разработки

Проектирование Разработка спецификации Разработка моделей Генерация документов

Разработка Кодирование приложения Генерация кода для приложения

Тестирование Разработка тестов Разработка тестовых скриптов Ручное тестирование Генерация тестов Автоматизированное ■ выполнение тестов

Рис. 2 Область проводимого исследования

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Заключение диссертации по теме «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», Хатько, Евгений Евгеньевич

4. Результаты работы использованы при построении процессов тестирования в компании «AT-Consulting». Предлагаемый метод тестирования применяется для тестирования мобильных и ВЕБ приложений в нескольких отделах компании в России и Казахстане.

Заключение

Итоги проведенной работы приведены ниже:

1. Предложен новый, эффективный метод тестирования ПМУ, в рамках которого

• Предложена метрика тестирования ПМУ и сформулирован соответствующий критерий полноты тестирования.

• Предложена модель описания взаимодействия пользователя с ПМУ. Разработан алгоритм построения прототипов ПМУ, который позволяет представлять мобильные приложения в виде расширенных конечных автоматов. Предложенный алгоритм позволяет учитывать классы эквивалентности входных тестовых данных.

2. Разработана система тестирования ПМУ, которая позволила внедрить предложенный метод. Система состоит из модуля конвертации прототипа приложения в программное представление РКА, модуля генерации тестовых сценариев и модуля конвертации сгенерированных тестов, представленных в XML формате в автоматизированные тесты, представленные при помощи операций и реакций РКА.

3. Разработана имитационно-статистическая модель тестирования ПМУ для ОС Android, с использованием среды автоматизации тестирования Robotium framework и инструмента прототипирования AxureRP, которая позволяет увеличить эффективность тестирования на 30%.

Список литературы диссертационного исследования кандидат технических наук Хатько, Евгений Евгеньевич, 2013 год

1. Хэнссон Д. X., Томас, Д. Гибкая разработка ВЕБ-приложений в среде Rails. Санкт-Петербур : Питер, 2008.

2. MSDN Magazine, microsoft.com. В Интернете. http://msdn.microsoft.com/ra-ru/magazine/dd419663 .aspx.

3. Andrews A., Offut J., Alexander R. Testing Web Applications by Modeling with FSMs. б.м. : National Science Foundation, 2005.

4. Makinen M. Model Based Approach to Software. Helsinki : Helsinki University of Technology, 2007.

5. Кулямин В. Компонентная архитектура среды для тестирования на основе моделей. Программирование. 2010 г., Т. 5.

6. Robinson Н. 1999. Graph Theory Techniques in Model-Based Testing.

7. Филиппов В. А., Хатько E. E. Модели для мультизадачных пользовательских комплексов. Информационные, сетевые и телекомуникационные технологии. 2012 г., Т. 4.

8. Салмре И. Конечный автомат для пользовательского интерфейса. Программирование мобильных устройств на платформе .NET Compact Framework. Москва, Санкт-Петербугр, Киев : Вильяме, 2006.

9. Петренко А. Тестирование на основе моделей. Информационные системы. В Интернете. 2003 г. http://www.info-system.ru/testing/testtestingbasismodels.html.

10. Технология UniTESK. UniTESK. В Интернете. 2006 г. http://www.unitesk.ni/content/section/4/26/.

11. Khatko Е, Fillipov V. Mobile applications testing processes metrics and optimization criteria. Software Engineering. 5, 2012 г., Т. 2.

12. Хатько Е. Е. Москва, Долгопрудный : МФТИ, 2009. Один из подходов к анализу системы тестирования сложных программных комплексов. Современные проблемы фундаментальных и прикладных наук. Т. 1, стр. 104107. 52.

13. Хатько Е. Е., Филиппов, В. А. Проблемы качества тестирования программного обеспечения для мультизадачных пользовательских комплексов. Качество. Инновации. Образование. 3 2011 г., Т. 3, стр. 32-35.

14. Филиппов В. А., Хатько Е. Е. Проблеммные вопросы автоматизации тестирования для мультизадачных пользовательских комплексов. Информационные, сетевые и телекомуникационные технологии. 2012 г., Т. 4.

15. Heiskanen Н., Maunumaa М., Katara, М. Test Process Improvement for Automated Test Generation. Tampere: Tampere University of Technology, Department of Software Systems, 2010.

16. Кристофидес H. Теория графов. M : Мир, 1978.

17. Хатько Е. Е. Современные проблемы фундаментальных и прикладных наук. Один способ реализации алгоритма генерации тестов в тестировании на основе моделей. Т. 1, стр. 92-95. 52. М. 2010.

18. Xijiang L., Pomeranz I., Sudhakar M. Techniques for Improving the Efficiency of Sequential Circuit Test Generation. Iowa : University of Iowa.

19. Ural H. Formal methods for test sequence generation. Computer communications. 1992 г., Т. 15.

20. Степанченко И. В. Эквивалентное разбиение. Методы тестирования программного обеспечения. Волгоград : РПК "Политехник", 2006.

21. Хатько Е. Е. Об одном методе тестирования «мобильных» приложений. Труды МФТИ. 2012 г.

22. Кулямин В. В. Тестирование на основе моделей, http://panda.ispras.ru. В Интернете. http://panda.ispras.ru/~kuliamin/lectures-mbt/Lecture04.pdf.

23. Карпов Ю. Г. Теория автоматов. Санк-Петербург : Питер, 2003.

24. Шмейлин Б. 3. Современные технологии тестирования WEB приложений. Системы и средства информатики. 2009 г., стр. 138-147.

25. Филиппов В. А., Хатько Е. Е. Генерация тестовых сценариев для мобильных приложений. Информационные, сетевые и телекомуникационные технологии. 2012 г., Т. 4.

26. Johnson Е., Edmonds J. Matching, Euler tours and the Chinese postman. Ontario : University of Waterloo, Waterloo, Ontario, Canada, 1972.

27. Skiena S. Eulerian cycle / Chinese postman. The algorithm design manual. New York : Springer, 2012.

28. Skiena S. The algorithm design manual Graph Traversal. The algorithm design manual. London : Springer, 2008, стр. 162-169.

29. Кормен Т. X. Алгоритмы: построение и анализ. Москва : Вильяме, 2006.

30. Decher R., Pearl J. Generalized Best-First Search Strategies and the Optimality of A*. Journal of the Association for Computing Machinery. 1985 г., Т. 32,3.

31. Хатько E. E. Оптимизация процессов разработки пользовательских приложений с точки зрения тестирования. Проблемы фундаментальных и прикладных, естественных и технических наук в современном информационном обществе. Т. 1, стр. 84-85. 54. М. 2011.

32. Ruby programming language. В Интернете. 2011 г. http://www.ruby-lang. org/en/about/.

33. Ruby and XML (REXML). В Интернете. 2011 г. http://www.germane-software.com/software/rexml/.

34. Extensible Markup Language (XML), w3.org. В Интернете. http://www.w3.org/XML.

35. Learn more about Ruby on Rails, rubyonrails.org. В Интернете. 2012 г. http://rubyonrails.org/documentation.

36. Sinatra. sinatrarb. В Интернете. 2012 г. http://www.sinatrarb.com/documentation.

37. Rajinder Y. Client / Server Programming with TCP/IP Sockets, б.м. : devmentor.org, 2008.

38. McLaughlin В. Освоение Ajax. ibm.com. В Интернете. http://www.ibm.com/developerworks/ru/library/wa-ajaxintrol/index.html.

39. Graphviz Graph Visualization Software, graphviz.org. В Интернете. http://www.graphviz.org/.

40. Ajax: A New Approach to Web Applications, adaptivepath.com. B Интернете. http://www.adaptivepath.com/ideas/ajax-new-approach-web-applications.

41. Scalable Vector Graphics. w3.org. В Интернете. http://www.w3 .org/TR/S VG/.

42. IDC Analyze the future, idc.com. В Интернете. http://www.idc.com.

43. О Visio по-русски. technet. В Интернете. http://blogs.technet.eom/b/visioru/.

44. AxureRP. В Интернете. 2011 г. http://axure.com/.46. yWorks. В Интернете. 2011 г. http://www.yworks.com/en/productsyedapplicationfeatures.html.

45. Balsamiq mockups. balsamiq. В Интернете. http://www.balsamiq.com/products/mockups.

46. Pencil Project, pencil В Интернете. http://pencil.evolus.vn/en-US/Home.aspx.

47. Ruby Руководство пользователя, opennet. В Интернете. 2010 г. http://www.opennet.rU/docs/RUS/rubyguide/#regexp.50. robotium. google. В Интернете. http://code.google.eom/p/robotium/.

48. Eclipse, eclipse. В Интернете. http://www.eclipse.org/.

49. Хатько Е. Е., Филиппов В. А. Алгоритмы генерации тестовых сценариев для повышения качества программного обеспечения многозадачных пользовательских комплексов. Качество. Инновации. Образование. 2011 г., Т. 10, стр. 47-52.

50. Open Source Software Engineering Tools, mbt.tigris.org. В Интернете. http://mbt.tigris.org/.

51. Edmonds J. Matching, Euler tours and the Chinese postman. Canada : University of Waterloo, 1972.

52. UI tests. cheezyworld. В Интернете. http://www.cheezyworld.com/2010/ll/09/ui-tests-not-brittle/.

53. Fillipov V., Khatko E. An analytical model of mobile applications' tests generation process. Software Engineering. 5, 2012 г., Т. 2.

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.