Как получить положительное умственное отношение к тестированию?

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

Ответ 1

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

Ответ 2

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

73 tests passed.

Попробуйте случайное тестирование, потому что вы можете быстро и легко протестировать множество значений.

Посмотрите, есть ли на вашем языке инструмент анализа охвата тестирования, который дает вам процент покрытия заявлений или процент от охвата блоков. очень полезно управлять охватом кода от 60% до 90% --- и если вам повезет, вы найдете ошибки.

Мой основной совет - оценить ваш прогресс при тестировании, чтобы вы могли видеть числа, идущие вверх. Это сделает его намного более мотивирующим. (Gee, интересно, какие другие цифры, которые поднимаются, можно найти на этом сайте...)

Ответ 3

"Проверьте те вещи, которые вы не хотите сломать".

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

"Всегда начинайте с теста с ошибкой".

Cucumber предлагает простые текстовые "истории", которые являются довольно удивительными для того, чтобы получить действительно конкретные тесты и работать. Может быть, это будет одно место, где вы могли бы начать. Cucumber действительно не работает с приложением AJAX, хотя для этого вам нужно будет взять Selenium или Watir вместо этого. Вы можете начать с неудачной истории, прежде чем писать одну строку кода, и быстро перейти оттуда, чтобы передать эту историю.

"Не тестировать, указывать".

Вместо того, чтобы думать о тестах, попробуйте сделать ментальный переключатель: вы не тестируете, а УКАЗАТЬ, как будет выглядеть ваше приложение. Это проектная работа, не такая скучная, как тестирование.:)

Ответ 4

Подумайте об этом так: если вы не протестируете, ваш код будет сломан.

Ответ 5

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

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

Ответ 6

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

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

Ответ 7

Я написал мотивирующую статью об этом случае пару дней назад. Вот резюме:

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

И вот целая вещь, если вы заинтересованы.

Ответ 8

Как уже упоминалось ранее, самый простой способ проникнуть в тестирование - это регрессионное тестирование.

Я бы также избегал делать спецификации контроллеров - они PITA. Испытайте тяжелые модели, потому что там, где логика должна быть в первую очередь.

Попробуйте попробовать/протестировать простой рубиновый проект, прежде чем отправиться в проект рельсов.

Ответ 9

Хорошо, я расскажу вам, как!

СЛЕДУЙТЕ СЛЕДУЮЩИЕ 10 ВРЕМЕНИ В СООТВЕТСТВИИ С РАЗЛИЧНЫМИ ПРИМЕНЕНИЯМИ, ПЕРЕД ТЕМ, ЧТОБЫ ПОПРОБУЙТЕ АВТОМАТИРОВАТЬ

отрицательные сценарии, где результат будет отрицательным. это могут быть неправильные введенные данные и дает вам правильные выходы.

например, экран входа в систему: Там может быть много сценариев, когда правильный пользователь не прав PW, неправильный пользователь правильно PW.... самая важная вещь ВЫ НЕ ДАЕТЕ, ЕСЛИ НЕ БУДЕТ БЫТЬ ЭТО. Это ваша мантра.

HMMM ТЕПЕРЬ ТЕПЕРЬ ДУМАТЬ КАК ТЕСТЕР ТЕПЕРЬ ВЕРНУТЬСЯ В СИСТЕМУ UR, JUS ПИСЬЕТ ИСПЫТАНИЯ НЕГАТИВОВ И ИХ РЕЗУЛЬТАТЫ И ИХ ПОЗИТИВНЫЕ ИСПЫТАНИЯ РАЗРАБОТАЙ ЭТО. ТЕПЕРЬ РАЗРАБОТАТЬ РАМКИ