Единичное тестирование логики конечных элементов

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

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

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

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

Спасибо...

Ответ 1

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

В тесте Google blog они говорили о значении тестирования всех частей MVP и стоимости тестирования AJAX с помощью stubbing дорогие части здесь. Misko Hevery рассказывает о различных тестах здесь, и я чувствую, что тесты Front End попадают в его большую категорию тестов, поэтому всегда есть вероятность ложных негативов/но они должны быть отсортированы, потому что они все еще предлагают большую ценность

Тесты на передней панели чрезвычайно ценны, поскольку они проверяют, что пользовательская функциональность не упала. Вот почему такие инструменты, как Selenium и Watir, так популярный.


Ответ 2

Исправить разбитое окно. здесь есть ссылка на теорию http://en.wikipedia.org/wiki/Fixing_Broken_Windows

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

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

Ответ 3

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

Например, некоторые команды заканчивают писать много бесполезных тестов, например:

Given a button, when the button is clicked, the event handler should fire.

Ответ 4

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

Можете ли вы, например, сосредоточиться только на некоторых аспектах Презентатора. Например, нетривиальный форматтер, упражнение, которое имеет множество интересных значений.

Я подозреваю, что один из способов убедить - это действовать медленно. Сначала попробуйте найти тесты с низким усилием.