Интересный вопрос.Я постараюсь дать вам хороший обзор с точки зрения тестировщиков.
Если я получу сборку, я ожидаю, что код будет протестирован на уровне модульного теста, чтобы проверить некоторые основы.Это означает, что когда я ввожу некоторые базовые проверки граничных значений, они не падают.Например: если поле принимает 0-100, то оно должно корректно обрабатывать 101 и -1.
Это простой пример.Я думаю, что когда люди говорят, что вы не должны тестировать свой собственный код, они обращаются к традиционной фазе тестирования, обычно проводимой обученными тестировщиками.Это не значит, что его не следует тестировать на уровне юнитов.Я также рекомендую тестировать его вручную, даже чтобы убедиться, что он выполняет основные функции.
Когда я пишу код, я пишу модульные тесты, интеграционные тесты (если возможно) и определенно проверяю их вручную на предмет основ.Проблема, однако, в том, что написанный мной код тестирования никогда не бывает столь же эффективным, как кто-то другой, тестирующий его.У меня есть предположения и идеи относительно кода, которые могут означать, что я пропускаю или игнорирую биты.Я могу предположить, слишком много.Принимайте слишком много как должное.Думаю, я знаю, что делает код.Профессиональный тестировщик избежит этих предположений и, следовательно, часто обнаружит дефекты, которые вы можете не обнаружить.
Хороший тестировщик также проверит крайние случаи, удобство использования и целый ряд интересных областей.
Был один комментарийоставил здесь, что спецификации могут быть расплывчатыми и, следовательно, сложно писать тесты.Но в качестве тестера я бы также предположил, что это не усложняет кодирование?
По моему опыту, стоит объединить разработчика и тестера для написания модульных тестов.Это удивительное зрелище, и широта охвата часто превосходна.
Cheers Rob ..