Во время выступления на конференции Sysadvent 2014 ( http://sysadvent.blogspot.com/2014/12/day-5-how-to-talk-about-monitors-tests.html ) Ивонн Лам определила ряд вопросов, на которые должна ответить команда, чтобы сформировать общий контекст на основе тестов, мониторов и диагностики.
• Где будут выполняться тесты?
• Когда будут выполняться тесты?
• Как часто они будут проводиться
• Кто будет использовать результат?
• Какие действия будут выполняться с результатом?
Затем Лам перечислила ряд дефиниций, которые могут применяться для выяснения различий между системами. Тесты, выполняемые по отношению к непроизводственным системам, предназначены для определения степени готовности системы или программного обеспечения. Как правило, тесты выполняются в том случае, когда что-либо изменяется. Мониторы выполняются в соответствии с графиком в системах подготовки к производству и в производственных системах. Обычно монитор запускается часто или вызывается на выполнение по событию. Диагностика выполняется в производственных системах по требованию и в связи с событием.
Все три вышеперечисленных инструмента используются для наиболее эффективного отслеживания поведения разных систем. Эти инструменты также позволяют уточнить области ответственности разных групп или отдельных сотрудников. Благодаря подобному уточнению облегчается поддержка общего понимания и ответственности.
В следующем списке перечислена дополнительная терминология, имеющая отношение к тестированию.
Дымовое тестирование
Это название позаимствовано из простейшей методики проверки оборудования. Суть этой методики заключалась в подаче электропитания на устройство с дальнейшим наблюдением за этим устройством. Если появлялся дым, сопровождаемый запахом гари, это свидетельствовало о наличии серьезных проблем. В производстве программного обеспечения дымовой тест – это очень простой и быстрый тест, позволяющий выяснить, работает ли программа вообще и дает ли она ожидаемые результаты.
Регрессионное тестирование
Это тестирование позволяет проверить, не вызвали ли изменения в программном обеспечении новые ошибки или сбои.
Тестирование удобства использования
В результате выполнения этой разновидности тестирования осуществляется проверка программного продукта на пользователях, позволяющая оценить способность этого продукта к выполнению требуемых функций.
A/B-тестирование
Под этим названием скрывается экспериментальный подход, заключающийся в выполнении сравнения двух разных версий веб-страницы или приложения, чтобы определить, какая из этих версий лучше работает.
Сине-зеленое развертывание
Процесс выпуска версий программных продуктов, предусматривающий поддержку двух идентичных производственных сред. Одна среда рассматривается как «живая» и предназначена для обслуживания всего трафика. Заключительная стадия тестирования нового продукта осуществляется во второй среде. Сразу же после прохождения тестов выполняется перенаправление трафика во вторую среду. Благодаря подобной организации производственной среды уменьшается степень риска при разработке. Если при создании нового выпуска возникли проблемы, можно тут же выполнить откат к предыдущей производственной среде.
«Канареечный» процесс
В прошлом шахтеры использовали канареек для раннего обнаружения ядовитых газов. Как только у канареек начинали появляться симптомы отравления, это означало, что концентрация ядовитых газов в воздухе шахты достигла опасного предела. В условиях разработки программного обеспечения «канареечный» процесс заключается в выполнении нового кода на небольшом поднаборе производственных систем. Это позволяет сравнить производительность нового и старого кода.
Мониторинг
Мониторинг – это большая тема, которую можно разбить на подтемы, – чаще всего происходящие события и аналитика. При выполнении мониторинга применяются методы сбора информации, такие как метрики и логи. Процесс мониторинга включает сбор основных показателей системного уровня. Собираются сведения о времени работы или простоя сервера, объеме используемой памяти, использовании времени центрального процессора и величине свободного места на дисках. Также осуществляется мониторинг приложений на более высоком уровне, который варьируется от количества пользовательских запросов, обрабатываемых сервером, числа элементов в очереди системы массового обслуживания, времени загрузки веб-страницы до накопления в базе данных наиболее длительных запросов. Когда-то мониторинг являлся зоной ответственности системных и сетевых администраторов. По мере роста сложности программного обеспечения и все более тесного сотрудничества между командами люди начинают понимать, что благодаря мониторингу можно своевременно выявлять состояние программного продукта.
Читать дальше
Конец ознакомительного отрывка
Купить книгу