Обмен технологиями

Как анализировать ошибки, обнаруженные при тестировании программного обеспечения!

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

если тыинженер по тестированию программного обеспечения , то, с чем вы сталкиваетесь каждый день, — это «хитрые» жуки, они подобны врагам, спрятанным в темноте, время от времени выскакивающим, чтобы преподнести вам «сюрприз». Итак, как можно эффективно анализировать и устранять эти ошибки, а также сделать работу по тестированию эффективной и интересной? Сегодня мы поговорим на эту тему.

Начните с первопричины: где находится «настоящий виновник» ошибки?

Давайте сначала рассмотрим классический случай.Сяо Ли — опытныйИнженер-испытатель , недавно он отвечал за тестирование финансовой системы. В ходе тестирования Сяо Ли обнаружил серьёзную ошибку: при выполнении пользователем операции перевода возникала ошибка в сумме. Если бы эта ошибка была внедрена в производственную среду, последствия были бы катастрофическими.

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

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

Распространение кейсов: За проблемами программного кода

Давайте рассмотрим другой случай. Сяо Ван — коллега Сяо Ли, и они вместе участвовали в тестировании проекта электронной коммерции. Сяо Ван обнаружил ошибку: количество некоторых товаров в корзине могло отображаться неправильно. Эта ошибка кажется простой, но причина ее сложна.

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

Чтобы помочь всем лучше понять, Сяо Ван также специально написал пример кода:

def check_inventory(item_id):    inventory = get_inventory(item_id)    if inventory > 0:        return f"库存数量:{inventory}"    else:        return "商品已售罄"

# 测试用例assert check_inventory(101) == "库存数量:10"assert check_inventory(102) == "商品已售罄"

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

Этап обнаружения дефектов анализа: начиная с источника

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

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

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

Анализ системы внесения дефектов: найдите «зону с высоким уровнем заболеваемости»

Иногда возникновение ошибок связано со сложностью и количеством модификаций конкретной системы. В большом проекте, включающем несколько систем, некоторые системы могут стать «областями повышенного риска» ошибок из-за серьезных модификаций. Например, в проектах Сяо Ли и Сяо Вана Системы 2 и 3 имели наибольшее количество модификаций, поэтому в них также было больше всего ошибок.

Подсчитав плотность дефектов каждой системы (то есть количество дефектов на тысячу строк кода), они обнаружили, что хотя Система 4 имела большое количество модификаций, количество дефектов было относительно небольшим. Это указывает на то, что Система 4 имеет более высокое качество кода, а Система 2 и Система 3 нуждаются в дальнейшей оптимизации.

Анализ пропущенных обнаружений в тестах: Предотвращение «рыбы, ускользающей из сети»

Наконец, нам также необходимо обратить внимание на проблему пропущенных обнаружений при тестировании. Какими бы осторожными ни были тестировщики, некоторые ошибки все равно могут «просочиться» на этапе тестирования и попасть в производственную среду. Чтобы исправить эту ситуацию, Сяо Ли и Сяо Ван регулярно проверяют процесс тестирования, анализируют, какие ссылки могут иметь упущения, и своевременно вносят улучшения.

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

напиши в конце

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

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

Документ для собеседования по тестированию программного обеспечения

Мы должны учиться, чтобы найти высокооплачиваемую работу. Следующие вопросы для собеседований представляют собой последние материалы собеседований от ведущих интернет-компаний, таких как Alibaba, Tencent, Byte и т. д., и некоторые руководители Byte дали авторитетные ответы после завершения этого набора. Я считаю, что каждый может найти удовлетворительную работу, основываясь на информации, полученной на собеседовании.

Вставьте сюда описание изображения