У меня была дискуссия с менеджером по тестированию о роли модульного и интеграционного тестирования. Она попросила, чтобы разработчики сообщили, что у них есть проверенный модуль и интеграция и как. Я считаю, что модульное и интеграционное тестирование являются частью процесса разработки, а не процесса тестирования. Помимо семантики, я имею в виду, что модульные и интеграционные тесты не должны включаться в отчеты о тестировании, а тестировщики систем не должны беспокоиться о них. Мои рассуждения основаны на двух вещах.
Модульные и интеграционные тесты планируются и выполняются всегда на основе интерфейса и контракта. Независимо от того, используете ли вы формализованные контракты, вы все равно проверяете, что, например, должен делать метод, то есть контракт.
В интеграционном тестировании вы тестируете интерфейс между двумя отдельными модулями. Интерфейс и контракт определяют время прохождения теста. Но вы всегда тестируете ограниченную часть всей системы. Тестирование систем, с другой стороны, планируется и выполняется в соответствии с системными спецификациями. Спецификация определяет, когда тест пройден.
Я не вижу смысла в том, чтобы сообщать тестерам (систем) о широте и глубине модульных и интеграционных тестов. Предположим, я пишу отчет, в котором перечисляется, какие виды модульных тестов выполняются для определенного класса бизнес-уровня. Что он / она должен от этого отнять?
Судить о том, что следует и не следует проверять на основании этого, является ложным выводом, поскольку система все еще может функционировать не так, как того требуют спецификации, даже если все модульные и интеграционные тесты пройдены.
Это может показаться бесполезным академическим обсуждением, но если вы работаете в строго формальной среде, как я, это действительно важно для определения того, как мы делаем вещи. В любом случае, я совершенно не прав?