Создание и фильтрация дополнительных журналов во время выполнения сценариев в IBM Rational Functional TesterИсточник: IBM
Описание: При использовании IBM Rational Functional Tester с приложениями, основанными на Eclipse, информация о сбоях, представляемая в виде Problems, довольно ограниченна и недостаточна для эффективного определения проблем и анализа ошибок. В этой статье объясняется, как можно собрать подробную информацию в виде Problems и в журнале ошибок, отфильтровать эту информацию и эффективно воспользоваться ею, чтобы улучшить определение проблем и идентификацию ошибок. Различные инструменты автоматизации позволяют тестировщикам записывать и воспроизводить сценарии тестирования, а затем повторно использовать эти же сценарии в следующий раз. Один из основных критериев оценки качества автоматизации - наличие в сценарии набора точек верификации для обнаружения как прогнозируемых, так и непредвиденных ошибок. IBM® Rational® Functional Tester поддерживает несколько типов точек верификации (например, точки верификации Data, Properties и Image), которые вставляются в сценарии автоматического тестирования, чтобы предусмотреть типичные проблемы, возникающие в приложениях. Однако в некоторых случаях точки верификации не используются или собранные данные бесполезны при определении проблем. В таких случаях вместо добавления точек верификации в сценарий тестирования тестировщикам необходимо кодировать механизм проверки. В этой статье показано, как это сделать. Eclipse - это интегрированная среда разработки (Integrated Development Environment - IDE), которая используется в основном для целей разработки. IBM Rational Functional Tester встроен в Eclipse. В данной статье предполагается, что читатели хорошо знакомы со средой Eclipse, настройкой Rational Functional Tester для тестируемых приложений, с записью/воспроизведением сценариев тестирования и содержимым сценариев тестирования, а потому эти области не описываются детально. Мы использовали IBM Rational Application Developer (Eclipse-приложение) в качестве тестируемого приложения. Наиболее распространенным вариантом использования IBM Rational Application Developer является создание нового проекта при помощи мастера. В результате работы мастера создается проект, который похож на проект Rational Functional Tester и, в зависимости от своего типа, содержит Java-файлы, XML-файлы и несколько файлов свойств. Большинство других случаев, связанных с использованием проекта, - это операции в графическом интерфейсе, такие как перетаскивание текстового блока в .jsp-файл, приводящее к изменениям в новом проекте. IBM Rational Application Developer отображает в виде Problems любые обнаруженные при компиляции ошибки или предупреждения. Любые исключительные ситуации, отмеченные во время исполнения, накапливаются в виде Error Log (файл журнала рабочей области). Тестировщики записывают сценарий тестирования и вставляют точки верификации в соответствии с назначением теста, а затем проверяют в этих двух видах наличие каких-либо ошибок, зафиксированных во время выполнения варианта тестирования. Поскольку в виде Problems фиксируются ошибки времени компиляции, использование точек верификации является простым способом обнаружить эти ошибки. Rational Functional Tester помечает вариант тестирования как неудавшийся и предоставляет в виде Problems снимок зафиксированной ошибки. Однако не всегда целесообразно использовать точки верификации, чтобы собрать детальную информацию, связанную с тестируемым приложением. Причина в том, что во время выполнения задачи случаются исключительные ситуации, отображаемые в виде Error. Таким образом, операции в тестируемом приложении могут быть успешными, но неправильными по причине наличия в файле журнала исключительных ситуаций и предупреждений. В виде Problems возникает ограничение, если ошибок так много, что появляется полоса прокрутки. Из-за прокрутки вы не можете видеть все ошибки в снимке сбоев, предоставляемом Rational Functional Tester. В виде Error ограничение связано с тем, что посредством снимка невозможно представить детальную трассировку стека для исключительной ситуации. Для лучшего определения проблем и минимизации риска пропустить ошибку необходима трассировка обоих этих видов. В данной статье объясняется, как собрать информацию в видах Problems и Error Log тестируемого приложения, отфильтровать ее и модифицировать для определения проблем и выявления ошибок. Ссылки на файлы журнала рабочей области, приведенные в данной статье, можно применить к любой тестируемой системе, которая создает файлы журнала. Подготовка Rational Functional Tester к тестированию приложений, основанных на Eclipse Чтобы использовать IBM Rational Functional Tester для основанных на Eclipse приложений, необходимо настроить приложение и запустить среду тестирования. Чтобы настроить приложение:
Чтобы запустить среду Eclipse для тестирования:
Запись и воспроизведение сценариев тестирования В зависимости от мастерства тестировщика и сложности тестируемого приложения существует много способов кодирования сценариев тестирования. Как и другие автоматизированные средства тестирования, Rational Functional Tester позволяет тестировщику легко записывать операции в графическом интерфейсе и воспроизводить их в тестируемом приложении. Тестировщик может также кодировать вариант тестирования вручную, без использования возможностей записи, предоставляемых инструментарием, и захватывать объекты тестирования позднее, идентифицируя их при помощи инструментария. Создание и фильтрация дополнительных журналов Получение информации дополнительного журнала - это двухступенчатый процесс: во-первых, необходимо создать дополнительные информативные журналы, во-вторых, отфильтровать из них существенную информацию для быстрого анализа после выполнения. Приведенные ниже методы создания журналов следует применять строго после окончания сценария в варианте тестирования и до начала планируемого восстановления или очистки тестовой среды для выполнения следующего варианта тестирования. Создание дополнительных журналов Обычно несколько вариантов тестирования объединяют в набор тестов и затем выполняют весь набор тестов целиком. После каждого варианта тестирования тестируемое приложение восстанавливается в исходное состояние, что включает в себя очистку тестовых данных, созданных во время выполнения варианта тестирования. Ошибки, фиксируемые в виде Problems, являются специфическими для проекта ошибками, возникающими во время компиляции. Поэтому после завершения выполнения проект удаляется, а информация теряется. Напротив, информация в файле журнала сохраняется, поскольку действия тестировщика продолжаются. Ограничение файла журнала состоит в том, что после выполнения набора тестов вы не в состоянии определить, какие исключительные ситуации к какому варианту тестирования относятся. Поэтому, прежде чем запустить вариант тестирования, необходимо очистить или удалить файл журнала, чтобы гарантировать, что записи в нем будут принадлежать только последнему варианту тестирования. После очистки или удаления файла журнала закодируйте методы обработки файла для получения нужной информации из данного файла журнала и поместите эти методы в сценарий тестирования после методов или кода выполнения теста. Для достижения наилучших результатов записывайте и поддерживайте сценарии тестирования в атомарной форме - один вариант использования на один сценарий тестирования. Сбор информации в виде Problems Как уже упоминалось ранее в этой статье, предоставляемые Rational Functional Tester точки верификации могут сообщать о наличии ошибок компиляции и предоставлять снимки вида Problems. Но для лучшего анализа и определения проблем необходим полный список ошибок, который может не отображаться на снимке. Следующий метод объясняет, как извлечь этот список. Присвойте аргументу, передаваемому в метод, имя сценария, для которого будут собираться данные в файле журнала. Это привязывает данные в файле ErrorDetails к сценарию, потому что перед каждой записью в файле журнала указывается имя сценария. Пример кода для сбора данных в виде Problems В приведенном ниже примере кода сначала открывается вид Problems, а затем этот вид проверяется на наличие в нем записи. Если запись найдена, код проверяет, является ли она записью об ошибке (кроме списка ошибок вид также предоставляет список предупреждений). Если это запись об ошибке, код создает файл
Сбор информации в виде Error Log (файл) журнала В дополнение к фиксации в виде Problems ошибок и предупреждений времени компиляции, в файл журнала рабочего пространства Eclipse записываются исключительные ситуации времени исполнения. Таким образом, необходимо проверять этот файл после выполнения каждого сценария, а также во время выполнения теста. Проверка файла после каждого сценария гарантирует, что можно будет определить, какие исключительные ситуации к какому сценарию относятся. В следующем примере кода сначала проверяется, сделана ли запись в файл журнала после завершения варианта тестирования. Если в журнале нет записи, код пропускает остаток метода, потому что вариант тестирования выполнен правильно и никакой информации для сбора нет. Если файл журнала содержит записи, код создает текстовый файл на основе имени сценария, сканирует файл журнала и записывает данные в этот текстовый файл. Листинг 2. Пример кода для сбора данных в файле журнала
Фильтрация собранной информации (журналы) В предыдущих примерах создаются дополнительные журналы, но не определяется значимость содержащейся в них информации. При определении и анализе проблем группы разработки в первую очередь интересуются ошибками или исключительными ситуациями, которые связаны с их компонентами. В этом разделе рассказывается, как отфильтровать созданные журналы. Для фильтрации журнала в качестве параметра передается строковая переменная с информацией, по которой необходимо выполнить фильтрацию, например, именем компонента или плагина. Необходимо передать месторасположение фильтруемого файла журнала в качестве параметра, в котором можно использовать имя сценария (например, C:\TestResults\Test Scenario_Filter.txt) вместе со строкой для фильтрации файла журнала. Значение LogPath такое же, что и в приведенном выше методе, и должно представлять собой имя фильтруемого файла. Листинг 3. Пример кода для фильтрации/сортировки заданных журналов
Используя вышеприведенные методы, вы получили модифицированные отфильтрованные журналы, как показано на рисунке 3. Файл ErrorDetails содержит ошибки компиляции, которые имели место в рабочем пространстве для всех выполненных тестов, в том числе записи, не показанные на снимках Rational Functional Tester из-за прокрутки. Рисунок 3. Список созданных файлов журналов На рисунке 3 перечислено несколько файлов, например, На рисунке 4 показано содержимое обычного файла ErrorDetails.text. На основе этого файла можно определить ошибки компиляции, которые связаны с определенным вариантом тестирования. На рисунке 4 можно увидеть запись "Error while creating jsrbasicPortlet Targeted on WebSphere portal v6.1". Это заголовок, переданный в метод errorDetails () как строка (ее можно настроить или получить путем объединения нескольких параметров, используемых в конкретном варианте тестирования), и следующий за заголовком пронумерованный список проблем, которые перечислены в виде Problems при выполнении варианта тестирования. Рисунок 4. Содержимое файла ErrorDetails Преимущества данного подхода:
|