
- •Введение
- •Глава 1. Сведения о предприятии
- •1.1 История создания и специфика работы
- •1.2.Заказчики и партнеры
- •1.3 Галактика erp: Обзорная характеристика продукта
- •1.5 Обзор новых продуктов
- •1.6 Краткая характеристика сайта компании
- •1.7 Система менеджмента качества
- •Глава 2. Информационные технологии предприятия
- •Глава 3. Индивидуальное задание Оценка эффективности системы автоматизированного тестирования «aqa»
- •3.1 Краткий обзор программных средств автоматизации локального тестирования.
- •3.2 Анализ функциональной полноты системы «aqa»
- •3.2 Сравнительный анализ систем «aqa» и hp Mercury Interactive
- •3.3 Предложения по доработке системы
- •Обеспечение возможности тестирования приложений, функционирующих под Windows, но написанных не на vip.
- •Обеспечение возможности контроля отчетов, выпускаемых в формате Word и Excel.
- •Обеспечение возможности контроля свойств объектов экранных форм.
- •Обеспечение возможности просмотра/корректировки контрольных точек теста
- •Обеспечение возможности управления выполнением планов тестирования
- •Развитие сервисных функций
- •Изменение главного интерфейса aqa с целью повышения эргономичности
- •Обеспечение возможности контроля экранных образов
- •Совершенствование языка скрипта
- •Заключение
Глава 3. Индивидуальное задание Оценка эффективности системы автоматизированного тестирования «aqa»
Процесс тестирования обновлений на ИП «Топ Софт» осуществляется отделом интегрального тестирования. Силами данного отдела проводится как функциональное, нагрузочное и регрессионное тестирование. Кроме этого, при каждом выпуске обновлений осуществляется прогон автоматизированных тестов на трех платформах (Pervasive, SQL, Oracle) для выявления возможных ошибок в уже существующем функционале.
Однако для увеличения эффективности самого тестирования, уменьшения сроков, отведенных на эту процедуру и сведения к минимуму количества возвратов ресурсов на доработку тестирование должно проводиться непосредственно в самих отделах разработки. Под этим подразумевается как предварительная проверка программистом выполненной им работы, так и непосредственно функциональное тестирование, проводимое локальным тестировщиком. При выполнении работы последним встает вопрос об автоматизации проверки корректности работы существующего функционала после внесения доработок. Для выбора оптимального средства автоматизированного тестирования был проведен сравнительный анализ существующих на рынке систем с собственной разработкой корпорации «Галактика»-программой «AQA», были выявлены достоинства и недостатки каждой, была произведена оценка эффективности при внедрении выбранной системы, а также были выработаны предложения по доработке и улучшению функционирования [1].
3.1 Краткий обзор программных средств автоматизации локального тестирования.
Rational Quantify
Разработчик постоянно сталкивается с проблемой необходимости увеличения производительности собственного приложения в сжатые сроки и с максимально возможной эффективностью.
Rational Quantify является простым, но в то же время мощным и гибким средством учета производительности приложений — эффективным инструментом для сбора и анализа информации о производительности созданного программного продукта.
Для тестирования приложения его необходимо запустить из Quantify , как в обыкновенном отладчике, (с той лишь разницей, что здесь нельзя наблюдать дизассемблированный код программы) и выполнить необходимые тестовые действия.
Quantify генерирует в табличной форме список всех вызываемых в процессе работы приложения функций, указывая временные характеристики каждой из них.
Quantify предоставляет полную статистическую выкладку по всем вызовам (внешним и внутренним), невзирая на размеры тестируемого приложения и время его тестирования. Сбор данных осуществляется посредством технологии OCI (Object Code Insertion). Суть способа состоит в подсчете всех машинных циклов путем вставки счетчиков в код для каждого функционального блока тестируемой программы (все циклы приложения просчитываются реально, а не при помощи произвольных выборок, как в большинстве пакетов тестирования). Уникальность данного подхода заключается в том, что, во-первых, тестируется не только сам исходный код, но и все используемые компоненты, (например: библиотеки DLL, системные вызовы), а во-вторых, для подобного анализа совсем необязательно иметь исходные тексты тестируемого приложения (правда, в этом случае нет возможности отслеживать внутренние вызовы).
Гибкая система фильтров Quantify позволяет, не загромождая экран лишними выводами (например, системными вызовами), получать необходимую информацию только о внутренних, программных вызовах.
Статистическая информация по вызовам может быть перенесена в Microsoft Excel, где можно построить как графики, так и сводные таблицы для разных запусков программы.
Тестируемое приложение можно перекомпилировать и запустить повторно, при этом Quantify способна запомнить все предыдущие вызовы и дать сравнительную оценку.
Основные возможности программы Quantify:
Выдает точную и детальную информацию о производительности приложения;
Указывает на все узкие места в приложении (как в пользовательском коде, так и в системных вызовах);
Представляет комплексный дополнительный обзор данных по производительности:
дерево вызовов (Call Graph);
список функций с точными замерами (Function List);
детальная статистика по конкретной функции (Function Detail);
Гибкая настройка по желаниям и потребностям пользователя;
Позволяет многократно тестировать приложение (по ходу разработки), отслеживая изменения в количестве вызываемых функций;
Интеграция с Visual C++ с возможностью вызова исходных текстов функций тестируемого приложения;
Интегрируется с Rational Robot, ClearQuest и Visual Test;
Поддерживает Visual C++, Visual Basic и Visual Java приложения.
Rational Purify
Данный продукт направлен на разрешение всех проблем, связанных с утечками памяти и Runtime ошибками. Возникновение подобного рода ошибок достаточно трудно отследить стандартными средствами, имеющимися в арсенале разработчика. И дело тут не только в том, что разработчик может где-то недосмотреть, где-то пересмотреть, а в том, что в подавляющем большинстве случаев проектные сроки вынуждают смотреть “сквозь пальцы” на “мелкие” неточности.
В общих чертах работа Purify сводится к выводу детальной статистики об использовании памяти приложением. Программа собирает данные о любых потерях в памяти. К ним можно отнести невозвращение блока, неиспользование указателей, остановку исполнения программы с выводом состояния среды при возникновении ошибки Runtime.
Purify позволяет анализировать исполняемый модуль, содержащий отладочнуюинформацию, либо работать на уровне исходных текстов, но только в среде Visual C++.
Работа программы начинается со сбора информации о загружаемых библиотеках, любых внешних модулях. Так же, как и в Quantify, сначала идет детальный сбор информации и анализ загружаемых библиотек, затем анализ переключается на исполняемый модуль. В зависимости от производительности и количества оперативной памяти данный процесс может быть длительным.
Purify предоставляет возможность разработчику не только видеть состояние исполнения (предупреждения, ошибки), но и переходить к соответствующему исходному тексту (такая возможность существует только для внутренних вызовов, поскольку исходные тексты динамических библиотек недоступны).
Важной особенностью работы Purify является возможность включения опции остановки на ошибке в тестируемом приложении: так, если в приложении есть Runtime-ошибка, то повстречавшись с ней приложение, не "вылетит" по дампу, а завершится с передачей управления Purify, который сообщит о том, где произошел сбой, по каким причинам и сколько при этом было использовано памяти.
Основные возможности программы Purify:
Отслеживание ошибок доступа к памяти;
Сбор и вывод статистики по использованию памяти;
Использование комплексного подхода к тщательному тестированию;
Технология OCI - Object Code Insertion позволяет детально отследить и выловить ошибку не только в контролируемом модуле, но и в модулях DLL сторонних разработчиков;
Тестирование ActiveX, COM/DCOM, ODBC, DLL;
Настраиваемый, двухуровневый способ тестирования приложений;
Отслеживание API вызовов;
Интеграция с Visual Studio;
Rational Pure Coverage
Основное и единственное назначение продукта – выявление участков кода, пропущенных при тестировании приложения.
Вполне очевидно, что при даже самом тщательном тестировании программы специалисту не удается протестировать абсолютно все ее функции. Это невозможно, как правило, по двум причинам: во-первых, разработчик не может сделать все абсолютно правильно с учетом всех возможных нюансов, во-вторых, даже учитывая все возможные реакции приложения на внешние “раздражители”, невозможно на 100% быть уверенным в том, что все протестировано.
Pure Coverage собирает статистику о тех участках программы, которые во время тестирования не были выполнены (пройдены). Дополнительно программа считает так называемые хиты – активно исполнявшиеся строки.
Разработчик может оценить не только, сколько раз вызывалась та или иная функция, а сколько раз исполнилась каждая строка, составляющая ее. Имея подобную статистику, очень просто выявить не исполнившиеся строки и проанализировать причину, по которой они не получили управления.
Подобные строки Pure Coverage подсвечивает цветом, четко указывая на наличие «черных дыр» в программе в виде непротестированного кода, и, тем самым, давая разработчику хорошую пищу для размышлений. Порядок работы с данным инструментом аналогичен, взаимодействию с описанными выше программами.