Знакомство с TestComplete 8

 

Приобрести TestComplete 8

Содержание


Введение в автоматизированное тестирование и TestComplete

Автоматизированное тестирование

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

  • Как правило, каждая процедура тестирования включает в себя следующие этапы:
  • Определение ожидаемых выходных данных.
  • Выполнение тестовых действий (введение соответствующих входных данных).
  • Сбор выходных данных приложения и сравнение их с ожидаемыми выходными данными (базовыми данными).
  • Привлечение внимания разработчиков или руководителя проекта в случае несоответствия полученных результатов ожидаемым.

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

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

Типы тестов

TestComplete поддерживает различные типы и методы тестирования: модульное тестирование (unit testing), функциональное тестирование (functional testing), тестирование графического пользовательского интерфейса (GUI testing), регрессионное тестирование (regression testing), распределенное тестирование (distributed testing) и др. (смотрите статью Different Ways of Testing в справочной системе TestComplete). В настоящем руководстве, мы будет создавать функциональный тест. Этот тип тестов используется наиболее часто. Функциональные тесты выполняют проверку взаимодействия приложения с пользователем и программным окружением. Они проверяют, работает ли приложение так, как ожидалось.

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

В TestComplete функциональные тесты могут создаваться в форме тестов на основе ключевых слов (keyword tests) или в форме скриптов. Тесты обоих видов можно записать или создать с нуля с помощью встроенных в TestComplete редакторов. Создание keyword тестов является визуальным и не требует больших усилий и глубоких знаний программирования. Написание же скриптов требует понимания скриптовых инструкций, но оно, в свою очередь, дает возможность создавать более гибкие и мощные тесты. TestComplete поддерживает создание скриптов на VBScript, JScript, DelphiScript, C++Script и C#Script, поэтому вы можете выбрать скриптовый язык, который вы знаете лучше.

В настоящем руководстве мы будем использовать keyword тестирование.

О проектах в TestComplete и их элементах

TestComplete работает с тестовыми проектами (projects) и группами проектов (project suites). Проект - это отправная точка в создании тестов. Проект содержит ваши тесты, базовые значения для контрольных точек, информацию о тестируемых вами приложениях и другие данные, необходимые для проведения тестирования. Проект также определяет порядок выполнения нескольких тестов и содержит все результаты выполнения тестов, полученные за время жизни проекта.

Один проект может содержать полный набор данных и тестов для вашего приложения. Для сложных приложений можно отвести отдельный проект под одну часть приложения, а остальные проекты под другие части приложения (обычно, модули).

Родственные проекты можно объединить в группу проектов (project suite), которая содержит один или более проектов. TestComplete автоматически создает файл группы проектов при создании нового проекта. Также можно создавать пустые группы проектов и затем использовать диалоговые окна TestComplete, чтобы заполнить данный пакет желаемыми файлами.

Элементы проекта (project items) - это элементы, осуществляющие различные тестовые операции или используемые при выполнении данных операций.

Просмотреть содержимое проектов, группы проектов и элементов, а также управлять ими можно с помощью панели Project Explorer.

Полная информация об элементах проектов в TestComplete представлена в статье About Project Items справочной системы продукта.

Пользовательский интерфейс TestComplete

Главное окно TestComplete выглядит следующим образом:

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

Панель Workspace представляет собой рабочую область в TestComplete: она отображает редакторы проектов и элементов проекта, в которых вы создаете и модифицируете тесты, а также просматриваете результаты их выполнения. Например, на приведенном выше рисунке можно видеть редактор keyword тестов, открытый в панели Workspace. Ниже редактора, располагается панель Test Visualizer.  Эта панель содержит изображения тестируемого приложения, полученные во время записи действий над ним. Представленные изображения помогут вам легко разобраться в том, какие именно действия выполняет каждая тестовая команда.

Помимо панелей Project Explorer, Workspace и Test Visualizer, TestComplete содержит и другие панели. Например, панели Watch List, Locals, Breakpoints и Call Stack используются в процессе отладки тестов. Панель To Do предоставляет возможность управлять списком поставленных задач, а панель Code Explorer служит для отображения содержимого скриптовых модулей и удобной навигации по ним.

Панель Object Browser реализует одну важную функциональность TestComplete, общую для всех проектов: она отображает список всех процессов и окон, запущенных на используемом компьютере в данный момент. Для каждого процесса и окна данная панель отображает методы и свойства, к которым можно получить доступ с помощью TestComplete. Иными словами, панель Object Browser показывает методы и свойства, которые можно использовать при тестировании, а также дает информацию о том, как получить доступ к этим методам и свойствам. Для получения более подробной информации об этой панели, смотрите статью Exploring Application Properties в справочной системе TestComplete.

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

Как и любые другие приложения Windows, TestComplete содержит меню и панели инструментов. Они аналогичны меню и панелям управления Microsoft Visual Studio и других популярных приложений. Вы можете менять положение панелей управления, перемещать элементы одного меню или панели управления на другие, скрывать элементы, вновь показывать скрытые элементы и выполнять другие задачи. Дополнительная информация представлена в статье Toolbars Customization справочной системы TestComplete.

Модель тестовых объектов в TestComplete

Структура объектов отображена в панели Object Browser:

Для работы с тестовыми объектами TestComplete использует древовидную модель. Ее корневыми элементами являются Sys для обычных desktop приложений и PDA для программ, запущенных на устройствах, работающих под управлением Windows Mobile и подключенных к вашему компьютеру.

Объекты процесса соответствуют запущенным в системе приложениям. Мы используем термин process , а не application , так как он соответствует концепции процессов в программной документации операционной системы Windows.

Имя объекта процесса состоит из имени исполняемого файла процесса и его индекса (индекс используется, только если запущено несколько копий приложения):

Процессы содержат дочерние объекты (окна), которые соответствуют диалогам и формам, существующим в приложении. У этих объектов, в свою очередь, также есть дочерние окна, которые соответствуют элементам управления. Имена окон и элементов управления зависят от того, имеет ли тестовый "движок" доступ к внутренним методам и свойствам тестируемого приложения или нет. TestComplete может работать с приложениями обоих типов, но назначает имена их окнам и элементам управления по-разному.

  • Black-box applications

    Приложения, которые не предоставляют доступ к своим внутренним методам и свойствам называются английским термином black-box applications. Имя окна принадлежащего такому приложению состоит из имени класса окна, текста или заголовка окна и индекса. Имена элементов управления образуются по тому же принципу, что и имена окон, так как для операционной системы элементы управления представляют собой всего лишь окна другого типа:

  • White-box applications

    Приложения, к внутренним объектам, методам и свойствам которых TestComplete имеет доступ, называются английским термином white-box applications или Open Applications ("открытые" приложения). TestComplete помечает такие приложения специальной пиктограммой ( ) в панели Object Browser (смотрите рисунок ниже).

    Для обращения к окнам и элементам управления "открытых" приложений, TestComplete использует имена, отражающие тип окна или элемента управления, и имя, заданное в исходном коде приложения. Например, если в вашем приложении, написанном на C# и созданном с помощью библиотеки Microsoft WinForms, есть форма под названием MainForm, TestComplete будет использовать следующее имя для обращения к этой форме: WinFormsObject("MainForm"):

Для более детальной информации о назначении имен процессам, окнам и элементам управления обратитесь к разделу Naming Objects справочной системы TestComplete.

Примечание:

Предпочтительнее, по возможности, тестировать "открытые" приложения, чем black-box приложения. Это позволяет тестовому "движку" получить доступ к внутренним методам и свойствам приложения, что, в свою очередь, позволяет вам создавать более гибкие и стабильные тесты.

Одни приложения, например, .NET, WPF, Visual Basic, Java или Web приложения, всегда "открыты" для TestComplete. Другие приложения необходимо скомпилировать специальным способом. Для дополнительной информации по этой теме обратитесь к разделу Open Applications справочной системы TestComplete.

Контрольные точки (сheckpoints) и элементы Stores

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

Используя TestComplete, вы легко можете добавлять команды сравнения в ваши тесты. Команды сравнения называются английским термином checkpoints (checkpoint - контрольная точка). Эти команды можно создавать как во время записи теста, так и во время разработки. TestComplete предоставляет команды сравнения для различных типов данных: изображений, файлов, текста объектов, XML документов, баз данных и т.д. TestComplete содержит элемент проекта Stores, который используется для хранения базовых данных для команд сравнения. Он содержит изображения, файлы и другие элементы, которые сохраняются вместе с проектом для целей сравнения. Единственным исключением являются команды, которые выполняют проверку свойств объектов: базовые данные для них указаны в тестах.

Для более подробной информации о создании контрольных точек и верификационного кода обратитесь к разделу Checkpoints справочной системы TestComplete.

Создание вашего первого теста

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

Мы будем демонстрировать шаги на приложении-примере Orders , которое поставляется вместе с TestComplete. Данное приложение представляет собой список заказов и содержит специальные функции для добавления, удаления, изменения и экспортирования заказов.

Приложение находится в следующей папке:

  • В Windows 7, Windows Vista или Windows Server 2008:

C:\Users\Public\Documents\TestComplete 8 Samples\Open Applications

  • В Windows XP, Windows Server 2003 или Windows 2000:

C:\Documents and Settings\All Users\Documents\TestComplete 8 Samples\Open Applications

Обратите внимание, что в Windows Explorer, а также в диалоговых окнах, используемых для открытия и сохранения файлов, папка All Users\Documents может отображаться как All Users\Shared Documents .

Папка Open Applications содержит несколько проектов Orders , созданных с помощью разных компиляторов: C#, Visual C++, Visual Basic, Delphi, C++Builder, Swing и т.д. Мы будем использовать приложение Orders , созданное в Visual C#.

1. Создание тестового проекта

Создадим новый тестовый проект:

1.      Если у вас в TestComplete открыт проект или группа проектов, закройте их. Для этого выберете File / Close в главном меню TestComplete.

2.      Выберите File / New / New Project в главном меню TestComplete. Появится диалоговое окно Create New Project. Данное окно работает в двух режимах: Simple и Classic. В режиме Simple, который используется по умолчанию, диалог содержит два поля редактирования, в которых можно указать имя и расположение файла проекта. В режиме Classic вы так же можете указать имя группы проектов, желаемый скриптовый язык,  выбрать шаблон проекта и т.д.

В данном руководстве мы используем режим Simple, так как он используется чаще, чем режим Classic.

3.      Теперь укажите имя, расположение и скриптовый язык проекта:

В диалоговом окне введите Orders в поле Project name.

TestComplete автоматически сгенерирует имя папки, в которой будет храниться файл проекта, и отобразит его в поле Location. Папка проекта служит хранилищем для всех файлов, которые генерируются программой TestComplete для проекта: keyword тестов, скриптов, результатов, элементов Stores и т.д. Имя папки можно изменить в поле Location. В нашем примере мы оставим имя папки без изменений.

4.      После того, как имя и папка проекта были указаны, нажмите кнопку Create. TestComplete создаст новый проект, Orders.mds , и файл группы проектов для него. Содержимое группы проектов и самого проекта будет отображено в панели Project Explorer.

2. Определение приложений для тестирования

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

Вы можете добавить приложения в список вручную, либо TestComplete может это сделать автоматически в ходе записи теста. Подсистема записи достаточно "умна" и сможет определить, что приложение было запущено из командной строки, из Проводника Windows или каким-либо другим способом. После завершения записи, TestComplete внесет тестируемое приложение в список и вставит команду "Run Tested Application" в записанный тест.

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

Для добавления приложения в список:

1.      Щелкните правой кнопкой мыши на элементе TestedApps в панели Project Explorer и выберете Add / New Item в контекстном меню:

2.      Это вызовет стандартное диалоговое окно Open File.

3.      Используя это диалоговое окно, выберете файл Orders.exe и нажмите кнопку Open.

Как вы знаете, мы используем приложение-пример Orders, написанное на C#, которое поставляется вместе с TestComplete. Путь к файлу Orders.exe выглядит следующим образом:

  • при работе в Windows 7, Vista или Windows Server 2008:

C:\Users\Public\Documents\TestComplete 8 Samples\Open Applications\C#\bin\Debug\Orders.exe

  • при работе в Windows XP, Windows 2000 или Windows Server 2003:

C:\Documents and Settings\All Users\Documents\TestComplete 8 Samples\Open Applications\C#\bin\Debug\Orders.exe

4.      После того, как вы добавили тестируемое приложение в список, вы можете указать режим запуска и аргументы командной строки этого приложения. Для дополнительной информации по этой теме обратитесь к статье Run Modes в справочной системе TestComplete. В настоящем руководстве, мы будем использовать настройки по умолчанию.

5.      Выберите File / Save в главном меню TestComplete, чтобы сохранить изменения.

3. Планирование вашего теста

Общие положения о планировании тестов

Считается хорошей практикой планировать тесты перед их созданием:

  • Определите цель тестирования и решите, какую функциональность приложения вы будете тестировать. Чем яснее определена цель и чем проще тест, тем лучше. Сложные тесты, которые проверяют различные аспекты поведения приложения, трудно создавать и обременительно поддерживать в работоспособном состоянии. Лучше создать простой тест, который будет нацелен на выполнение только одной задачи. Создав несколько простых тестов, вы всегда можете объединить их в один более сложный тест.
  • Спланируйте тестовые шаги и решите, какие действия будет выполнять тест. Действия в рамках тестирования зависят от цели тестирования и природы тестируемого приложения. Тестовые шаги могут включать в себя действия, подготавливающие приложение к тестированию (то есть действия, приводящие приложение в какое-либо начальное состояние). Также, тестовые шаги могут эмулировать ввод нужных входных данных.
  • Определите, как вы будете проверять результаты тестовых действий. Обычно после того, как приложение выполняет какие-то действия, в нем происходят некоторые изменения: преобразование данных в окне приложения, создание нового окна, запись файла на жесткий диск или удаление файла с жесткого диска и т.д. Необходимо определить критерии успешного или неуспешного выполнения теста, а также решить, какие проверочные команды будут использоваться для проверки этих критериев.
  • Сохраните результаты. Результаты тестирования можно регистрировать разными способами. Например, тестовые скрипты могут сохранять результаты всего тестирования в файл или выводить на экран уведомление о том, что тестирование завершено.

В ходе выполнения теста, TestComplete отслеживает все эмулируемые действия и сохраняет информацию о данных действиях в журнал результатов тестирования (данный журнал мы будем называть в дальнейшем test log). В test log можно внести созданные пользователями сообщения, изображения, файлы или ссылки файлов. Сообщения можно организовать в папки, и каждое из них может использовать особый шрифт и настройки фона для отображения на экране. Результаты можно экспортировать в файл, заархивировать и отправить вашим коллегам по электронной почте. Можно даже создать отчет об ошибке в системе отслеживания ошибок напрямую из результатов тестирования, отображаемых в test log. За дополнительной информацией обратитесь к разделу Test Log справочной системы TestComplete.

Планирование теста для приложения Orders

В приложении-примере Orders содержится список заказов. Предположим, что нам необходимо проверить, правильно ли работает форма приложения Edit Order и модифицирует ли она данные в списке заказов. В этом случае план будет выглядеть следующим образом:

  • Цель тестирования: Тест должен проверить, сохраняет ли форма Edit Order измененные данные и отображаются ли изменения в списке заказов.
  • Тестовые шаги: Наш тест должен эмулировать изменения данных по заказам и затем проверить данные в списке заказов. Мы запишем тест, эмулирующий действия пользователя над данным приложением. Чтобы упростить задачу, наш тест "изменит" только одно свойство одного заказа.
  • Проверка и запись результатов тестирования: Если изменение заказа было сохранено правильно, оно должно отображаться в списке заказов. Чтобы проверить это, наш тест сравнит данные в списке с ожидаемым значением. Для этого, мы добавим в тест специальную команду сравнения. Эта команда запишет результаты сравнения в test log, и мы сможем увидеть прошла ли проверка успешно или нет.

4. Запись теста

Запись тестов в TestComplete

Запись тестов в TestComplete проходит в три этапа:

  1. Начните запись, выбрав Test / Record / Record Keyword Test или Test / Record / Record Script в главном меню TestComplete или на панели инструментов Test Engine. Вы также можете начать запись, нажав кнопку Record a New Test на странице Start Page.

Используя TestComplete, можно записывать тесты различных типов: keyword тесты, скрипты, низкоуровневые процедуры и HTTP трафик. Пункт меню, который вы выбрали, чтобы начать запись, определяет тип "главного" теста, который будет записан: keyword тест или скриптовый код. Тесты других типов могут быть записаны после того, как начнется запись "главного" теста. "Главный" тест будет содержать специальные команды для  запуска тестов других типов.

После того, как TestComplete получил команду начать запись, он переключается в режим записи и вызывает на экран панель инструментов Recording:

Данная панель инструментов содержит элементы, позволяющие осуществить дополнительные действия в ходе записи, приостановить или полностью остановить запись, а также изменить тип записываемого теста (keyword тест, скриптовый код, низкоуровневая процедура для Windows или PDA или HTTP трафик).

  1. После того, как запись началась, выполните желаемые тестовые действия: запустите тестируемое приложение (если необходимо) и начните с ним работать - нажимайте кнопки, выбирайте элементы меню, вводите какой-либо текст и т.д.
  2. После того, как все тестовые действия выполнены, остановите запись, щелкнув кнопку   Stop на панели инструментов Recording.

Для полной информации о записи тестов, смотрите раздел Recording in TestComplete в справочной системе TestComplete.

Запись теста для приложения Orders

Запишем keyword тест для приложения-примера Orders. Тест запустит приложение, загрузит в него данные, выполнит щелчки мышью и ввод с клавиатуры и проверит данные приложения.

Примечание:

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

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

Начнем запись:

1.      После создания нового проекта, TestComplete автоматически добавляет в него "пустой" keyword тест (Test1 по умолчанию). Давайте запишем необходимые тестовые команды в  этот keyword тест. Для этого, откройте Test1 для редактирования, щелкнув два раза левой кнопкой мыши по его имени в панеле Project Explorer. Чтобы начать запись, щелкните кнопку  AppendtoTest на панели инструментов в открывшемся окне редактора keyword тестов.

TestComplete вызовет панель инструментов Recording. Если панель Interactive Help видна на экране, TestComplete отобразит информацию о записи в этой панели.

2.      По умолчанию, панель инструментов Recording показывается в "свернутом" виде, который содержит только наиболее часто используемые элементы. Для доступа к остальным элементам щелкните на кнопку .

После этого, щелкните на стрелку, направленную вниз, у кнопки  Run Tested Applications и выберите пункт Orders из выпадающего списка:

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

3.      Подождите, пока запустится тестовое приложение и появится его главное окно:

Если панель Interactive Help видна на экране, измените ее размер и положение так, чтобы она не перекрывала окно приложения. TestComplete не записывает действия пользователей над этой панелью.

4.      Переключитесь на приложение Orders и выберите File / Open в его главном меню. Откроется стандартное диалоговое окно Open File.

5.      В диалоговом окне откройте файл MyTable.tbl . Расположение этого файла зависит от используемой вами операционной системы. В Windows 7, Windows Vista и Windows Server 2008 он хранится в папке C:\Users\Public\Documents\TestComplete 8 Samples\Open Applications . В других операционных системах он хранится в папке C:\Documents and Settings\All Users\Documents\TestComplete 8 Samples\Open Applications .

6.      После того, как вы указали файл в поле File name, нажмите кнопку Open. Приложение Orders загрузит данные из этого файла и покажет их в главном окне приложения:

7.      В списке заказов щелкните по строке Samuel Clemens .

8.      Наведите курсор мыши на панель инструментов Orders и нажмите кнопку  Edit order. Приложение откроет диалоговое окно Order:

9.      В диалоговом окне щелкните мышью по полю Customer Name, чтобы переместить в него точку ввода. Щелкните правой кнопкой мыши внутри этого поля и выберите пункт Select All из контекстного меню, а затем введите Mark Twain как имя заказчика.

Примечание:

Вы также можете выделить текст в поле ввода путем перетаскивания мыши, но в этом случае, записываемый тест станет менее универсальным, так как при различной длине текста надо перетаскивать мышь на большее или меньшее расстояние, то есть, вам придется просчитывать это расстояние в вашем тесте. Использование пункта меню Select All избавит вас от такой необходимости и сделает ваш тест более стабильным и надежным по отношению к возможным изменениям в приложении. Альтернативой использованию этого пункта меню является использование горячих клавиш (обычно, CTRL+A) для выделения всего текста в поле ввода.

10.  Нажмите OK, чтобы закрыть диалоговое окно. TestComplete обновит список заказчиков, отображаемый в главном окне приложения.

11.  Теперь вставим в наш тест контрольную точку. Она будет осуществлять проверку того, отображается ли в списке заказчиков измененное имя - Mark Twain .

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

  • Выберите пункт  Create Property Checkpoint в выпадающем списке Checkpoint панели инструментов Recording:

На экране появится мастер создания property checkpoint. Он ускорит и облегчит процесс создания контрольной точки:

  • На первой его странице щелкните по иконке Finder tool () левой кнопкой мыши и удерживайте ее.

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

Когда в красной рамке окажется список заказчиков, отпустите кнопку мыши:

  • После того, как вы отпустите кнопку мыши, диалоговое окно вновь появится на экране, и TestComplete отобразит имя выбранного объекта в поле Object:

Нажмите Next, чтобы продолжить.

  • На следующей странице диалогового окна появится список свойств выбранного объекта. В списке отображены свойства, которые предоставляет TestComplete, а также те свойства, которые определены в тестируемом приложении. Например, наше тестируемое приложение написано на C#, поэтому в списке отображаются свойства соответствующего .NET класса. Их можно увидеть в категории .NET. В нашем случае эти свойства скрыты, так как список свойств по умолчанию содержит только небольшой (основной) набор свойств объекта. Для того, чтобы просмотреть все доступный свойства желаемого объекта, щелкните ссылку Viewmoremembers (Advancedview) в заголовке таблицы свойств объекта.

Свойства, которые предоставляет TestComplete, можно разделить на две группы: одна из них включает в себя свойства, общие для всех тестируемых окон и элементов управления. Большинство из них можно увидеть в категории Standard. Другая группа включает в себя свойства, специфичные для элементов управления tree view (поскольку объект, который мы выбрали, как раз относится к этому типу). Имена этих специфичных свойств начинаются с латинской буквы w. Их можно увидеть в категории Extended. Для проверки данных мы будем использовать свойство wItem. Оно предоставляет доступ к отдельным элементам в tree view.                                 

  • Выберите свойство wItem из списка (в категории Extended). Нажмите на кнопку Params. Появится следующее окно:

В этом окне укажите ячейку, которая содержит строку Mark Twain :

o   Выберите Integer в секции Type.

o   Введите 5 в поле Item (5 - это индекс элемента   Mark Twain в tree view. Индексы начинаются с нуля).

o   Нажмите OK.

TestComplete извлечет данные из указанной ячейки и отобразит их в списке свойств:

Нажмите Next, чтобы продолжить.

  • На следующей странице мастера создания property checkpoint показаны имя свойства, которое будет участвовать в проверке, условия сравнения и, в поле Value, ожидаемое значение свойства:

Нажмите Finish чтобы завершить создание property checkpoint. TestComplete добавит операцию Property Checkpoint в записываемый тест.

12.  Закройте приложение Orders, щелкнув по кнопке X в заголовке его главного окна. Приложение выведет запрос о сохранении изменений, сделанных в списке. Нажмите No. Приложение Orders закроется.

13.  Нажмите кнопку  Stop на панели инструментов, чтобы остановить запись. TestComplete обработает записанные тестовые команды и сохранит их в тесте.

5. Анализ записанного теста

После того, как запись закончилась, TestComplete открывает записанный keyword тест для редактирования и отображает его содержимое в редакторе keyword тестов:

Записанный тест выглядит приблизительно так, как показано на приведенном выше рисунке. Тест, который записали вы, может немного отличаться от приведенного выше теста. Например, он может содержать другие имена классов или другие индексы окон, если вы записали тест для приложения, созданного в среде разработки Visual C++ или Delphi.

Записанный тест содержит команды, соответствующие действиям, которые производились над приложением Orders в ходе записи. Тестовые команды называются операциями.

Ниже списка команд раполагается панель Test Visualizer. Она содержит изображения тестируемого приложения, полученные TestComplete во время записи теста.

Эти изображения иллюстрируют записанные операции и помогаю вам лучше понять смысл выполняемых ими действий. Заметим, что TestComplete сохраняет только те изображения, которые соответствуют действиям пользователя (нажатиям кнопок мыши, вводу текста и т.д.).

Когда вы выбираете операцию в редакторе keyword тестов, Test Visualizer автоматически выбирает соответствующую ей картинку в панели, чтобы вы могли с легкостью отследить состояние тестируемого приложения на момент начала выполнения выбранной операции. Для более детальной информации о работе с изображениями, обратитесь к разделу Test Visualizer в справочной системе TestComplete.

Первая операция в нашем тесте - это Run TestedApp. Она используется для запуска тестируемого приложения из keyword теста (в нашем случае, это приложение Orders ). TestComplete автоматически вставляет эту операцию в тест, когда обнаруживает, что пользователь запускает приложение из пользовательского интерфейса TestComplete или из пользовательского интерфейса операционной системы.

Следующая операция соответствует выбору пункта File / Open в главном меню приложения.

Следующая операция соответствует открытию файла через Open File диалог:

За ней следуют операции, симулирующие ваши действия над основной формой приложения (Main Form) и формой редактирования заказа (Edit Order Form):

Для более полной информации об эмулировании действий с мышью, клавиатурой, операций с меню и т.д., смотрите раздел Simulating User Actions в справочной системе TestComplete.

Далее следует контрольная точка, которую мы добавили в ходе записи теста:

И в заключение, следует операция, которая закрывает приложение Orders, а также операция, которая эмулирует нажатие кнопки "No" в ответ на запрос о сохранении изменений.

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

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

Можно заметить, что имена тестируемого процесса, а также имена его окон и элементов управления отличаются от тех имен, которые используются по умолчанию. Вы видели эти имена, когда мы рассказывали об именовании тестовых объектов. Например, тестируемый процесс назывался Process("Orders") , в то время, как в тесте он называется Orders ; главное окно называлось WinFormsObject("MainForm") , в то время, как в тесте оно называется MainForm , и т.д.

Этому есть логическое объяснение: по умолчанию TestComplete автоматически генерирует и использует более короткие и "говорящие" имена для объектов, с которыми вы работали в ходе записи теста. Генерация и назначение таких имен называется маппированием имен ( name mapping ). TestComplete переназначает имена объектов, так как имена, назначенные по умолчанию, могут быть тяжелы для понимания. Например, могут возникнуть затруднения при определении того, какому окну или элементу управления соответствует то или иное имя. Использование маппированных имен делает тесты более легкими для понимания и более стабильными. Для дополнительной информации о маппировании имен смотрите раздел Name Mapping в справочной системе TestComplete.

6. Выполнение записанного теста

Теперь мы можем выполнить наш тест, чтобы проверить, как TestComplete эмулирует действия пользователя.

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

Чтобы запустить выполнение записанного теста, просто щелкните по кнопке  Run Test на панели инструментов в редакторе тестов:

Тестовый "движок" свернет окно TestComplete и начнет выполнение тестовых операций. В нашем случае, тест просто будет повторять записанные нами действия.

Примечание:

Не пользуйтесь мышью и клавиатурой во время выполнения теста. Ваши действия могут помешать действиям, которые эмулирует TestComplete, что может привести к неправильному выполнению теста.

Как только выполнение теста закончится, на экране вновь появится окно TestComplete, в котором будут отображены результаты тестирования. На следующем этапе мы займемся их анализом.

Примечания по выполнению тестов:

  • Созданные тесты не компилируются в выполняемый файл для запуска тестов. Тесты запускаются непосредственно из TestComplete. Чтобы запустить тесты на компьютерах, где TestComplete не установлен, можно использовать специальную утилиту TestExecute. Она менее требовательна к ресурсам и используется только для выполнения тестов. Также можно экспортировать скриптовый код (если вы его используете) во внешнее приложение и выполнить его там. Для дополнительной информации об этом обратитесь к статье Connected and Self-Testing Applications в справочной системе TestComplete.
  • Во время выполнения теста, TestComplete показывает специальный индикатор в правом верхнем углу экрана:

Этот индикатор содержит сообщения, информирующие вас о выполняемых действиях.

  • После того, как вы запустили тест, TestComplete выполняет все до последней тестовые команды. Выполнение теста можно остановить в любое время. Для этого щелкните кнопку  Stop на панели инструментов Test Engine или выберите Test / Stop в главном меню TestComplete.

    Выполнение теста можно приостановить на время. Для этого просто щелкните кнопку  Pause. Во время паузы можно произвести любые необходимые действия. Например, можно проанализировать накопленные результаты в test log или исследовать тестовые переменные и объекты, используя панели Watch List и Locals либо диалоговое окно Evaluate (смотрите раздел Debugging Tests в справочной системе TestComplete).

  • Чтобы запустить тест, мы использовали кнопку Run Test на панели инструментов редактора тестов. Это лишь один из нескольких способов запуска тестов. Тесты также можно запускать из панели Project Explorer или из другого теста. Также можно воспользоваться страницей Test Items редактора проектов, чтобы запустить несколько тестов в пакетном режиме (batch run).

    Полная информация о выполнении тестов в TestComplete, о параметрах, влияющих на выполнение тестов, и об особенностях тестирования содержится в разделе Running Tests справочной системы TestComplete.

7. Анализ результатов тестирования

TestComplete сохраняет результаты всех выполненных в ходе тестирования операций. Ссылки на результаты тестирования отображаются в панели Project Explorer в категории ProjectSuite1 Log / Orders Log. Это основная рабочая зона для просмотра списка результатов проекта и группы проектов. Каждая запись в списке соответствует коллекции результатов, полученных при запуске теста. Изображение слева от элементов показывает, успешно прошло тестирование или нет:

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

Так как мы выполнили только один тест, мы видим только одну запись с результатами в панели Project Explorer. По умолчанию, TestComplete автоматически открывает содержимое результатов в панели Workspace. Вы также можете просмотреть результаты в любое время позже. Для этого просто дважды щелкните левой кнопкой мыши на нужном результате в панели Project Explorer.

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

В окне результатов отображаются данные, полученные во время выполнения всего запущенного теста (то есть результаты запуска). В левой части окна расположена древовидная структура тестов, которые выполнялись в ходе запуска. Чтобы просмотреть результаты выполнения какого-либо теста, просто выберите его в дереве. В нашем случае, мы выполнили только один тест, поэтому данное дерево содержит только один элемент. Иконка элемента показывает, выполнился ли этот тест успешно или нет.

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

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

Каждое сообщение может содержать расширенное описание и картинку. Чтобы просмотреть их, просто выберите нужное сообщение в окне результатов и посмотрите на панели Remarks и Picture, расположенные под списком сообщений. Например, на приведенном выше рисунке панель Remarks отображает дополнительный текст к сообщению "Toolbar button 5 was clicked" ("Щелчок по кнопке 5 на панели инструментов").

Панель Picturesсодержит два изображения, отвечающие  ожидаемому и реальному состоянию тестируемого приложения на момент начала выполнения выбранной тестовой команды ("ожидаемым" является изображение, полученое TestComplete во время записи теста, а "реальное" изображение соответствует состоянию приложения на момент выполнения теста). Панель Picture так же содержит специальную кнопку, позволяющую вам легко сравнить эти два изображения и выявить различия между ними. Такой подход облегчает поиск ошибок, которые могли возникнуть в вашем тесте. Для более детальной информации обратитесь к разделу Test Visualizer  в справочной системе TestComplete.

Панель Call Stack отображает последовательность выполнения тестов, которая привела к занесению выбранного вами сообщения в test log.

Чтобы увидеть тестовую операцию, выполнение которой привело к добавлению какого-либо сообщения в test log , дважды щелкните кнопкой мыши по этому сообщению. TestComplete откроет keyword тест в редакторе и подсветит соответствующую операцию. Например, если вы дважды щелкните кнопкой мыши по сообщению "Toolbar button 5 was clicked", TestComplete выделит операцию keyword теста, которая выполнила данное действие:

Для получения детальной информации о панелях в test log, занесении сообщений в test log и о работе с результатами тестирования, обратитесь к разделу Test Log справочной системы TestComplete.

Примечание:

Описанный нами test log типичен для keyword тестов и скриптов, созданных в TestComplete. Структура результатов, которые генерируются тестами других типов, может отличаться от того, что мы увидели в нашем случае. Например, нагрузочные тесты, работающие по протоколу HTTP (HTTP load tests), формируют test log, который содержит таблицы с информацией об эмулируемых виртуальных пользователях, подключениях к серверу, эмулируемых запросах и ответах на них. Для более подробной информации о результатах, обратитесь к описанию соответствующего элемента проекта или просто щелкните мышью по окну результатов и нажмите F1.


Что дальше?

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

Ø Recording in TestComplete

Данный раздел содержит информацию о записи тестов в TestComplete.

Ø Naming Objects

Данный раздел рассказывает, как TestComplete назначает имена для процессов, окон и элементов управления.

Ø Checkpoints

В данном разделе описаны различные типы контрольных точек (checkpoints), а также объясняется, как создавать контрольные точки во время записи теста и во время разработки.

Ø Simulating User Actions

В данном разделе объясняется, как эмулировать работу пользователя с мышью, клавиатурой и элементами меню в TestComplete.

Ø Working With Applications" Object and Controls

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

Ø Running Tests

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

Ø Test Log

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

Техническая поддержка и источники дополнительной информации

Если у вас возник вопрос, вы столкнулись с проблемой или нуждаетесь в помощи при освоении продукта, обратитесь к группе поддержки компании AutomatedQA, используя следующую страницу нашего web-сайта:

Ø  http://www.automatedqa.com/support/message

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

Вы также можете задать интересующий вас вопрос, получить ответы и обменяться мнениями и предложениями с другими пользователями в группе новостей и в блогах, найти ответы на свой вопрос в списке часто задаваемых вопросов (FAQ), ознакомиться со статьями, посвященными нашим продуктам, а также принять участие в обучающих семинарах по продукту TestComplete, проводимых компанией AutomatedQA.

Чтобы получить информацию об услугах технической поддержки, предлагаемых нашей компанией, посетите следующую страницу нашего web-сайта: http://www.automatedqa.com/support.


Алфавитный указатель


A

Automated testing........................................

B

Batch run.....................................................

Black-box applications...................................

C

Checkpoints.................................................

Connected applications..................................

D

Distributed testing........................................

F

Functional testing.........................................

GUI testing.................................................

H

HTTP load tests..........................................

K

Keyword тесты............................................

L

Log...........................................................

Переход к исходникам................................

N

Name mapping...........................................

O

Open Applications.......................................

P

Project Explorer..........................................

Project items..............................................

Project suites.............................................

Projects.....................................................

R

Regression testing......................................

S

Self-Testing applications.............................

Stores......................................................

T

Test log...................................................

Переход к исходникам...............................

Tested applications....................................

Testing.....................................................

U

Unit testing..............................................

W

White-box applications...............................

А

Автоматизированное тестирование............

Анализ записанного теста........................

Анализ результатов тестирования.............

В

Выполнение тестов...................................

Запуск в пакетном режиме........................

Начальные условия..................................

Остановка...............................................

Пауза......................................................

Г

Группы проектов.......................................

З

Запись тестов...........................................

И

Имена объектов.........................................

К

Контрольные точки....................................

Создание..................................................

М

Маппирование имен объектов......................

Модель тестовых объектов...........................

Модульное тестирование.............................

Н

Назначение имен объектам..........................

О

Объекты

Имена объектов..........................................

Маппирование имен....................................

Объектная модель.......................................

Открытые приложения.................................

П

Пакетный режим..........................................

Панели.......................................................

Панель Object Browser.................................

Панель Workspace.......................................

Планирование тестов...................................

Пользовательский интерфейс TestComplete....

Проекты......................................................

Создание....................................................

Р

Распределенное тестирование......................

Регрессионное тестирование........................

Результаты тестирования..............................

Переход к исходникам..................................

С

Скрипты......................................................

Служба поддержки.......................................

Т

Тестирование

Об автоматизированном тестировании............

Типы тестов.................................................

Тестируемые приложения..............................

Тестовые проекты.........................................

Создание.....................................................

Тесты

Анализ записанного теста.............................

Анализ результатов......................................

Выполнение.................................................

Запись.........................................................

Планирование..............................................

Создание.....................................................

Типы тестов.................................................

Техническая поддержка и источники дополнительной информации

Ф

Функциональное тестирование.......................

Э

Элементы Stores...........................................

Элементы проекта.........................................

Эмулирование действий пользователя.............


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=26912