Обеспечение покрытия кода в модульном тестировании? - PullRequest
25 голосов
/ 24 июля 2010

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

traceit

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

Ответы [ 2 ]

28 голосов
/ 24 июля 2010

cover.py - очень удобный инструмент. Среди прочего, он обеспечивает покрытие филиала .

18 голосов
/ 24 июля 2010

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

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

...