Наследие поблочного тестирования [закрытые] приложения веб-форм ASP.NET

Я думаю, что возможность создавать виды оповещений, о которых вы будете говорить, будет включена в Мониторинг обслуживания (см. Раздел Цели уровня обслуживания):

https: // cloud. google.com/service-monitoring/

13
задан a_m0d 16 March 2012 в 20:31
поделиться

7 ответов

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

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

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

9
ответ дан 1 December 2019 в 22:58
поделиться

Я предложил бы получить копию Работы Эффективно с Унаследованным кодом.

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

Темы включают:

  • Понимание механики изменения программного обеспечения: добавление опций, исправляя ошибки, улучшая дизайн, оптимизируя производительность
  • Получение унаследованного кода в тестовую обвязку
  • Запись тестирует, которые защищают Вас от представления новых проблем
  • Методы, которые могут использоваться с любым языком или платформой - с примерами в Java, C++, C, и C#
  • Точно идентификация, где изменения кода должны быть внесены
  • Преодоление унаследованных систем, которые не объектно-ориентированы
  • Обработка приложений, которые, кажется, не имеют структуры

Вы видите короткое в к этому по http://www.objectmentor.com/resources/articles/WorkingEffectivelyWithLegacyCode.pdf

3
ответ дан 1 December 2019 в 22:58
поделиться

приложение прежней версии разделено на уровни?

если так, добавьте тесты единиц к слою бэкэнда/бизнеса сначала

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

если у Вас есть время/стремление к модульному тесту все это (в конечном счете), запустите список функций (критические сначала) и добавьте модульные тесты на тех, некоторые за один раз

2
ответ дан 1 December 2019 в 22:58
поделиться

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

2
ответ дан 1 December 2019 в 22:58
поделиться

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

2
ответ дан 1 December 2019 в 22:58
поделиться

Если веб-приложение не протестировано на единицу, это, вероятно, также не легко тестируемое единицей. Подвергание его под модульными тестами может быть опасным, поскольку у Вас нет [Единица] тестов, да, курицы и яиц. Кроме того, это занимает время и не приносит много значения к приложению.

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

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

1
ответ дан 1 December 2019 в 22:58
поделиться

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

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

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

1
ответ дан 1 December 2019 в 22:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: