Проведение нагрузочного тестирования при внедрении системы управления предприятием (ERP)

2016-04-23 22:17:34 2090

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

Очень близким к нагрузочному тестированию является стресс тестирование, но мы его в рамках этой заметки рассматривать не станем. Нагрузочное тестирование может быть проведено как, например, на проекте внедрения системы управления предприятием чтобы понять, выдержит ли будущая система планируемую нагрузку, так и в рамках деятельности управления информационных технологий, при планировании повышения нагрузки на систему управления предприятием, при запуске новых продуктов, развитии бизнеса. При этом методика проведения нагрузочного тестирования примерно одинакова в обоих ситуациях. Также, при разработке нового (архитектурно) решения, зачастую проводят раннее нагрузочное тестирование для проверки его жизнеспособности (proof-of-concept).

  1. Сначала определяют список операций, которые будут участвовать в нагрузочном тестировании. При этом в случае внедрения новой системы управления предприятием, может возникнуть сложность в сборе и оценке объема операций (например, при многофилиальной компании с разрозненными ИТ системами). Однако, несмотря на сложности сбора данных, примерную оценку получить возможно. Данная оценка поможет понять, на каких операциях нужно сосредоточиться.
  2. Подготавливают стенд для проведения нагрузочного тестирования. В идеальном случае, это стенд эквивалентный стенду на котором функционирует или будет функционировать система управления предприятием. Зачастую, подготовить подобный стенд не представляется возможным ввиду отсутствия мощностей (дублировать инфраструктуру, как правило не дешевое удовольствие). В этом случае, иногда могут помочь компании, специализирующиеся на независимом тестировании (зачастую у них есть собственное оборудование) или дистрибутор оборудования с которым вы работаете (в случае, если вы являетесь важным клиентом, для дистрибутора и существует возможность вам помочь, то скорее всего вам помогут).
  3. На стенде воспроизводится система, которую вы будете тестировать. Пишется программный код, который наполняет систему первичным объемом данных, на котором предполагается проведение нагрузочного тестирования. Первичный объем данных важен для понимания как тестируемая система будет работать через некоторый объем времени.
  4. Устанавливаются счетчики производительности в СУБД, операционной системе и в тестируемой системе. В тестируемой системе ставятся метки для логирования начала и окончания операции.
  5. Пишется код, эмулирующий работу пользователей. При этом важно, чтобы код действительно эмулировал работу пользователя, а не запускал функции из системы, т.к. нагрузка будет различной. В этом могут помочь специализированные инструменты.
  6. Проводится нагрузочный тест.

По завершении нагрузочного теста, анализируются счетчики производительности СУБД, операционной системы и тестируемой системы управления предприятием. По результатам анализа выявляются и оптимизируются «бутылочные горлышки» (узкие места) системы и, зачастую проводят повторное тестирование. Цикл повторяют до тех пор, пока не добиваются целевых показателей производительности.