| Назад: 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.
Если у вас нет опыта в проведении рефакторинга и/или создании проекта с нуля, вот вам несколько простых советов, которые могут сэкономить вам время в будущем:
- Не записывайте скрипты. Средства записи полезны только на начальном этапе изучения средства автоматизации. Наиболее эффективные и удобные для поддержки скрипты пишутся вручную
- Не дублируйте код. Если вы скопировали какой-то код больше одного раза – это повод выделить его в отдельную функцию или метод
- Не усложняйте написание скриптов. Иногда встречаются задачи, требующие на реализацию много времени и/или изучения новых технологий. Если это разовая задача, то не стоит заниматься “программированием ради программирования” и тратить на решение отдельной задачи кучу времени. Обычно для таких задач можно найти более простой и быстрый обходной путь, который, возможно, покажется вам менее красивым и изящным, но если он будет хорошо работать, то можно оставить и так. Конечно, если подобная задача встречается часто, то лучше один раз потратить много времени и решить задачу хорошо
- Ни одно приложение невозможно автоматизировать на 100%, а некоторые задачи настолько сложны для автоматизации, что лучше оставить их для ручного тестирования
- Старайтесь не писать очень длинные функции и функции с огромным количеством параметров, так как это усложнит понимание написанного кода другим сотрудникам (даже если вы работаете один, всегда есть вероятность того, что в будущем с вами или вместо вас будут работать другие люди)
- Возьмите готовые или напишите свои стандарты кодирования и придерживайтесь их. Это упростит чтение и модификацию скриптов в дальнейшем как вам, так и другим участникам проекта
| Назад: 3.10 Работа с несколькими модулями (Units) | Содержание | Дальше: 4 Работа с Web-приложениями |