Я не могу поверить, что я первый человек, который прошел через этот мыслительный процесс, поэтому мне интересно, может ли кто-нибудь помочь мне с этим.
Текущая ситуация: разработчики пишут веб-сайт, операторы развертывают его. После развертывания разработчик Smoke Tests проверяет его, чтобы убедиться, что развертывание прошло гладко.
Мне это кажется неправильным, по сути это означает, что для развертывания приложения требуется два человека; в нашем случае эти два человека находятся на противоположных сторонах планеты, и часовые пояса вступают в игру, вызывая хаос. Но факт остается фактом: разработчики знают, каков минимальный набор тестов, и он может меняться со временем (особенно для веб-сервисной части нашего приложения). Оперативники, при всем уважении к ним (и они бы сами это сказали), — это нажиматели на кнопки, которым нужен набор инструкций для выполнения.
Ручное решение заключается в том, что мы документируем тестовые примеры, и операции следуют этому документу при каждом развертывании. Звучит болезненно, к тому же они могут развертывать разные версии в разных средах (в частности, UAT и Production), и для каждой из них может потребоваться разный набор инструкций.
Вдобавок ко всему, один из наших планов на ближайшее будущее — создать автоматизированную среду ежедневного развертывания, поэтому нам нужно будет проинструктировать компьютер о том, как развертывать данную версию нашего приложения. Я очень хотел бы добавить к этому инструкции о том, как протестировать приложение на дыму.
Теперь разработчики лучше документируют инструкции для компьютеров, чем для людей, поэтому очевидное решение, по-видимому, состоит в использовании комбинации nUnit (я знаю, что это не модульные тесты как таковые, но это встроенный тест для определенной цели). runner) и API Watin или Selenium, чтобы выполнить очевидные шаги браузера, вызвать веб-службу и объяснить специалистам по эксплуатации, как запускать эти модульные тесты. Я могу это сделать; В основном я это уже сделал.
Но было бы неплохо, если бы я мог сделать этот процесс еще проще?
На этом этапе ребята из отдела эксплуатации и компьютер должны будут знать, какой набор тестов относится к какой версии приложения, и сообщить исполнителю nUnit, на какой базовый URL-адрес он должен указывать (скажем, www.example.com = v3. 2 или test.example.com = v3.3).
Разве не было бы лучше, если бы средство запуска тестов имело способ дать ему базовый URL-адрес и позволить ему загрузить, скажем, zip-файл, распаковать его и автоматически отредактировать файл конфигурации перед запуском любых найденных там тестовых приспособлений?
Есть ли приложение с открытым исходным кодом, которое могло бы это сделать? Есть ли потребность в нем? Есть ли решение с использованием чего-то другого, кроме nUnit, может быть, Fitnesse?
Для протокола: я в первую очередь рассматриваю инструменты на основе .NET, потому что большинство разработчиков в первую очередь являются разработчиками .NET, но мы не женаты на нем. Если существует такой инструмент, использующий другие языки для написания тестов, мы с радостью адаптируемся, пока есть программа запуска тестов, работающая в Windows.