Актуальные проблемы проведения системного тестирования в контексте микросервисной архитектуры – организационный аспект

Всем привет! На связи Даниил Минин, ведущий специалист по тестированию программного обеспечения.

Актуальные проблемы проведения системного тестирования в контексте микросервисной архитектуры – организационный аспект

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

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

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

Системное тестирование является более высоким по уровню абстракции, т. к. имеет принципиально иной предмет рассмотрения – поведение всех элементов (микросервисов и подсистем) в целом в различных интересующих специалиста аспектах, в отличие от интеграционного тестирования, направленного на оценку взаимодействия лишь нескольких её элементов друг с другом, что не даёт оснований вынести профессиональное суждение о корректности поведения остальных элементов системы при проводимых проверках. При этом системное тестирование не исключает необходимость предварительного проведения интеграционного. Когда результат последнего позитивен, в рамках дальнейшего системного тестирования проверяется поведение всей системы, исходя из характера произведённых изменений. После чего выносится суждение о корректности полученных результатов работы системы в целом.

Проведение системного тестирования зачастую осложняется рядом различных по характеру проблем, в конечном счёте, сильно влияющих не только на полноту, но и валидность, глубину проводимых проверок, что напрямую обусловливает уровень качества выпускаемых нововведений. Для удобства рассмотрения наибольших проблемных моментов в деятельности команды при разработке нововведений, а также QA при проведении системного тестирования, соответственно, предлагается разделить анализируемые проблемы по трём аспектам – организационному, методологическому и прикладному. В рамках настоящей публикации подвергается анализу именно организационный аспект.

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

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

Актуальные проблемы проведения системного тестирования в контексте микросервисной архитектуры – организационный аспект

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

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

- Несоблюдение или нарушение дефицитарных принципов независимости релизных циклов приложений, прямой и обратной совместимости при постановке и проработке задач.

Актуальные проблемы проведения системного тестирования в контексте микросервисной архитектуры – организационный аспект

- Недостатки в процессе координации деплоя стабильных релиз-кандидатных версий нововведений и их отката в случае непредусмотренных нештатных ситуаций, отсутствие или несовершенство анализа причин их возникновения и ликвидации.

- Отсутствие необходимого документационного обеспечения и сопровождения производимых изменений и нововведений, недостаток информации, касающейся необходимых аспектов поведения сторонних систем.

Актуальные проблемы проведения системного тестирования в контексте микросервисной архитектуры – организационный аспект

- Недостатки координации выполнения различных этапов проведения системного тестирования силами различных специалистов и команд.

- Отсутствие, неполнота или недостатки оформления и представления полученных коллективных результатов системного тестирования, а также их консолидированной оценки при принятии специалистами финального решения о релизе.

- Отсутствие процесса постановки чётких целей и задач различных этапов системного тестирования, а также критериев приёмки получаемых результатов, дающих основание сделать выводы о степени готовности нововведений.

- Отсутствие или несовершенство выбранного канала и способа для общекомандных и межкомандных коммуникаций при проведении системного тестирования, неадекватность затрат времени и ресурсов на решение возникающих проблем и затруднений различного характера.

- Недооценка существующих рисков инфраструктурного, технологического, эксплуатационного, а также социально-психологического характера.

Актуальные проблемы проведения системного тестирования в контексте микросервисной архитектуры – организационный аспект

- Объективное несовершенство выбранной методологии разработки, тестирования и поддержки продукта, злоупотребление принципами Agile, стремление компенсировать совершённые организационные ошибки планирования за счёт сокращения временных затрат на проведение мероприятий системного тестирования.

- Дефицитарный характер планирования распределения ресурсов и временных затрат на проведение различных работ, отсутствие адекватного запаса времени, отводимого на оперативное решение возникающих проблем и затруднений.

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

4
Начать дискуссию