3.11. Использование фреймворков

Назад: 3.10 Работа с несколькими модулями (Units) Содержание Дальше: 4 Работа с Web-приложениями

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

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

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

  • Functional Decomposition (Функциональная декомпозиция) – разнесение кода в разные функции или модули в зависимости от их назначения. Например, функции для работы с файловой системой могут храниться в одном файле, а функции для работы с окнами – в другом. С функциональной декомпозицией тесно связано понятие Рефакторинга (внесение изменений в существующий код, при котором функциональность остается без изменений, а сам код изменяется для более удобного восприятия и модификации)
  • Data-driven Testing (тесты, управляемые данными) – при котором тестовые данные выносятся в отдельные файлы (например, в файл Excel или в базу данных), а тестовые скрипты считывают их оттуда по мере надобности. Этот подход обычно используют в сочетании с другими подходами. Более подробно о нем можно почитать в главе 7 Data Driven Testing
  • Keyword-driven Testing (тесты, управляемые ключевыми словами) – при этом подходе тесты выглядят как некие ключевые слова, каждое из которых отвечает за выполнение какого-то блока кода. В TestComplete есть специальная надстройка, позволяющая записывать подобные тесткейсы, более подробно о них можно почитать в главе 6 Keyword Driven Testing. Другой пример подобного подхода к тестированию – это создание специального кода-обертки, который принимает какие-то ключевые слова и в зависимости от того, какие ключи были переданы, выполнится тот или иной программный код
  • Object-driven Testing (тесты, управляемые объектами) – при этом подходе функциональность приложения представляется в скриптах в виде объекта с собственными свойствами и методами. Более подробно об этом подходе в TestComplete можно прочитать в главе 9 Object Driven Testing.

Если у вас нет опыта в проведении рефакторинга и/или создании проекта с нуля, вот вам несколько простых советов, которые могут сэкономить вам время в будущем:

  1. Не записывайте скрипты. Средства записи полезны только на начальном этапе изучения средства автоматизации. Наиболее эффективные и удобные для поддержки скрипты пишутся вручную
  2. Не дублируйте код. Если вы скопировали какой-то код больше одного раза – это повод выделить его в отдельную функцию или метод
  3. Не усложняйте написание скриптов. Иногда встречаются задачи, требующие на реализацию много времени и/или изучения новых технологий. Если это разовая задача, то не стоит заниматься “программированием ради программирования” и тратить на решение отдельной задачи кучу времени. Обычно для таких задач можно найти более простой и быстрый обходной путь, который, возможно, покажется вам менее красивым и изящным, но если он будет хорошо работать, то можно оставить и так. Конечно, если подобная задача встречается часто, то лучше один раз потратить много времени и решить задачу хорошо
  4. Ни одно приложение невозможно автоматизировать на 100%, а некоторые задачи настолько сложны для автоматизации, что лучше оставить их для ручного тестирования
  5. Старайтесь не писать очень длинные функции и функции с огромным количеством параметров, так как это усложнит понимание написанного кода другим сотрудникам (даже если вы работаете один, всегда есть вероятность того, что в будущем с вами или вместо вас будут работать другие люди)
  6. Возьмите готовые или напишите свои стандарты кодирования и придерживайтесь их. Это упростит чтение и модификацию скриптов в дальнейшем как вам, так и другим участникам проекта

 

Назад: 3.10 Работа с несколькими модулями (Units) Содержание Дальше: 4 Работа с Web-приложениями