Как вы тестируете код, который вы написали сами? - PullRequest
3 голосов
/ 27 марта 2009

Как вы эффективно тестируете написанный вами код? Я нахожу, что очень сложно протестировать код, который я написал для своего сайта, потому что часть меня чувствует, что я не хочу находить ошибки в моем коде, потому что это показывает, что я не совершенен. (Даже письмо о том, что я, возможно, не идеален, беспокоит меня немного.)

Я верю в модульное тестирование, но в последнее время я немного увлекся оружием и развернул много кода для производства с бедра (что не всегда плохо для нового веб-стартапа, но часто так)

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

Итак, какие методы и инструменты полезны, чтобы помочь вам протестировать код, который вы написали сами?

Ответы [ 6 ]

4 голосов
/ 27 марта 2009

ОК, вот и все.

  1. Вы не идеальны. Я не идеален. Никто не совершенен. Так что не беспокойтесь о выявлении ошибок. Чем больше ты находишь себя, вместо того, чтобы позволить кому-то другому находить их для тебя, тем ближе к совершенству ты становишься.

  2. Заведите привычку писать тесты перед тем кодом, где сможете. Определите, что код должен делать с осмысленным набором тестов, а затем код для прохождения тестов. Тогда рефакторинг - классический TDD.

  3. Если есть ошибки, то немедленно напишите тест, который выявляет ошибку (то есть, которая должна пройти, но из-за ошибки не проходит). Затем выполните тест, и вы исправили ошибку.

4 голосов
/ 27 марта 2009

Написание теста до кода помогает, так как я могу думать (без смещения, установленного реализацией в уме) о том, каким должно быть поведение кода в различных условиях.

3 голосов
/ 27 марта 2009

Подводя итог:

TDD:

  1. Прежде чем писать код, напишите модульный тест для ввода входных данных и проверки выходов.
  2. Введите свой код только для прохождения модульного теста - ни больше, ни меньше.
  3. Повторите для каждого метода, над которым вы работаете.

регрессия:

  1. Каждый раз, когда вы совершаете изменение / функцию / исправление, запускайте все свои модульные тесты.
  2. Для каждого модульного теста, который не проходит, перейдите к BUG FIX

Исправление ошибки:

  1. Каждый раз, когда вы обнаружите ошибку, напишите юнит-тест, чтобы выявить ошибку.
  2. Реализовать исправление, которое приводит к прохождению модульного теста.

ФУНКЦИОНАЛЬНОЕ ИСПЫТАНИЕ:

  1. Найдите подходящую среду функционального тестирования (например, селен для веб-тестов)
  2. Создайте ряд тестов, которые помогут реализовать комплексную функциональность вашего приложения
  3. Поиск и исправление тестов с использованием процессов REGRESSION и BUG FIX.
1 голос
/ 27 марта 2009

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

Теперь я всегда удивляюсь, когда люди говорят, что они ненавидят юнит-тесты и TDD.

0 голосов
/ 31 марта 2009
  1. Если вы делаете TDD, вы можете написать тестовый код, забыть его на одну неделю, а затем написать продуктивный код. Так что вы переосмыслите, если ваш подход правильный.
  2. Избегайте смущения. Если вы обнаружите ошибки в своем коде и сможете их исправить, никто не сможет обвинить вас в написании неверного кода.
0 голосов
/ 27 марта 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...