Logo Международный форум «Евразийская экономическая перспектива»
На главную страницу
Новости
Информация о журнале
О главном редакторе
Подписка
Контакты
ЕВРАЗИЙСКИЙ МЕЖДУНАРОДНЫЙ НАУЧНО-АНАЛИТИЧЕСКИЙ ЖУРНАЛ English
Тематика журнала
Текущий номер
Анонс
Список номеров
Найти
Редакционный совет
Редакционная коллегия
Представи- тельства журнала
Правила направления, рецензирования и опубликования
Научные дискуссии
Семинары, конференции
 
 
 
Проблемы современной экономики, N 1 (33), 2010
ЭКОНОМИКА, УПРАВЛЕНИЕ И УЧЕТ НА ПРЕДПРИЯТИИ
Кинелев В. Ю.
аспирант Смоленского филиала Московского энергетического института (Технического университета)

Организация процедуры автоматизированного тестирования программных средств для управления предприятием
В статье рассматривается модифицированная модель процесса тестирования программных средств управления предприятием, которая показывает возможность значительно снизить затраты и время на их реализацию. Эффект от автоматизации усиливается в том случае, когда команда разработчиков использует информационные системы для взаимодействия между специалистами
Ключевые слова: автоматизация, программные средства управления предприятием, тестирование, информационные системы, взаимодействие специалистов, управление разработкой

Процесс автоматизации деятельности предприятия представляет собой совокупность методических, языковых, технических и программных средств, позволяющих организовать работу конечных пользователей в некоторой предметной области.
В общем случае процесс разработки программных средств имеет творческий, инновационный характер. В то же время анализ современных программных продуктов показывает, что реализация их отдельных элементов может быть автоматизирована. Очевидно, что это позволит в значительной мере сократить финансовые и временные затраты на создание, внедрение и обслуживание информационных систем.
Выделим основные процессы разработки программных средств: разработка, внедрение и сопровождение программных продуктов. Эти процессы полностью покрывают жизненный цикл программных продуктов.
Процесс разработки включает в себя следующие процессы: анализ, проектирование, кодирование и тестирование создаваемого программного средства. Результатом данного процесса является продукт, готовый к внедрению у клиента.
Во время процесса внедрения выполняется установка, конфигурирование программного обеспечения на компьютерах клиента, тестовая эксплуатация, обучение персонала. На данном этапе возможна доработка программного продукта. Результатом данного процесса является переход программного продукта в промышленную эксплуатацию.
Процесс сопровождения программного продукта на этапе промышленной эксплуатации предназначен для устранения неполадок, небольших функциональных доработках и оказания консультаций пользователям.
Процесс управления включает планирование этапов, распределение ресурсов и задач, координацию исполнителей и контроль результатов. Это достаточно сложный процесс, так как программные продукты постоянно находятся в развитии.
По оценкам специалистов, на процесс разработки приходится до 80% времени и затрат, поэтому целесообразно подробнее рассмотреть процесс разработки программного обеспечения.
Анализ литературных источников показывает, что подходам к разработке программных средств уделяется достаточно много внимания, например известны следующие концепции: экстремальное программирование, каскадный подход, унифицированный процесс разработки программного обеспечения (Rational Unified Process, или RUP) [1].
RUP является наиболее популярной, поэтому рассмотрим процесс разработки программного обеспечения на базе этой концепции (рис.1).
Рис.1. Процесс разработки программных продуктов
Суть RUP заключается в том, что разработка разбивается на несколько итераций, в каждой из которых выполняются практически все типы работ (анализ, проектирование, кодирование, тестирование) и создается реально работающая система с все более и более развитой функциональностью. RUP, в сравнении c традиционным «каскадным» подходом, позволяет значительно снизить риски и затраты на разработку программных продуктов.
В ходе анализа и проектирования составляется технический проект, который показывает, как будет реализовано программное средство. Проект содержит описание классов, пакетов, подсистем и интерфейсов [2]. При анализе и проектировании могут использоваться те или иные программные средства для автоматизации этого процесса, но львиная доля приходится на человека. Учитывая развитие компьютерных технологий на сегодняшний день, заменить человека в данном процессе не возможно.
В процессе кодирования происходит реализация спроектированных классов, подсистем и интерфейсов, создается или обновляется структура базы данных. Операции в данном процессе разделяются на уникальные или специфические в рамках реализуемого программного средства и на рутинные, которые являются одинаковыми для целого класса программных средств.
В процессе тестирования выявляются ошибки и дефекты, а также устанавливается корректность функционирования программного обеспечения [3]. Процесс проводится с помощью выполнения тестовых процедур и сценариев, по полученным данным проводится анализ, в ходе которого определяется наличие дефектов и ошибок. В большинстве случаев проведение тестов и анализ полученных данных может быть проведено автоматически с помощью вычислительных средств. На рис. 2 представлена модель процесса тестирования программного обеспечения:
Типовой процесс тестирования состоит из следующих этапов:
анализ требований к программному обеспечению (на этом этапе специалисты по тестированию совместно с разработчиками определяют — какие аспекты подлежат тестированию);
Рис. 2. Модель процесса тестирования программного обеспечения
планирование тестирования (в ходе планирования определяется стратегия тестирования и создается план тестирования);
разработка тестов (на этом этапе разрабатываются процедуры, сценарии и наборы данных, которые будут применяться при тестировании);
выполнение тестов (выполняются процедуры и сценарии);
составление отчета о результатах тестирования и анализ результатов (составляется отчет о проведенном тестировании, который содержит информацию о результатах выполнения проведенных процедур и сценариев. Специалисты по тестированию, как правило, совместно со специалистами, отвечающими за выпуск программного обеспечения, определяют дальнейшие действия в отношении найденных дефектов).
Наиболее трудоемкими этапами являются этапы выполнения тестов, тестирования исправленных дефектов и регрессионное тестирование [4]. Эти этапы наиболее рутинны, содержат множество повторяющихся действий, которые могут быть автоматизированы в значительной мере. Автоматизация этих этапов позволит снизить затраты и время на реализацию программных средств. По оценкам специалистов, эффект от автоматизации этих операций составляет 30–40%.
На рис. 3 представлена модель модифицированного процесса тестирования программных средств.
Рис. 3. Модифицированный процесс тестирования программного обеспечения
В модифицированной модели предлагаются следующие изменения в процессе тестирования:
1) Этап планирования тестирования включает определение областей программного обеспечения, для которых целесообразно проводить автоматическое тестирование.
2) Этап разработки тестов дополнительно включает 3 шага по подготовке автоматических тестов: конвертация данных в формат, пригодный для скриптов автоматического тестирования, реализация скриптов и проверка скриптов.
3) На этапе выполнения тестов необходимо выполнять запуск автоматических тестов.
Выделим следующие классы тестовых процедур и сценариев для которых возможно провести автоматизацию:
— в процессе установки программного обеспечения:
1) установка с помощью программы установки, входящей в состав тестируемого программного средства;
2) выполнение первоначальной настройки программного средства;
3) проверка целостности установленного программного средства
4) запуск и первичная проверка работоспособности программного средства;
— в процессе обновления программного обеспечения
1) обновление программного обеспечения;
2) запуск и первичная проверка работоспособности программного средства;
3) проверка успешности переноса пользовательских данных и настроек в обновленную версию программного средства;
4) проверка работоспособности программного средства при обновлении операционной системы и ее компонентов;
— в процессе удаления программного обеспечения:
1) удаление с помощью программы удаления, входящей в состав тестируемого программного средства;
2) проверка сохранности пользовательских данных и настроек после удаления программного средства;
— в процессе тестирования пользовательского интерфейса:
1) проверка работоспособности запуска и открытия отдельных модулей программного средства;
2) создание и редактирование элементов (ввод данных в поля, чтение данных из полей и проверка этих данных);
3) удаление элементов;
4) проверка различных режимов (сортировка, группировка, скрытие или отображение отдельных элементов, расположение окон, изменение размеров);
5) проверка актуализации данных пользовательского интерфейса;
— в процессе тестирования алгоритмов:
1) чтение исходных данных;
2) ввод исходных данных;
3) выполнение процедур;
4) получение и результатов и сравнение с эталонными показателями;
— в процессе тестирования производительности:
1) выполнение отдельных операций с замером времени;
— тестирование устойчивости и надежности:
1) выполнение множества однотипных операций в тестируемом программном средстве;
2) повреждение отдельных компонентов программного средства или операционной системы и проверка поведения программного средства в этих условиях;
3) выполнение операций с неполными или некорректными входными данными;
4) нарушение предусмотренной последовательности проведения операций;
5) проверка повреждения пользовательских данных и настроек.
Для автоматизации указанных операций предприятие может выбрать практически любой современный язык программирования, например: C++, C#, Object Pascal, Java, Python. Выбор зависит от того, какие средства используются на данный момент и какими навыками обладает персонал предприятия. В то же время на рынке существуют решения для тестирования программного обеспечения, которое содержит уже готовые методы и функции для тестирования пользовательского интерфейса, производительности и надежности, что облегчает задачу по реализации тестовых процедур и сценариев.
При автоматизации процессов разработки программных продуктов следует уделить особое внимание организации взаимодействия специалистов, а также вопросам управления процессом разработки.
Современные информационные технологии позволяют организовывать работу территориально-распределенных команд, таким образом, что практически нивелируется отсутствие возможности прямого контакта между специалистами. Возможность привлечения специалистов, работающих вне предприятия дает ряд существенных преимуществ, а именно: привлечение специалистов из регионов с более низким уровнем оплаты труда; выполнение задач по запросу предприятия; отсутствие затрат, связанных с организацией рабочих мест; возможность привлекать более квалифицированных и/или подходящих специалистов для требуемых задач.
Учитывая указанные преимущества, целесообразно организовывать процесс разработки программного обеспечения таким образом, чтобы предприятие имело возможность создавать распределенные команды и привлекать удаленных специалистов.
Для создания распределенных команд и привлечения удаленных специалистов требуется такое размещение информационных ресурсов предприятия, при котором к этим ресурсам возможен доступ из-за пределов предприятия. Для организации доступа к ресурсам из-за пределов предприятия возможно применение нескольких способов:
● использование сервисов в глобальной сети Интернет, предоставляющих конечные услуги;
● аренда выделенных или виртуальных серверов;
● создание собственного сервера на территории предприятия, создание канала передачи данных для доступа к информационным ресурсам сервера.
Использование готовых серверов является наименее затратным и наименее безопасным, с точки зрения защищенности, способом. В данном случае информационные ресурсы располагаются удаленно относительно самого предприятия.
При использовании арендованных серверов предприятию требуется самостоятельно устанавливать и настраивать программное обеспечение.
При создании собственного сервера предприятию также требуется установка и настройка программного обеспечения. Кроме этого, необходимо подготовить специально оборудованное вентилируемое и охлаждаемое помещение. Доступ персонала в данное помещение необходимо ограничить.
При выборе программного обеспечения для установки на сервер необходимо обязательное наличие возможности удаленного доступа, который, как правило, организован с помощью веб-интерфейса.


Литература
1. Орлов С.А. Технологии разработки программного обеспечения. — СПб.: Питер, 2002.
2. Вендров, А.М. Проектирование программного обеспечения экономических информационных систем. — М.: Финансы и статистика, 2000.
3. Тамре Л. Введение в тестирование программного обеспечения. — М: Вильямс, 2002.
4. Дастин Э., Рэшка Д., Пол Д. Автоматизированное тестирование программного обеспечения. — М.: Лори, 2003.

Вернуться к содержанию номера

Copyright © Проблемы современной экономики 2002 - 2021
ISSN 1818-3395 - печатная версия, ISSN 1818-3409 - электронная (онлайновая) версия