Цели покрытия кода для API

Какой номер вы бы дали тому, кто хочет конкретное целевое число для покрытия кода API?

ОБНОВЛЕНИЕ: Чтобы уточнить, покрытие кода оператора / строки. Я понимаю, что конкретные числа не имеют особого смысла, но это для ситуации, когда вы говорите людям, что конкретные числа не имеют особого смысла, и они по-прежнему настаивают на получении от вас числа, несмотря ни на что. Я специально написал API / SDK, потому что некоторые люди могут посчитать меньшее покрытие кода более приемлемым для программного обеспечения уровня приложений / графического интерфейса пользователя, в отличие от библиотек, где доступно больше интерфейсов.

вы получите больше ответов, если отметите это тегом code-cover ... и там уже есть несколько похожих вопросов.

Jeff 13.11.2008 17:48

@Elie: Спасибо, у меня не было представителя, чтобы сделать это самому.

Jeff 13.11.2008 18:12
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание API-ресурса Laravel может быть непростой задачей. Она требует глубокого понимания возможностей Laravel и лучших практик, чтобы обеспечить...
Как создать простое погодное приложение на Python с API OpenWeatherMap
Как создать простое погодное приложение на Python с API OpenWeatherMap
Этот учебник проведет вас через процесс создания простого погодного приложения с помощью Python и OpenWeatherMap API.
Пакеты Java
Пакеты Java
Пакет java - это группа классов, интерфейсов и подпакетов схожего типа. Думайте об этом как о папке в каталоге файлов. Мы используем пакеты, чтобы...
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
В этом руководстве вы узнаете, как использовать API парсинга квитанций за 5 минут с помощью JavaScript. Eden AI предоставляет простой и удобный для...
1
2
724
6

Ответы 6

На самом деле конкретные числа не имеют особого смысла.

Если существует 14 эквивалентных случаев, будет ли ваше тестирование более подвержено ошибкам, если вы не протестируете все 14? Что делать, если у вас есть проверка границ, которая должна быть невозможной (мне нравится выдавать описательные исключения в этих случаях, которые затем отправляются по электронной почте нашим сотрудникам разработчиков)?

Лучше просто убедиться, что все логические пути покрыты.

Для более подробного ответа см. этот (очень похожий) вопрос.

Я бы посоветовал им изучить части своего API, чтобы определить, какие из них практически несущественны и требуют не более 20%, а какие - сверхкритичные и требуют> 90%.

Взгляните на C.R.A.P. - он сочетает в себе покрытие с анализом сложности. Есть реализация Crap4J, если вы Java. Мы собирали Crap4Net, о которой писали здесь:

http://www.atalasoft.com/cs/blogs/insertqualityhere/archive/2008/03/28/crap4j-port-to-net.aspx

Идея состоит в том, что вы получите хорошие цифры, если у вас есть небольшие простые методы или если у более сложных есть хороший охват.

Просто забудьте о покрытии кода. Это просто число, и оно не должно быть в центре внимания при тестировании кода. В центре внимания должны быть сценарии, а затем высококачественный API. Я знаю, что это может показаться риторической чушью, но вы должны изменить свое мышление с покрытия кода на сценарии: вы тестируете много сценариев, которые ваш API намерен обрабатывать?

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

С уважением

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

Покрытие строк внутри реализации API - это другое дело. Хорошая практика предлагает снимать с охватом 70-80% на основе линий или утверждений и общего размера.

Если вы используете PHP, 80% кажется хорошей рекомендацией: http://jordionsoftware.blogspot.com/2009/09/code-coverage-targets.html

Другие вопросы по теме