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