788 K

Август 2010

 


Покрытие кода и углубленное тестирование. Часть 1

Лайза Слэйтер Николлз (Lisa Slater Nicholls)

Что мы будем «покрывать»

Эта статья полностью посвящена вопросам тестирования приложений. Трудная задача, поскольку тестирование означает нечто большее, чем просто «выполнение тестов».

Перед их выполнением, тесты должны быть разработаны, а после — интерпретированы. В рамках этой статьи много времени отводится на демонстрацию того, как извлечь максимум пользы из анализа покрытия кода в Visual FoxPro. Вы научитесь настраивать входящие в дистрибутив классы инструментального средства Coverage Profiler (профилировщик покрытия), дополнять возможности и создавать подклассы этих классов. Вы также познакомитесь с концепциями покрытия и профилирования в том виде, как они применяются и реализованы в VFP.

Команда SET COVERAGE TO <имя файла>, которая появилась в версии VFP 5, обеспечивает автоматическую генерацию протокола во время выполнения программного кода. Эти данные могут помочь вам локализовать фрагменты программного кода, которые, возможно, не были в достаточной мере протестированы, недоиспользуются или несут ответственность за неприемлемые задержки. Приложение COVERAGE.APP из дистрибутива VFP 6 анализирует полученный протокол вместо вас и позволяет выявить перечисленные случаи.

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


PE-файлы, контроль учетных записей (UAC), COM без регистрации и другие невероятные вещи. Часть 4

Крейг Бойд (Craig Boyd)

Повышение уровня выполнения COM-объектов

В программном коде, приведенном в конце этой статьи, есть функция с именем CreateObjectElevated, которая дополняет набор встроенных в Visual FoxPro функций CreateObject, CreateObjectEx и NewObject. Что такого делает эта функция, чего не могут сделать три другие? Она обеспечивает повышение уровня выполнения COM-объектов. В сущности, повышение уровня привилегий COM-объектов обеспечивает для приложения, работающего под учетной записью пользователя с ограниченными правами (limited user account, LUA), возможность создать экземпляр объекта COM-класса (OLEPublic), требующего более высокого уровня разрешений для выполнения своей работы (в зависимости от компонента и от предназначения этого класса). Программный код функции CreateObjectElevated отличает некоторая его «продвинутость», но думаю, вы согласитесь: ничего сверхсложного эта функция не делает, она создает для нас экземпляр класса.


Универсальная утилита импорта. Часть 2

Дуг Хенниг (Doug Hennig)

В 1-й части этой серии публикаций (см. журнал FoxTalk за март 2010 года), состоящей из двух статей, был представлен набор классов, образующих универсальную утилиту импорта, которую вы можете добавить в свои приложения, чтобы обеспечить возможности импорта данных из разнообразных источников. Во 2- й части внимание сфокусировано на компонентах пользовательского интерфейса.

Как мы видели в предыдущей статье, классы из библиотеки SFImport.VCX обеспечивают компоненты механизма импорта универсальной утилиты импорта. Классы из библиотеки SFImportUI.VCX обеспечивают компоненты пользовательского интерфейса. Главный класс, SFImportWizard, предоставляет диалоговое окно в стиле мастера, с помощью которого пользователь может выбрать импортируемый файл (источник), таблицу, в которую импортируются данные (цель), описать отображение полей источника в поля цели и осуществить импорт. Вместо того, чтобы изучать программный код этих и других классов из библиотеки SFImportUI.VCX, я буду рассматривать работу указанного диалогового окна с точки зрения пользователя и плюс к этому обозначу некоторые места, которые вам, возможно, потребуется доработать в соответствии с вашими нуждами. Можете подвергнуть этот код всестороннему анализу, если хотите понять, как он работает.


Возврат на основную страницу

К архивам

© Edel Ltd. Все права защищены. 2010 г.

Hosted by uCoz