Руководство по инструменту: Выполнение тестовых комплектов с помощью инструментов Rational PurifyPlus (Windows и UNIX)
В этой памятке по инструменту описывается применение инструментов Rational PurifyPlus в тестовых комплектах для обнаружения потенциально опасных ошибок и утечек памяти чтобы убедиться, что тесты достигают приемлемого уровня охвата кода и чтобы обратить внимание на недостатки производительности.
Инструмент: Rational PurifyPlus
Взаимосвязи
Основное описание

Данная памятка по инструменту подходит как для Microsoft Windows, так и для UNIX.

Инструменты PurifyPlus содержат Rational Purify, Rational PureCoverage и Rational Quantify.

значок книгиДля получения дополнительных сведений об инструментах PurifyPlus обратитесь к руководству Начало работы по PurifyPlus (для версии под Windows или UNIX).

значок справочникаПошаговая информация о применении инструментов PurifyPlus приведены в электронной справке по инструменту.

С помощью инструментов PurifyPlus можно выполнить следующие действия:

  • Обнаружить ошибки памяти и утечки (программы C/C++ для Windows и UNIX). С помощью Purify можно найти ошибки и утечки в тестируемых приложениях.
  • Отслеживать охват кода (Windows и UNIX). С помощью PureCoverage можно обнаружить пробелы в тестировании и предупредить о регрессиях.
  • Профилировать быстродействие (Windows и UNIX). Используя Quantify можно выяснить, не снизилась ли производительность из-за новых добавлений.

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


Этапы работы с инструментами

Для реализации тестов с помощью инструментов PurifyPlus выполните следующие действия:

1. Выполните программу в Purify для сбора ошибок и данных об утечках (только для программ C/C++) 

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

Начните с добавления Purify в существующие сценарии Perl, пакетные файлы и команды создания файлов.

  • В Windows измените командные строки для запуска программ<имя_программы>.exe
     
    Purify /SaveTextData <имя_программы>.exe
     

  •  
  • В UNIX измените строку компиляции и компоновки:
     
    % purify -logfile=<имя_файла> cc -g <имя_программы>.c

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

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

Можно собрать данные об охвате для идентичных выполнений, если в системе установлен PureCoverage, добавив опцию /Coverage (Windows) или опцию purecov purify (UNIX). С помощью данных об охвате можно также найти компоненты кода, еще не проверенные на ошибки. Дополнительные сведения о применении данных об охвате приведены в описании этапа 2 данной памятки по инструменту.

Примечания :

  • С помощью Purify API можно управлять сбором данных из программы.
  • Purify также имеет опции командной строки, позволяющие сохранить данные тестов в виде двоичных файлов, которые можно просмотреть с помощью графического интерфейса пользователя Purify; более подробные сведения можно найти в памятке по инструменту "Анализ производительности выполнения с помощью инструментов Rational PurifyPlus".

значок справочникаДополнительные сведения приведены в следующих разделах электронной справки Purify:

  • выполнение программ
  • сообщения об ошибках
  • опции
  • функции API
  • сохранение данных

2. Выполнение программ в PureCoverage для мониторинга охвата кода.  

PureCoverage предоставляет точную информацию об охвате кода на уровне строк и функций. Используйте PureCoverage с ночными тестами для обеспечения адекватности тестов разработке кода.

Начните с добавления PureCoverage в существующие сценарии Perl, пакетные файлы и команды создания файлов.

  • В Windows измените командные строки для запуска программ или файлы классов Java, файл .jar или аплет для добавления PureCoverage:
     
    Для программ C/C++: Coverage /SaveTextData <имя_программы>.exe
    Для файлов классов Java: Coverage /SaveTextData /Java Java.exe <имя_класса>.class
    Для управляемых программ кода .NET: Coverage /SaveTextData /Net <имя_программы>.exe
     
    С помощью опции /SaveTextData можно выполнить PureCoverage без пользовательского интерфейса и при выполнении программы из сценария он отправит данные в текстовый файл вывода после завершении программы.

  •  
  • В UNIX измените строку компиляции и компоновки:
     
    Для программ C/C++: % purecov cc -g <имя_программы>.c
    Для файлов классов Java: % purecov -java java <имя_класса>
     
    Воспользуйтесь опцией PureCoverage -export после завершения программы для записи данных охвата в текстовый файл вывода.

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

Можно объединить данные охвата из нескольких запусков тестов или сохранить их в отдельных файлах для анализа изменений охвата.

С помощью сценариев можно сравнить текущие данные с данными, собранными в предыдущих выполнениях. Если охват сократился, возможно, ваши тесты не выполняют код должным образом или новый код создал ошибку, из-за которой большие области кода не тестируются. С помощью инструмента тестирования, такого как Rational Robot или Rational Visual Test, запишите тестовые сценарии, выполняющие новый код.

Примечание: можно изучить файлы данных охвата двоичных файлов с помощью графического интерфейса PureCoverage.

значок справочникаДополнительные сведения приведены в следующих разделах электронной справки PureCoverage:

  • выполнение программ
  • опции
  • функции API
  • сохранение данных
  • сравнение данных

3. Выполните программу в Quantify для профилирования производительности 

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

Начните с добавления Quantify в существующие сценарии Perl, пакетные файлы и команды создания файлов.

  • В Windows измените командные строки для запуска программ или файлы классов, файл .jar или аплет для добавления Quantify:
     
    Для программ C/C++: Quantify /SaveTextData <имя_программы>.exe
    Для файлов классов Java: Quantify /SaveTextData /Java Java.exe <имя_класса>.class
    Для управляемых программ кода .NET: Quantify /SaveTextData /Net <имя_программы>.exe
     
    С помощью опции /SaveTextData можно выполнить Quantify без пользовательского интерфейса и при выполнении программы из сценария он отправит данные в текстовый файл вывода после завершении программы.

  •  
  • В UNIX измените строку компиляции и компоновки:
     
    Для программ C/C++: % quantify cc -g <имя_программы>.c
    Для файлов классов Java: % quantify -java java <имя_класса>
     
    Воспользуйтесь опцией Quantify -export после завершения программы для записи данных производительности в текстовый файл вывода.

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

Можно написать сценарии, сравнивающие наборы данных и сообщающие об изменении производительности:

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

Примечание:Quantify также может сохранять данные тестирования в виде двоичных файлов, которые можно изучить с помощью пользовательского интерфейса Quantify; этот вопрос описан более подробно в памятке по инструменту "Анализ производительности выполнения с помощью инструментов Rational PurifyPlus".

Дополнительная информация приведена в следующих разделах электронной справки Quantify:

  • выполнение программ
  • опции
  • функции API
  • сохранение данных
  • сравнение данных