Примеры того, чтобы сначала ошибиться, нарочно - PullRequest
4 голосов
/ 10 июля 2009

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

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

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

grep -r digit.form.TextBox | grep -v СВН

Это было неправильно - я совершил (для меня) ошибку, бросив звезду, и исправил это:

grep -r digit.form.TextBox * | Grep -v svn

, который не дал результатов! Быстрое сравнение с файлом, на который я смотрел, показало, что я написал "dijit" с ошибкой:

grep -r dijit.form.TextBox * | Grep -v svn

И теперь я получил результаты. Здорово; если сначала сделать это неправильно, это означало, что мой запрос был правильным, за исключением поиска неправильной вещи, поэтому теперь я могу построить правильный запрос:

grep -r dijit.form.TextArea * | Grep -v svn

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

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

Ответы [ 7 ]

4 голосов
/ 10 июля 2009

TDD

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

1 голос
/ 21 июля 2009

Вот пример из VBA :

Я также использую случай с верблюдом, когда меняю свои переменные. ThisIsAnExampleOfCamelCase. Как только я выхожу из строки кода VBA, если Access не меняет строчную переменную на верблюжий, то я знаю, что получил опечатку. [ИЛИ, опция Explicit не установлена, что является темой сообщения.]

Я тоже использую этот трюк, по крайней мере, несколько раз в час.

1 голос
/ 10 июля 2009

http://support.microsoft.com/kb/275085

Эта подпрограмма VBA отключает свойство "subdatasheets" для каждой таблицы в вашей базе данных MS Access. Пользователь должен убедиться, что для обработки ошибок установлено значение «Разрыв только при необработанных ошибках». Подпрограмма определяет таблицы, нуждающиеся в исправлении, по ошибке, которая выдается. Я не уверен, что это точно соответствует вашему вопросу, но мне всегда интересно, чтобы ошибка использовалась без ошибок.

0 голосов
/ 28 августа 2011

(Не уверен, что это хорошая идея попробовать по-настоящему!)

Например, вы можете дать пользователям систему для тестирования и сообщить им, что для запуска используется пароль «Apple».

Вы знаете, что пользователи полностью готовы и готовы к тестированию (все установлено и соединения с базами данных работают), когда они связываются с вами и говорят, что пароль не работает (на самом деле это "Orange").

0 голосов
/ 10 июля 2009

Я не уверен, что это лучший способ действовать, так как он не мешает вам неправильно вводить последнюю команду, например, набрав «TestArea» или что-то в этом роде вместо «TextArea» (ваш палец просто должен подсунуть мало за такую ​​ошибку).

ИМХО, лучший способ - запустить команду "final", но сначала для двух файлов примеров: один содержит запрошенный текст, другой нет.

Другими словами, вместо запуска «аналогичной» команды, запустите реальную, но поверх «похожих» данных.

0 голосов
/ 10 июля 2009

Если вы сомневаетесь в моем правописании, и в правописании моего редактора

Мы используем много редакторов. Многие из них выделяют слова с ошибками, когда я их печатаю, а некоторые нет. Я полагаюсь на автоматическую проверку орфографии, но не всегда могу вспомнить, есть ли у редактора того времени эта функция. Так что я войду, скажем, в «Circlex» и попаду в пробел. Если он подсвечивается, я вернусь к пробелу и «x» и наберу другой пробел - и узнаю, что я правильно записал схему - но если это не так, я скопирую слово и вставлю его в известное заклинание -чекер, чтобы увидеть, сделал ли я.

0 голосов
/ 10 июля 2009

организовать - заявить - действовать - заявить

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

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