Аннотация:
Постоянной проблемой в разработке программного обеспечения является устранение дефектов в этом обеспечении. И эффективное управление и устранение дефектов имеют жизненно важное значение для обеспечения надежности программного обеспечения, что, в свою очередь, является важнейшим атрибутом качества любой системы программного обеспечения. Прогнозирование программных дефектов, поддерживаемое методами машинного обучения (ML) – это многообещающий подход к решению проблемы программных дефектов. Тем не менее, одной из общих проблем в прогнозировании дефектов программного обеспечения на основе ML является проблема дисбаланса данных. В этой статье мы представляем эмпирическое исследование, направленное на оценку влияния различных методов балансировки классов на проблему дисбаланса классов в прогнозировании дефектов программного обеспечения. Мы провели ряд экспериментов, которые включали девять различных методов балансировки классов по семи различным классификаторам. Мы использовали наборы данных из репозитория PROMISE, предоставленные программным проектом NASA. Мы также использовали различные метрики, включая AUC, точность, полнота, отзыв и меру F1, чтобы оценить эффективность методов балансировки различных классов. Кроме того, мы применили проверку гипотез, чтобы определить любые существенные различия в метрических результатах между наборами данных со сбалансированными и несбалансированными классами. Основываясь на наших выводах, мы пришли к выводу, что балансировка классов в прогнозировании дефектов программного обеспечения дает значительное улучшение общей производительности. Поэтому мы решительно выступаем за включение балансировки классов в качестве этапа предварительной обработки в этой области.
Ключевые слова:
прогнозирование дефектов программного обеспечения, статистический анализ, несбалансированный класс, репозиторий PROMISE, наборы данных, метрики, избыточная выборка, недостаточная выборка