Статьи

Качество кода Apache Hadoop: тестирование производства и тестирования

Чтобы получить качественный производственный код, недостаточно просто обеспечить максимальное покрытие тестами. Без сомнения, для достижения хороших результатов требуется эффективная совместная работа основного кода проекта и тестов. Поэтому тестам нужно уделять столько же внимания, сколько и исходному коду. Достойный тест — ключевой фактор успеха, поскольку он уловит регрессию в производстве. Давайте посмотрим на предупреждения статического анализатора PVS-Studio, чтобы увидеть важность того факта, что ошибки в тестах не хуже, чем в работе. Сегодняшний фокус: Apache Hadoop. 

О проекте

Те, кто раньше интересовался большими данными, вероятно, слышали или работали с проектом Apache Hadoop . В двух словах, Hadoop — это фреймворк, который можно использовать как основу для построения и работы с системами больших данных.   

Hadoop состоит из четырех основных модулей; каждый из них выполняет определенную задачу, необходимую для системы анализа больших данных:

  • Hadoop Common.       
  • MapReduce .        
  • Распределенная файловая система Hadoop.       
  • ПРЯЖА .

О чеке

Как показано в документации, PVS-Studio можно интегрировать в проект различными способами: 

  • Использование плагина Maven.      
  • Использование плагина Gradle.    
  • Использование Gradle IntellJ IDEA.     
  • Непосредственно с помощью анализатора.   

Hadoop основан на системе сборки Maven; следовательно, при проверке не было никаких препятствий.

После того, как я интегрировал скрипт из документации и отредактировал один из файлов pom.xml (в зависимостях были модули, которые были недоступны), анализ начался!

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

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


Вам также может понравиться:
Учебное пособие по Kafka для всех, не имеет значения ваш этап в развитии .

Код производства

Hadoop Common

V6033 Элемент с тем же ключом ‘KDC_BIND_ADDRESS’ уже добавлен. MiniKdc.java (163), MiniKdc.java (162)   


Джава