- •Семестр 9 р1. Принципы построения пользовательского интерфейса в приложениях систем управления р1: Лекция №1. Обобщенная архитектура прикладной составляющей программного обеспечения систем управления
- •Жизненный цикл изделия и программные средства его поддержки
- •Обобщенная архитектура систем управления электроавтоматикой
- •Характеристики современного процесса разработки прикладной составляющей электроавтоматики
- •Вопросы:
- •Р1: Лекция №2. Базовые элементы платформы приложений су для построения интерфейса пользователя
- •Компоненты каркаса
- •Компоненты конфигурирования
- •Компоненты средств интерфейса пользователя
- •Конфигурирование компонентов в составе системы
- •Вопросы
- •Р1: Лекция №3. Принципы классификации прикладных компонентов систем управления
- •Виртуальная структура прикладной области
- •Матрица компонентов
- •Анализ и систематизация набора прикладных компонентов с применением матрицы
- •Определение минимально необходимого набора прикладных компонентов системы
- •Вопросы
- •Семестр 9 р2. Технологии .Net в разработке приложений систем управления р2: Лекция №4. Основные понятия платформы .Net
- •Строительные блоки .Net (clr, cts, cls)
- •Преимущества с#
- •Промежуточный язык msil
- •Работа с пространствами имен
- •Память в приложениях .Net
- •Проверка наличия утечек
- •Получение дополнительной информации о пространстве имен и типах сборки
- •Вопросы
- •Р2: Лекция №5. Принципы взаимодействия .Net с разработанным кодом
- •Преобразование исходных кодов в новый формат языков .Net
- •Использование двоичных компонентов для организации взаимодействия с компонентами .Net
- •Вопросы
- •Р2: Лекция №6. Инструментарий процесса разработки
- •P2: Лекция №6. Инструменты отладки приложений в .Net Framework 2.0 и выше Утилиты
- •Загрузка расширения отладки sos
- •Примеры:
- •Базовые различия
- •Сборка мусора в .Net Framework
- •Причины смешивания управляемого и неуправляемого кодов
- •Концепция CoDeSys
- •Окно приложения Сodesys:
- •P3. Лекция № 9. Возможности CoDeSys как открытой системы
- •Архитектура приложений современных систем управления
- •Выявление открытых интерфейсов среды
- •Встраивание сцены трёхмерного моделирования объекта управления
- •P3. Лекция № 10. Взаимодействие с аппаратными средствами платформы CoDeSys
- •Основные характеристики и назначение
- •Построения средств диагностики и управления устройствами электроавтоматики на базе opc технологии
- •Особенности механизмов работы opc серверов
- •Реализация интерфейсов opc в сервере
- •Реализация opc компонентов диагностики для контроллеров CoDeSys sp
- •Вопросы
- •Семестр 9 р4. Тестирование приложений систем управления через интерфейс оператора p4. Лекция № 11. Базовые понятия процесса тестирования
- •Жизненный цикл разработки программного обеспечения
- •Модели жизненного цикла
- •Каскадный жизненный цикл
- •Спиральный жизненный цикл
- •Экстремальное программирование
- •Тестирование, верификация и валидация - различия в понятиях
- •Задачи и цели процесса верификации
- •P4. Лекция № 12. Использование пакетов автоматизации тестирования
- •Методы проведения тестирования пользовательского интерфейса, повторяемость тестирования пользовательского интерфейса
- •1) Ручное тестирование
- •2) Сценарии на формальных языках
- •Тестирование удобства использования пользовательских интерфейсов.
- •Принцип использования коммерческих приложений для тестирования пользовательского интерфейса
- •Обзор Quickt Test. Основные понятия
- •Использование Actions, Iterations
- •Использование объекта DataTable и параметризация
- •Распознавание объектов в qtp и уникальность их свойств
- •P4. Лекция № 13 Модульное тестирование
- •Цели и задачи и модульного тестирования
- •Понятие модуля и его границ. Тестирование классов
- •Подходы к проектированию тестового окружения
- •P4. Лекция № 14. Возможности uiAutomation
- •Начальное представление
- •Представление элемента управления
- •Представление содержимого
- •Шаблоны элементов управления uia
Распознавание объектов в qtp и уникальность их свойств
При записи теста QTP записывает описания объектов интерфейса тестируемого приложения (Application Under Test, AUT), с которыми тест взаимодействует, в Object Repository. Если QTP что-то не распознаёт, с 99.9% вероятности это означает, что свойства распознавания в Object Repоsitory указаны неверно. Это происходит потому, что при записи QTP записывает в Object Repository совершенно определённый набор свойств объекта, одинаковый для каждого отдельного типа объектов. Какие именно свойства QTP записывает для каждого типа объектов определяется настройками Object Idenfication (Tools>Object Identification...).Для настройки свойств уникальности распознавания объектов следует:
-
Спомощью Object Spy выяснить, какие именно свойства, из тех что записываются в Object Repository для объекта, меняются от сессии к сессии;
-
Выяснить, какие свойства не меняются - их можно использовать для распознавания;
-
Пойти в Object Identification Settings (Tools>Object Identification) и для соответствующего типа объектов правильно настроить свойства распознавания (которые будут прописываться в Object Repository при записи).

Рис. 48 Окно Object Identification
Mandatory Properties — свойства, которые QTP прописывает для этого типа объектов в Object Repository ВСЕГДА.
Assistive Properties — свойства, которые QTP прописывает в Object Repository ТОЛЬКО если во время записи объекта в Object Repository в приложении еcть более одного объекта, удовлетворяющих Mandatory Properties.
В качестве Mandatory свойств надо прописывать такие свойства, которые чаще всего остаются неизменными от версии к версии, но при этом позволяют отличить один объект от другого.
Assistive свойства выбирают так: это свойства которые наверняка позволят отличить объекты один от другого, но есть небольшая вероятность их изменения от одной версии приложения к другой.
Настройки QTP по умолчанию не слишком удачны для работы с Win32 GUI приложениями, написанными НЕ на MFC и для динамических страниц Web.
Практически для всех типов объектов в качестве Assistive свойства указано window id. Для приложений, написанных без использования Microsoft Fundation Classes это приводит к тому, что объекты не распознаются при воспроизведении, так как window id меняется от сессии к сессии.
Rational RobotJ
RobotJ – это новейшая разработка Rational Software, предназначенная для тестирования Java- или веб-приложений, работающих на платформах Microsoft Windows и Unix. 4 RobotJ встраивается в открытую интегрированную среду разработки (Integrated Development Environment, IDE) фирмы IBM, известную как Eclipse. Используя IDE-среду IBM, как показано на Рис. 49, RobotJ оказывается в одном ряду с другими программными решениями, разрабатываемыми Rational Software и прочими производителями, которые обеспечивают простую интеграцию инструментария в общий интерфейс.

Рис. 49 Интерфейс Rational RobotJ
Регистратор RobotJ хранит рабочие копии всех объектов, задействованных во время сеанса записи. Большинство этих объектов помещается в группу с названием Test Object Map (Схема тестируемого объекта).
Другие элементы, например, те, что созданы в процессе определения контрольной точки, добавляются в раздел Verification Points (Контрольные точки).
В схеме тестируемого объекта отслеживаются все характеристики объекта, включая его имя, тип, родительские элементы, одноранговые элементы и прочие свойства. Имя элемента также используется для создания функций или методов, используемых сценарием для взаимодействия с объектом.
Поскольку RobotJ не учитывает каких бы то бы ни было атрибутов объекта, то даже если его свойства изменяются в процессе разработки, велика вероятность, что сценарий продолжит работать без возникновения ошибки. Тем не менее, предупреждения будут регистрироваться в журнале, позволяя инженеру по автоматизации преобразовать объект и установить 100% для значения соответствия в RobotJ.
Так же данный программный продукт дает возможность управления весовыми коэффициентами, применяемыми к различным свойствам управляющего элемента в процессе поиска совпадений программой RobotJ. Эти весовые коэффициенты позволяют разработчику сценария указать, на что RobotJ должен обратить внимание, а что менее важно, когда в процессе выполнения сценария осуществляется поиск соответствующего элемента управления. Таким образом, прерывания сценариев происходят значительно реже.
