1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wizardforcel-lmpythw-zh

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
part5.md 10 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 06.03.2025 03:52 f9ec0dd

Часть V: Парсинг текста

Оригинал: Part V: Parsing Text

Переводчик: 飞龙

Лицензия: CC BY-NC-SA 4.0

Гордо использует Google Translate

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

Большинство программистов имеют странные отношения с парсингом текста. Каждый раз, когда вы пишете компьютерную программу, вы работаете над парсером. Парсинг данных является одной из самых понятных и формализованных областей в информатике. Парсинг присутствует повсюду в вычислениях. Его можно найти в сетевых протоколах, компиляторах, электронных таблицах, серверах, текстовых редакторах, графических рендерерах, а также в любом устройстве, имеющем человеко-машинный или другой компьютерный интерфей. Даж selbst wenn zwei Maschinen einen festen binären Protokoll senden, obwohl es kein Text gibt, existiert immer noch ein Niveau des Parsings.Я научу вас парсингу, потому что это надёжная технология, которая может обеспечивать надёжные результаты. Когда вы сталкиваетесь с надёжной обработкой некоторых входных данных и предоставлением точных ошибок, вы обращаетесь к парсеру, а не пытаетесь сделать это вручную. Кроме того, после изучения основ парсинга становится легче учиться новым языкам программирования, поскольку вы сможете понять их грамматику.## Краткое введение в покрытие кода

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

Как рассчитывается покрытие кода?

Покрытие кода обычно рассчитывается путём анализа логических условий и ветвлений в коде. Это позволяет определить, какие части кода были достигнуты во время выполнения тестов.

Почему важно покрытие кода?

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

Инструменты для анализа покрытия кода

Существуют различные инструменты, которые можно использовать для анализа покрытия кода, такие как:

  • JaCoCo для Java
  • Gcov для C/C++
  • Coverage.py для Python

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

Улучшение покрытия кода

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


Таким образом, покрытие кода играет важную роль в процессе разработки программного обеспечения, помогая убедиться, что тесты охватывают достаточное количество кода для обеспечения его качества и надёжности.В этой части вы всё ещё должны попытаться декомпилировать и проанализировать любой код, который вы пишете. Новое, что я добавил в эту часть, — это концепция покрытия кода. Идея покрытия кода заключается в том, что вы действительно не знаете, тестировали ли вы большую часть случаев при создании автоматических тестов. Вы можете использовать формальную логику для создания теории, что вы покрыли всё, но мы знаем, что человеческий мозг очень сложно находит недочёты в своих мыслях. Вот почему вы используете цикл "создай, затем критикуй" в этой книге. При попытке создания чего-то вам трудно анализировать свои идеи. Кодовое покрытие — это метод, который хотя бы позволяет понять, что вы тестируете в вашем приложении. Оно не найдёт все ваши ошибки, но по крайней мере покажет, что вы достигли каждого возможного пути выполнения кода. Без покрытия вы фактически не знаете, тестировали ли вы каждый путь. Отличным примером является обработка ошибок. Большинство автоматических тестов проверяет лишь наиболее надёжные условия и не проверяет обработку ошибок. Когда вы запускаете покрытие кода, вы обнаруживаете все те способы, которыми забыли протестировать код обработки ошибок. Покрытие кода также может помочь вам избежать чрезмерного тестирования кода.Я работал над проектом, которым занимались энтузиасты разработки с привлечением тестов (TDD), и они гордились соотношением тестов/кода 12 к 1 (то есть каждая строка кода имела 12 строк тестов). Простой анализ покрытия кода показал, что они тестировали лишь 30% кода, причём многие строки тестировались одинаковым образом от 6 до 20 раз. В то же время простые ошибки, такие как исключения в запросах к базе данных, вообще не тестировались и вызывали частые сбои. В конечном итоге эти наборы тестов стали бременем, препятствием для развития проекта и просто поглощали время разработчиков. Недаром так много компаний по внедрению агилных методик ненавидят покрытие кода.В этом видеоуроке вы увидите, как я провожу тесты и использую покрытие кода для подтверждения того, что я тестирую. Прошу вас сделать то же самое и предоставлю вам инструменты, чтобы это было легко выполнить. Я продемонстрирую, как читать результаты анализа покрытия кода и как гарантировать, что вы эффективно тестируете всё, что можно тестировать. Цель — создать полный автоматизированный набор тестов, который не будет тратить ваше время попусту, поэтому вы не будете тестировать 12 раз всего лишь 30% кода.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wizardforcel-lmpythw-zh.git
git@api.gitlife.ru:oschina-mirror/wizardforcel-lmpythw-zh.git
oschina-mirror
wizardforcel-lmpythw-zh
wizardforcel-lmpythw-zh
master