Введение
1. Постановка задачи
2. Анализ системы
2.1. Общие сведения о системе
3. Нагрузочное тестирование
3.2. Терминология нагрузочного тестирования
3.3. Выбор основных метрик для нагрузочного тестирования системы
3.4. Методы и инструментарий нагрузочного тестирования
3.5. Построение модели нагрузочного тестирования
4. Сбор результатов нагрузочного тестирования
4.1. Снятие показателей в изолированной системе
4.2. Снятие показателей в интегрированной системе
5. Статистический анализ результатов тестирования
5.1. Регрессионный анализ
Заключение
Список литературы
Приложение
1. Автоматизация тестового сценария
2. Результаты верификации, используемые для регрессионного анализа
В современном мире общество развивается с невероятной скоростью, все новые и новые технологии проникают в жизнь людей, тем самым упрощают ее, открывают новые возможности, которые раньше казались невозможными. Информационные технологии очень быстро превратились в жизненно важный стимул развития не только мировой экономики, но и других сфер человечества. Трудно вообразить нашу повседневную жизнь без технологий.
В таком случае, нет ничего удивительного в том, что информатизация достигла и бизнес-процессы в сфере медицинского обслуживания. На сегодняшний день информационные системы в медицине используются все шире: при создании любой современной медицинской лаборатории без IT- составляющей не обойтись. Это дает не только выгоду с экономической точки зрения, но и обеспечивает скорость выполнения заказов, точность данных, простоту действий, выполняемых медицинскими работниками на местах, уменьшение рисков, связанных с финансами и качеством обслуживания [1].
Любой коммерческий сетевой проект рассчитан на получение некого дохода. А для того чтобы увеличить эту прибыль, необходимо увеличивать количество клиентов до наилучшего показателя и свести к минимуму потери. Современные клинические лаборатории разрастаются до компаний-гигантов. Система, рассмотренная автором, насчитывает более 350 городов, около 800 офисов по всей стране, каждый день принимающая не менее 50 человек. Система, обеспечивающая работу внутри такой компании должна быть действительно надежной, работать без ошибок и сбоев. Каждый день, огромный поток информации поступает из лабораторий в центральный офис, оттуда в общую шину данных, а затем расходится по сторонним системам. Потеря, искажение информации может привести к большим финансовым потерям, а так же не исключена возможность полного отказа всей системы, оттоку возможных клиентов и прибыли. Именно поэтому нагрузочное тестирование не только полезно, но и финансово обоснованно.
В наши дни тестирование стало значимой частью программного обеспечения. Этот процесс является комплексным и преследует такие цели как: выявление ошибок в работе программы, проверка качества системы на соответствие заявленным требованиям, предотвращения появления дефектов в дальнейшей работе и другие. Процесс тестирования как правило заключается в планировании, разработке и реализации тестов, а так же их дальнейшей поддержке[2].
С ростом и развитием информатизации, методы и способы тестирования программ, приложений, сайтов тоже не стояли на месте. Разумеется, существуют способы избежать ошибок и рисков - провести полное тестирование системы. Но не стоит забывать, что нагрузка на систему каждый день - огромная, а так же тот факт, что система работает не только в изолированном режиме, но и существует интеграция с другими сторонними системами. Современные методы тестирования не описывают подходы к таким сложным системам подробно, нет никаких четких представлений как проводить нагрузочное тестирование в таких случаях [3].
На данный момент существующие методики верификации программного обеспечения не могут предсказать поведение системы при ее интеграции в сложные конгломераты типа шина. Данные системы подвергаются большим нагрузкам и тестировать их существующими методами не имеет смысла, так как результаты будут не полными и не смогут дать точную оценку о работе приложения. Такой пробел в тестировании может привести к большим бизнес потерям.
В ходе работы автор поставил и выполнил следующие задачи: проанализировать имеющуюся сложную систему с интеграцией, рассмотреть и подобрать наиболее удачные существующие подходы к нагрузочному тестированию, составить тестовый сценарий и реализовать автоматизацию тестового сценария, провести экспериментальное тестирование системы в разрезе изоляции и интеграции, провести анализ результатов нагрузочного тестирования, вывести закономерности и зависимости.
По результатам анализа и выстроенной математической модели можно прогнозировать поведение системы в будущем при различной нагрузке, что значительно упрощает тестирование и дает представление о пороговых значениях, поможет избежать полного падения системы. Использование подобной математической модели при тестировании позволит дать более точные результаты об эффективности реализованной системы, ее пороговых значениях и работоспособности в целом.