nightly builds что это

Ночные сборки

Ночные сборки

Ночные сборки — промежуточные рабочие сборки програмного обеспечения. Собираются автоматически ежедневно из последней версии исходного кода в репозитории. Данный вид сборок обычно является нестабильным и используется только разработчиками. Ночные сборки содержат префикс «N» + дата + номер.

Смотреть что такое «Ночные сборки» в других словарях:

Автоматизация сборки (разработка ПО) — Автоматизация сборки этап написания скриптов или автоматизация широкого спектра задач применительно к ПО, применяемому разработчиками в их повседневной деятельности, включая такие действия, как: Компиляция исходного кода в бинарный код… … Википедия

Автоматизация сборки — Для улучшения этой статьи желательно?: Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное. Переработать оформление в соответствии с правилами написания статей … Википедия

Acid2 — У этого термина существуют и другие значения, см. Acid. Так должен выглядеть правильно обработанный тест Acid2 тестовая страница, предназначенная для проверки веб браузеров на соответствие некоторым веб стандартам. Acid2 … … Википедия

Непрерывная интеграция — Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектирование • Программирование • Докумен … Википедия

JMule — Тип Клиент для файлообменных сетей Разработчик JMule Team Написана на Java Последняя версия 0.5.6 (7 января 2010) Лицензия GNU General Public … Википедия

SeaMonkey — SeaMonkey … Википедия

ffdshow — ffdshow … Википедия

KolibriOS — У этого термина существуют и другие значения, см. Колибри (значения). KolibriOS … Википедия

Кодовое имя — Кодовое имя, коднэйм (англ. code name, cryptonym) слово или словосочетание, непосредственно привязанное (например, разработчиком) к другому слову или словосочетанию (например, торговой марке). Часто используются военными, шпионами в… … Википедия

Сборка — В Викисловаре есть статья «сборка» Сборка (действие): Сборка (техника) образование соединений составных частей изделия (по ЕСТД … Википедия

Источник

Автотесты, ночные сборки, экстремальный Agile. Как мы тестируем наши продукты

nightly builds что это. Смотреть фото nightly builds что это. Смотреть картинку nightly builds что это. Картинка про nightly builds что это. Фото nightly builds что это

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

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

Сегодня мы хотим рассказать о том, как мы тестируем наши продукты. Возможно, с чем-то вы поспорите, а что-то возьмёте на вооружение.

Наши продукты состоят из десятков модулей. Мы регулярно обновляем их, и эти апгрейды — завершенные мини-продукты.

Разработчики, собирают пачку кода в отдельную версию. И пишут описание: «Новый интернет-магазин в облаке. Изменения такие-то. Добавили кучу новых страниц». И обязательно прикладывают огромный changelog с несколькими сотнями коммитов.

Всё это поступает к тестировщикам. Этот процесс я называю «экстремальным Agile» — мы работаем по чётким итерациям. Отклоняться от этих правил тестирования нельзя.

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

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

Раньше мы делали так. Составляли подробные описания прецедентов: «Нажимаем сюда. В поле ввода пароля должны появиться кружочки. Если они не появляются, что-то не так».

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

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

Пример — список кейсов по работе с задачами в «Битрикс24».

— Сохранение задачи работает? Отлично, идём дальше.
— Комментарии к задаче добавляются? Прекрасно, следующий пункт.

Сначала мы начинаем с верхнеуровневых, главных сценариев — например, создание и сохранение заказа магазина. А потом переходим к сценариям уровнем ниже — например, корректная работа крайнего срока в задачах.

Дальше мы за несколько этапов проверяем, как выполняются системные действия.

Этапы тестирования

nightly builds что это. Смотреть фото nightly builds что это. Смотреть картинку nightly builds что это. Картинка про nightly builds что это. Фото nightly builds что это

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

Параллельно с прогоном автотестов мы делаем:

1 этап

— Изучаем описание изменений от разработчиков.

Смотрим, как должно быть по ТЗ. Сравниваем с тем, как модуль сделан в реальности. Но главное — учимся смотреть на продукт и изменения с точки зрения здравого смысла и обычного пользователя.

Удобен ли рабочий сценарий? Всё сделано «по-человечески»? Параллельно проводим ещё и usability-тестирование.

Это не всегда получается — изменений огромное количество. Но мы всё равно подсказываем разработчикам, когда какой-то сценарий можно сделать удобнее.

Мы автоматизировали огромную часть рутины. И постоянно думаем что можно «докрутить».

Вопросы к разработчикам мы обсуждаем в отдельных чатах под каждое обновление. У нас нет «сломанного телефона» — в чате присутствуют все сотрудники, причастные к выпуску.

2 этап

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

— На этом этапе мы «отлавливаем» большинство ошибок. Разработчик может что-то упустить в «обычном» описании, но changelog покажет все ошибки.

Недавно был курьёз. Разработчик внёс изменения в текст локализованной версии продукта. На французском языке.

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

Оказалось что система просто не умеет обрабатывать эту комбинацию. Но автор изменения не упомянул о нём в описании. Ошибку мы нашли только в результате внимательного изучения лога изменений.

3 этап

Затем начинается третий этап — анализ обращений клиентов по ошибкам в продукте:

Обращения регистрируются в нашей системе трекинга ошибок Mantis. Почему мы её используем? Это историческое наследие, Mantis «трудится» у нас уже лет 15.

Я несколько раз предлагал коллегам найти что-то другое. Начинали анализировать и каждый раз оказывалось, что в Mantis есть все что нам нужно. Мы отлично интегрировали её в работу: связали с «открытыми линиями» и техподдержкой.

Весь журнал обращений клиентов по поводу ошибок мы берем в Mantis.

В каждое мини-обновление у нас включаются и фичи, и исправления багов, которые нашли клиенты и тестировщики.

Разработчик утверждает, что ошибка исправлена — мы проверяем. Если ошибка не исправлена, возвращаем тикет в работу.

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

4 этап

После верификации переходим к четвертому этапу — повторному прогону тестового плана.

Ситуация на рынке может поменяться. Если вчера условия были одни, то завтра они могут измениться. У нас нет жесткой привязки к ТЗ, которое мы разработали полгода назад. Поэтому мы прогоняем тестовый план еще раз.

5 этап

Пятый этап — сборка пакета обновлений и выгрузка в эталонную среду тестирования: Она находится в облаке Amazon и представляет собой отдельный портал «Битрикс24».

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

6 этап

На шестом этапе мы организуем группы закрытого тестирования.

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

К этому этапу почти все ошибки уже выловлены. Пользователи рассказывают, насколько им удобно работать по разным сценариям. Можно назвать это дополнительyым usаbility-тестированием.

7 этап

Потом наступает очередь седьмой этап — полузакрытое тестирование:

Как правило, у себя в Facebook я приглашаю клиентов первыми протестировать наши новинки. Поучаствовать может любой желающий, это бесплатно, просто напишите мне.

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

Здесь мы тоже оцениваем удобство работы с продуктом, удобство сценариев.

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

Этот этап может занимать 2-3 недели. Мы постоянно вносим изменения по фидбэкам клиентов.

После тестирования на стейдже обновление выкатывается в production. А мы радостно пишем обучающие статьи и снимаем видео.

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

Cloud first

Многие клиенты жалуются, что мы выпускаем обновления сначала для облачной версии «Битрикс24». Пока нам не удалось построить процесс тестирования и выпуск продукта так, чтобы синхронно выпускать обновления и для «облака», и для «коробки».

Выпуск коробочного обновления — более сложный процесс. Если вы знакомы с обкаткой сырого продукта, то знаете, что такое тестовая среда. В облаке у нас уже есть готовая инфраструктура с заданными версиями PHP и MySQL со своей кодировкой. Там всё настроено и работает — можно ставить продукт и спокойно тестировать.

С «коробкой» все по-другому. Вариативность «сред» у клиентов огромна. Мы стараемся стимулировать пользователей к переходу на более высокие версии PHP, но многие делают это неохотно.

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

Вот почему тестирование «коробки» намного сложнее и дольше по времени.

Автотестирование

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

Созданием автотестов у нас занимается специальный отдел.

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

Поэтому мы разбили большие сценарные автотесты на более мелкие независимые сценарии, кейсы.

Как проходит среднестатистический автотест?

Раньше мы тестировали только через интерфейс.

Есть мнение, что чем больше мы прокликаем интерфейс, тем лучше. Но мы от этого ушли, потому что сегодня важно тестирование по прецедентам.

Smoke-тесты и ночные автотесты

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

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

Если мы возвращаемся к процессу большого тестирования, большой итерации, большого пакета обновлений, то «ставим» пакет на эталонную среду. И ночью по расписанию запускаются автотесты. Все спят, а робот кликает по заданным сценариям.

Сейчас наш полный цикл ночных автотестов наконец-то стал укладываться в ночное время. Раньше он занимал около 32 часов. Ускорить автотесты удалось с помощью виртуальных машин и постоянных оптимизаций фреймворка и самих тестов.

А вот чего в нашем процессе тестирования нет, так это постоянной интеграции. Она нам не подходит, потому что есть накопленное «историческое наследие».

Мы не можем отказаться от какой-то части инфраструктуры, которая очень велика и сложна. Так что мы пока робко пробуем внедрить небольшие элементы классической continuous integration.

Ночные сборки

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

Как это происходит?

Самописная система обращается к сборщику обновлений и автоматически ставит все возможные обновления. Смотрит, что упало на этапе установки.

Затем машина собирает все имеющиеся дистрибутивы — у нас их 8 редакций — и ночью развёртывает локальные установки.

Ночные билды мы не выкладываем в открытый доступ. Система опять фиксирует, всё ли установилось. Если всё в порядке, запускаются все автотесты.

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

Модульные-тесты

Большая часть наших тестов — UI, а не Unit. Модульные тесты мы используем только для важных компонентов: главный модуль, CRM, интернет-магазин.

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

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

Для прогона модульных тестов используем стандартный инструмент PHP unit. Просто вызываем метод. Смотрим, как он работает с параметрами, которые даются на вход. И смотрим ответ.

URL checker

Это моя давняя идея. Возможно, кому-то она будет полезна.

Всё, что можно найти и вытащить из кода страницы, робот складывает в лог со скриншотами.

Написать такого робота крайне просто, но он может сэкономить много времени.

Component checker

Наш component checker работает так:

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

Визуальный эксперимент

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

На них сразу видно, какие элементы продукта с чем связаны: на что влияет сохранение заказов, или что влияет на само сохранение? Что и как может повлиять на схему складского учета?

Так тестировщик может быстро оценить — на какие элементы повлияют изменения в том или ином компоненте.

Качество тестирования

Мы отказались от избыточного тестирования. Я сторонник принципа достаточности.

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

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

Но для нас этот подход перестал работать — в наших реалиях хватает «достаточного» тестирования.

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

Поэтому мы придерживаемся принципа достаточности. Не выпускаем сырой продукт, потому что нас выкинут с рынка. И не тянем с выпуском вылизанной фичи, которая будет устаревшей на момент релиза.

* * *
Мне интересно ваше мнение о прочитанном. Как проводится тестирование в вашей компании?

Источник

Firefox Nightly Builds 55

Обновление страницы настроек.

В свежей ночной сборке Mozilla Firefox Nightly Builds 55 можно заметить серьезное обновление страницы настроек браузера. Со слов разработчиков: «Она была полностью реорганизована на основе изучения реального опыта действий пользователей».

Количество разделов настроек браузера с восьми сократилось до пяти. К примеру, разделы Поиск (Search) и Содержание (Content) переместились в Основные (General). Разделы Приватность (Privacy) и Защита (Security) объединились, а раздела Дополнительные (Advanced) в новой версии Firefox попросту не стало. Однако стоит отметить, что браузер не потерял какие-либо опции настроек. Разработчики просто изменили их расположение, чтобы добиться большего удобства, и простоты использования браузера.

nightly builds что это. Смотреть фото nightly builds что это. Смотреть картинку nightly builds что это. Картинка про nightly builds что это. Фото nightly builds что это

Рис. 1. Сравнение количества разделов настроек

Также необходимо сказать про еще одно нововведение в настройках браузера – это строка поиска. По умолчанию она выключена, но это легко исправить в about:config опция «browser.preferences.search».

nightly builds что это. Смотреть фото nightly builds что это. Смотреть картинку nightly builds что это. Картинка про nightly builds что это. Фото nightly builds что это

Рис. 2. About:config «browser.preferences.search»

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

nightly builds что это. Смотреть фото nightly builds что это. Смотреть картинку nightly builds что это. Картинка про nightly builds что это. Фото nightly builds что это

Рис. 3. Поиск в настройках Firefox Nightly Builds 55

Источник

Nightly Builds: Why should I do it? [closed]

Want to improve this question? Update the question so it focuses on one problem only by editing this post.

Why should I do Nightly Builds?

16 Answers 16

You should do nightly builds to ensure that your codebase stays healthy.

A side effect of doing nightly builds is that it forces the team to create and maintain a fully automated build script. This helps to ensure that your build process is documented and repeatable.

Automated builds are good at finding the following problems:

Doing this nightly ensures that you catch such problems within 24 hours of when they occur. That is preferable to finding all the problems 24 hours before you are supposed to deliver the software.

You should also, of course, have automated unit tests that are run for each nightly build.

I’ve personally found continuous integration to be better than nightly builds:
http://en.wikipedia.org/wiki/Continuous_integration

I even use it on one man projects, it’s amazing how fast you can expose issues and take care of them right there.

nightly builds что это. Смотреть фото nightly builds что это. Смотреть картинку nightly builds что это. Картинка про nightly builds что это. Фото nightly builds что это

Suppose you have a typical application, with multiple projects and several developers. While the developers may start with a common, consistent development environment (same OS, same patches, same tools, same compilers), over the course of time their environments will diverge. Some developers will religiously apply all security patches and upgrades, others won’t. Some developers will add new (maybe better) tools, others won’t. Some will remember to update their complete workspace before building; others will only update the part of the project they’re developing. Some developers will add source code and data files to the project, but forget to add them to source control. Others will write unit tests that depend upon specific quirks of their environment. As a consequence, you’ll quickly see the ever-popular «Well, it builds/works on my machine» excuses.

By having a separate, stable, consistent, known-good server for building your application, you’ll easily discover these sorts of problems, and by running builds from every commit, you’ll be able to pinpoint when a problem crept into the system. Even more importantly, because you use a separate server for building and packaging your application, it will always package everything the same way, every time. There is nothing worse than having a developer ship a custom build to a customer, have it work, and then have no idea how to reproduce the customizations.

Источник

What does ‘Nightly Builds’ mean?

I have been using open source projects for a while and been developing upon the open source applications and every so often I come across the words ‘Nightly Build’ and I have always been curious as to what it actually means. Does it literally mean the projects are done purely as side projects (usually at night after everyone has finished their day jobs) and there’s no true contributor/dedicated development team or is it more complex than that?

5 Answers 5

No, it means that every night, everything that has been checked into source control is built. That build is a «nightly build».

Generally it means an automated build that is done once a day, typically after the end of the day for most of the developers. For projects with developers in multiple time zones it’s generally a compromise time. The idea is that everyone who is going to check in code «today» has done so, and the automated build will make sure that everything compiles, and hopefully run the unit tests and any other automated tests etc that exist, then produce a final installer/executable etc.

It means a build that is performed at the end of each day of development. If you use a continuous integration server, it will generally be configured to build the code and run the unit tests on every check in. At the end of each day you may want to run more extensive tests, regression test and integration tests for example, which take too long to run on each check in and these would be triggered after the nightly build. If you have a full continuously delivery pipeline the nightly build may also be used to deploy the built code to environments for user testing.

The term is frequently used for large projects where a complete rebuild of the finished product from source takes too long for the individual developer to do this as a part of their normal development cycle.

Instead a complete rebuild is done automatically during the night so the build computer have 8-10-12 hours to do the build and have it ready for the developers coming in the next morning, so they can continue working on their individual tiny bit on top of the new version.

These days, it is frequent that the project includes a lot of tests ensuring the correct operation of the code, as well as generate and publish documentation from the source (like javadoc).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *