По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Тестировщик проверяет созданное компанией программное обеспечение на соответствие всем требованиям качества. Этот сотрудник проверяет, всё ли работает так, как задумывали разработчики, стоит ли что-то улучшить. Существует разделение тестировщиков на QC (Quality Control — контроль качества) и QA (Quality Assurance — обеспечение качества). QC-тестировщик проверяет готовое программное обеспечение на соответствие техническим характеристикам, выполняет узконаправленные задачи по тестированию — подсвечивает проблемы на финальном этапе создания продукта. QA-тестировщики работают с программным обеспечением от этапа идеи до конечного продукта — подсвечивает проблемы продукта и внедряет инструменты тестирования на всех этапах разработки. Тестировщику не нужно уметь кодить — в отличие от разработчика, он должен не написать программу, а попытаться её «сломать», выявить недостатки в её работе. Он, скорее, думает о бизнес-процессах, выступает в роли пользователя, который может столкнуться со сложностями при использовании продукта. Тем не менее, рекомендуется знать хотя бы один язык программирования — для написания автотестов тестирования. Задачи тестировщиков, а также их высокая востребованность во всех компаниях-разработчиках ПО, делают эту профессию одной из самых простых способов попасть в IT. Что делает тестировщик: пример рабочей задачи В самом кратком виде — тестировщик получает задание по тестированию, например, проверить функционал регистрации нового пользователя. В задании вы получите конкретные шаги, которые нужно пройти — открыть сайт, внести имя пользователя и почту, задать пароль, нажать «Зарегистрироваться». Потом удалить свой аккаунт, сообщить разработчику о возникших проблемах на всех этапах пользования продуктом. Заодно вы проверяете соседние функции — иногда они могут отказывать из-за сайд-эффектов, когда ошибки в одной программе приводят к сбоям в других. Если он находит ошибки, которые не может исправить — отправляет разработчику. Примерные задачи тестировщика (не обязательно в таком порядке): Составить тест-кейсы, в которых прописано, что нужно тестировать, и в каком объёме Разработать методику тестирования ПО Провести тестирование вручную или с помощью автотестов, которые вы разработаете сами Оценить, насколько готовый продукт отвечает бизнес-целям компании Оценить вёрстку и дизайн приложения Протестировать функционал и локализацию программы Написать bug-report с указанием ошибок ПО Тестирование вручную и автоматическое Тестирование IT-продукта может проводиться вручную или автоматически. В первом случае тестировщик выполняет шаги «руками» — переходит по ссылкам, взаимодействует с интерфейсом. Во втором случае тестировщик пишет программу автотеста, которая позволяет быстрее выполнять некоторые задачи тестирования. Писать автотесты значительно проще, чем кодить сайт или программу. Тестировщики-автоматизаторы ценятся на рынке намного выше, чем те, кто проверяет программу вручную. Hard и soft-скиллы тестировщика Hard-скиллы: Знает основные принципы тестирования, разбирается в ключевых её видах различиях в методике Умеет составить тест-кейс и тест-план Знает язык SQL и умеет работать с базами данных Владеет хотя бы одним языком программирования Умеет пользоваться системами контроля качества, например, Git и CVS Soft-скиллы: Основной скилл — умение общаться. С разработчиками, с клиентом или руководством, другими коллегами в команде. Разработчики, например, могут решить, что вы пытаетесь обесценить его усилия, нарушить работу продукта из «вредности» — нужно уметь объяснить, что вы подсвечиваете проблемы, с которыми может столкнуться обычный пользователь, далёкий от IT-сферы. Тестировщику нужно встать одной ногой на место пользователей — проявить эмпатию и гибкость мышления. Смоделировать, как они могут использовать продукт, где могут не догадаться перейти по ссылке или проскроллить вниз. Если не донести важность исправления ошибки, потенциальный покупатель может назвать продукт «интуитивно непонятным интерфейсом» и отказаться от использования приложения или сайта — из-за этого пострадает и продукт, и компания. Как стать этим героем Тестировщиком можно стать без образования в университете и без курсов в интернете — вся необходимая информация есть в свободном доступе, а требования к соискателю прописаны в вакансиях IT-компаний. Будущему тестировщику необходимо получить опыт тестирования в фрилансе или на позиции junior. Обычно таким сотрудникам дают готовый сценарий для теста, который нужно провести. Как мы упомянули, важно выучить как минимум один язык программирования, что тоже возможно сделать самостоятельно или на курсах. IT-тестировщику также нужно базово понимать веб-разработку, жизненный цикл программного обеспечения, немного разбираться в бизнес-процессах. Для оценки программы по вёрстке и дизайну нужна некоторая эстетическая насмотренность. В одиночку этот путь может быть сложным, но существует множество курсов тестировщиков, которые обучают соискателей с нуля, и на выходе они получают кейсы в портфолио. К сожалению, многие курсы составляются ради самих курсов. Один из толковых — курс от Merion Academy. Вы пройдёте обучение в онлайн-формате, а материалы останутся с вами навсегда. Курс рассчитан на четыре месяца, включает в себя 30 часов лекций и практических задач. Практика в этом случае намного важнее теории — работодатели обращают внимание не на ваше обучение, а на конкретные кейсы в портфолио, успешное решение бизнес-задач на предыдущем месте работы. Также важно учитывать особенности продукта IT-компании, в которой вы хотите работать. Если это разработчик компьютерных игр, вам нужно разбираться в этой области, чтобы понимать, на что обращают внимание пользователи игры. Если это банк, вам нужно учитывать тонкости работы с защитой данных — ключевой показатель для финансовых приложений. Может пригодиться понимание работы разных операционных систем — то, что работает на Windows, может «сломаться» в Mac OS. Кому нужны тестировщики, если основную работу выполняют разработчики Тестировщики нужны везде, где разрабатываются IT-продукты — сайты, мобильные приложения, игры, онлайн-платформы, поисковики, мессенджеры и др. Разработчики владеют достаточной квалификацией в написании кода программы, но могут не обращать внимание на соответствие программы бизнес-целям компании — на это у них и времени нет. На Headhunter в сентябре 2023 года искали более 4300 тестировщиков, половина из этих вакансий — в Москве. Сколько можно получать На позиции junior соискатель может рассчитывать на зарплату от 50 до 70 тысяч рублей. Middle-тестировщики получают от 100 до 120 тысяч рублей. На позиции senior оклад можно повысить до 200-300 тысяч рублей. Типичный квест тестировщика на карьерной лестнице Тестировщик-junior имеет несколько кейсов в своём портфолио, потратил несколько месяцев на своё обучение, разобрался в основах тестирования, о которых мы писали выше — на этой позиции вы будете работать с готовыми сценариями тестирования. Спустя 1-2 года работы вы можете занять позицию middle — вы будете сами составлять сценарии, подбирать методику тестирования, проверять и, что важнее, предотвращать ошибки ПО. Senior управляет командой, разрабатывает стратегию и стандарты тестирования на всех этапах создания продукта. Не баг, а фича в работе тестировщиком — возможность уйти в разработку. Так как вы уже знаете один или два языка программирования и разбираетесь в особенностях IT-продуктов, вам остаётся научиться кодить ПО самостоятельно. Но, в отличие от разработчика, вы изначально будете понимать, какие цели будет преследовать продукт, на что будет обращать внимание конечный пользователь. Учиться самостоятельно или на курсе Тестировщиком может стать любой человек — новичок в IT или сотрудник из этой сферы, но без опыта работы тестировщиком. Разобраться в теории и наработать портфолио можно самому — на это уйдёт около года. Если хочется побыстрее и не совершить все ошибки начинающих тестировщиков, можно пройти курс с опытными преподавателями. Вжух — и через четыре месяца вы тестировщик в IT-компании с достойной оплатой и карьерными возможностями!
img
Привет! В данной статье мы расскажем про специальный модуль FreePBX (в нашем случае 13, но он доступен и на более ранних версиях), который поможет вам создать правила (которые называются контексты - context), позволяющие разграничить права доступа внутренних абонентов к разным направлениям на Вашей IP-АТС Asterisk. Итак, встречайте - Custom Context Стоит отметить, что для решения подобных задач более изящным способом существует ещё один модуль - Class of Service, но, как можно догадаться, за него придётся заплатить, так как он предназначен для коммерческого использования. Задач, которые можно решить с помощью модуля Custom Context – огромное множество, всё ограничивается лишь вашей фантазией и потребностями. Наиболее часто встречающиеся задачи – это ограничение доступа набора исходящих международных и междугородных номеров, а также ограничение доступа набора некоторых внутренних номеров. Модуль находится в разделе Connectivity, однако, может случиться так, что на Вашем FreePBX изначально не будет данного модуля. Но не надо отчаиваться, установить его очень просто. Для этого переходим в Module Admin → Check Online, ищем Custom Context нажимаем Download → Process и ждём пока процесс установки завершится. Важно! Для работы данного модуля предварительно нужно установить модуль Time Group После установки Вы найдёте модуль в разделе Connectivity: Чтобы было понятнее как работает модуль Custom Context, давайте рассмотрим пример. Пример настройки Предположим, у нас есть следующая задача: для некоторых внутренних номеров нужно ограничить возможность набора других внутренних номеров, зарегистрированных на нашей IP-АТС. Например, операторы первой линии не должны иметь возможность набрать внутренний номер нашего уважаемого Генерального директора и отвлекать его от важной работы. Пусть 102 - это номер оператора, а 110 - номер генерального директора. Теперь приступим непосредственно к реализации. Открываем модуль, нам предлагают ввести его название и дать понятное описание: Заполняем поля и жмём Submit. После этого перед нами разворачивается полный функционал данного модуля, который позволяет настроить нужные правила. В нашем случае, необходимо прописать номер генерального директора (110) в поле Dial Rules и выбрать правило Deny Rules напротив строки ENTIRE Basic Internal Dialplan: Далее прокрутим меню до строки ext-local и напротив неё также выберем Deny Rules и нажмём Submit: Отлично, мы создали кастомный контекст. Теперь необходимо применить его в правилах внутреннего номера нашего оператора (102). Для этого заходим в модуль Extensions ищем нашего оператора (102), переходим во вкладку Other и видим, что у нас появился новый пункт - Custom Context, значение по умолчанию которого - ALLOW ALL. Меняем его на наш кастомный контекст и жмём Submit. Не забываем применять изменения Apply Config. Теперь, при попытке набора 110, наш оператор 102 услышит фразу: “Your call cannot be completed as dialed. Please, check the number and dial again”. Наш многоуважаемый CEO может спать спокойно :)
img
Пока не создан единый протокол маршрутизации, управляющий остальными, существует необходимость в том, чтобы несколько протоколов маршрутизации мирно сосуществовали в одной сети. К примеру, одна компания работает с OSPF, а другая компания работает с EIGRP, и эти две компании слились в одно целое предприятие. Пока вновь образованный ИТ-персонал не перейдет для использования на единый протокол маршрутизации (возможно они когда-нибудь это сделают), маршруты, известные протоколу OSPF, необходимо объявить в часть сети, работающей под управлением EIGRP, и наоборот. Упомянутый выше сценарий возможен благодаря Route redistribution, и именно этому посвящена данная статья. Другие причины, по которым вам потребуется выполнить Route redistribution, это: различные части сети конкретной компании находятся под различным административным контролем; если необходимо объявить маршруты своему поставщику услуг через BGP, или, возможно, необходимо подключиться к сети делового партнера. Рассмотрим следующую базовую топологию. В простой топологии, показанной выше, мы хотим, чтобы OSPF и EIGRP объявляли друг другу маршруты, о которых они знают. Эта концепция называется взаимным перераспределением маршрутов. Поскольку роутер CENTR имеет один интерфейс в автономной системе OSPF (AS) и один интерфейс в EIGRP AS, он несет ответственность за выполнение Route redistribution. Seed Metrics Основная проблема, с которой мы сталкиваемся при Route redistribution между различными протоколами маршрутизации, заключается в разнообразных подходах, применяемых протоколами маршрутизации для измерения своих метрик. Например, OSPF использует cost-метрику, которая основана на bandwidth, в то время как EIGRP использует метрику, основанную на bandwidth и delay, но также может учитывать надежность или (и) нагрузку (и даже использовать Maximum Transmission Unit (MTU) в качестве прерывания связи). Итак, что же нам делать? Мы, как администраторы, можем настроить метрику, назначенную маршрутам, поступающим из одной AS, которые перераспределяются в другую AS. Если нам лень вручную настраивать метрику, которая будет использоваться для Route redistribution, то используется seed metric. В следующей таблице показаны seed metrics, используемые различными протоколами маршрутизации. Основываясь на приведенной выше таблице, мы видим, что, маршрутам, которые перераспределяются в OSPF по дефолту будет назначена метрика 20, если же маршруты, перераспределяются в протокол OSPF от протокола BGP, то им будет присвоено значение метрики 1. Интересно, что и RIP, и EIGRP по умолчанию имеют seed metrics бесконечности. Это означает, что любой маршрут, перераспределенный в эти протоколы маршрутизации, будет считаться недостижимым по умолчанию и поэтому не объявляются никаким другим роутерам. BGP, однако, перераспределяет маршрут, полученный из протокола внутреннего шлюза (IGP), используя исходную метрику этого маршрута. Пример базовой настройки Конечно, есть еще много вопросов, связанных с перераспределением маршрутов, таких как циклы маршрутизации, которые могут возникнуть, когда у нас есть несколько роутеров, соединяющих наши автономные системы, или выборочная фильтрация определенных маршрутов от перераспределения. Но мы вернемся ко всему этому в следующих статьях. А пока давайте разберемся, как выполнить базовую настройку Route redistribution (перераспределения маршрутов). Рассмотрим предыдущую топологию, на этот раз с добавлением информации о сети и интерфейсе: В этой топологии роутер CENTR изучает маршруты от OFF1 через OSPF и от OFF2 через EIGRP. Это видно в выходных данных команды show ip route, отображенной на CENTR: Однако ни роутер OFF1, ни роутер OFF2 не изучили никаких маршрутов, потому что роутер CENTR еще не выполняет Route redistribution. Об этом свидетельствует вывод команды show ip route, отображенной на OFF1 и OFF2: Теперь давайте добавим конфигурацию Route redistribution к роутеру CENTR. Чтобы подтвердить предыдущее утверждение о том, что seed metric для маршрутов, перераспределяемых в EIGRP, является бесконечностью, мы изначально не будем настраивать какие-либо метрики и позволим seed metric вступить в силу. CENTR# conf term Enter configuration commands, one per line. End with CNTL/ Z CENTR(config)#router ospf 1 CENTR(config-router)#redistribute eigrp 1 CENTR(config-router)#exit CENTR(config)#router eigrp 1 CENTR(config-router)# redistribute ospf 1 CENTR(config-router)#end CENTR# Команда redistribute применена в режиме конфигурации роутера для каждого протокола маршрутизации, и метрика не была указана. Важно, что, когда мы ввели команду redistribute eigrp 1 выше, мы не включили ключевое слово subnets в команду, которая заставляет как классовые, так и бесклассовые сети перераспределяться в OSPF. Однако, как видно из приведенных ниже выходных данных, ключевое слово subnets было автоматически добавлено для нас: Данное поведение автоматического добавления ключевого слова subnets наблюдается в последних версиях Cisco IOS. Некоторые, более старые версии Cisco IOS, не включают автоматически ключевое слово subnets, и вам может потребоваться вручную добавить его в команду redistribute. Давайте теперь взглянем на таблицы IP-маршрутизации на роутерах OFF1 и OFF2, чтобы увидеть, какие маршруты они изучили (и не изучили). Приведенные выше выходные данные показывают нам, что роутер CENTR успешно перераспределил маршруты, известные EIGRP в OSPF, которые затем были изучены роутером OFF1. Обратите внимание, что перераспределенные маршруты, известные роутеру OFF1, имеют метрику 20, которая является seed metrics OSPF. Однако роутер OFF2 не изучал никаких новых маршрутов, потому что, когда роутер CENTR перераспределял маршруты в EIGRP, он использовал seed metrics EIGRP бесконечность (что означает недостижимость). В результате эти маршруты не были объявлены роутеру OFF2. Чтобы решить эту проблему, нам нужно назначить метрику маршрутам, перераспределяемым в EIGRP. Существует три основных способа присвоения не дефолтных метрик маршрутам, перераспределяемым в протокол маршрутизации.. Установите метрику по умолчанию для всех протоколов маршрутизации, перераспределяемых в определенный протокол маршрутизации. Установите метрику как часть команды redistribute. Установите метрику используя route-map Чтобы проиллюстрировать первый вариант, давайте настроим метрику для назначения всем маршрутам, перераспределяемым в EIGRP. CENTR#configuration terminal Enter configuration commands, one per line. End with CNTL/Z. CENTR (config)#router eigrp 1 CENTR (config-router)#default-metric ? 1-4294967295 Bandwidth in Kbits per second CENTR (config-router)#default-metric 1000000 ? 0-4294967295 delay metric in 10 microsecond units CENTR(config-router)#default-metric 1000000 1 ? 0-255 Reliability metric where 255 is 100% reliable CENTR (config-router)#default-metric 1000000 1 255 ? 1-255 Effective bandwidth metric (Loading) where 255 is 100% loaded CENTR (config-router)#default-metric 1000000 1 255 1 ? 1-65535 Maximum Transmission Unit metric of thenpath CENTR (config-router)#default-metric 1000000 1 255 1 1500 CENTR (config-router)#end CENTR# Контекстно-зависимая справка была использована в приведенном выше примере для отображения каждого компонента метрики, назначаемого маршрутам, перераспределяемым в EIGRP. Однако последняя команда была default-metric 1000000 1 255 1 1500. Если бы мы устанавливали default-metric для OSPF, мы могли бы использовать такую команду, как default-metric 30, чтобы назначить стоимость 30 OSPF маршрутам, перераспределяемым в OSPF. Однако в этом примере мы указали только default-metric для EIGRP. Давайте теперь проверим таблицу IP-маршрутизации на роутере OFF2, чтобы увидеть, были ли маршруты OSPF успешно объявлены в EIGRP. Прекрасно! Роутер OFF2 изучил маршруты, происходящие из OSPF AS. Мы знаем, что маршруты первоначально пришли из-за пределов EIGRP, из-за кода EX, появляющегося в каждом из этих маршрутов. Второй вариант установки метрики на Route Redistribution состоял в том, чтобы назначить метрику как часть команды redistribute, которая позволяет нам указать различные метрики для различных протоколов маршрутизации, перераспределяемых в процесс маршрутизации. Чтобы проиллюстрировать этот подход, давайте удалим предыдущие команды default-metric и redistribute из роутера CENTR и введем команду redistribute, которая определяет метрику, которая будет назначена. CENTR#configuration terminal Enter configuration commands, one per line. End with CNTL/Z. CENTR(config)#router eigrp 1 CENTR(config-router)#no default-metric 1000000 1 255 1 1500 CENTR(config-router)#no redistribute ospf 1 CENTR(config-router)#redistribute ospf 1 ? Match Redistribution of OSPF routes metric Metric for redistributed routes route-map Route map reference cr CENTR(config-router)#redistribute ospf 1 metric 1000000 1 255 1 1500 CENTR(config-router)#end CENTR# Если мы сейчас вернемся к роутеру OFF2, то получим тот же результат, что и раньше: Третьим вариантом установки метрики для Route Redistribution использовании маршрутной карты (route-map). Маршрутные карты являются супермощными и могут быть использованы для различных конфигураций. По сути, они могут соответствовать определенному трафику и устанавливать один или несколько параметров (например, IP-адрес следующего прыжка) для этого трафика. Однако в нашем контексте мы просто будем использовать route-map для указания значения метрики, а затем применим ее к команде redistribute. В следующем примере показано, как мы можем удалить нашу предыдущую команду redistribute из роутера CENTR, создать route-map, а затем ввести новую команду redistribute, которая ссылается на нашу карту маршрута (route-map): CENTR#configuration terminal Enter configuration commands, one per line. End with CNTL/Z. CENTR(config)#router eigrp 1 CENTR(config-router)#no redistribute ospf 1 metric 1000000 1 255 1 1500 CENTR(config-router)#exit CENTR(config)#route-map SET-МETRIC-DEMO CENTR(config-route-map)#set metric 1000000 1 255 1 1500 CENTR(config-route-map)#exit CENTR(config)#router eigrp 1 CENTR(config-router)#redistribute ospf 1 route-map SET-МETRIC-DEMO CENTR(config-router)#end CENTR# В приведенном выше примере, после удаления нашей команды redistribute, мы создали карту маршрута с именем SET-METRIC-DEMO. Это был очень простой route-map, которая не должна была соответствовать никакому траффику. Он был просто использован для установки метрики. Однако в следующей статье мы увидим, что route-map может быть использована, чтобы дать нам больше контроля над нашим перераспределением маршрутов. В нашем текущем примере карта маршрута была затем применена к нашей новой команде redistribute. Опять же, это дает нам тот же результат с точки зрения таблицы IP-маршрутизации роутера OFF2: OSPF E1 или E2 Routes Прежде чем мы закончим эту статью в нашей серии Route redistribution, давайте еще раз рассмотрим таблицу IP-маршрутизации на роутере OFF1: Обратите внимание, что каждый из маршрутов, перераспределенных в OSPF, отображается в таблице IP-маршрутизации роутера OFF1 с кодом E2. Однако наблюдаются также код E1, оба указывающих, что маршрут возник из-за пределов OSPF AS роутера. Итак, в чем же разница между этими двумя кодами? Код E2 указывает, что маршрут несет метрику, назначенную роутером, выполняющим перераспределение, который известен как автономный системный пограничный роутер (ASBR). Это означает, что независимо от того, сколько дополнительных роутеров в OSPF мы должны пересечь, чтобы вернуться к ASBR, метрика остается такой же, какой она была, когда ASBR перераспределил ее. Когда мы перераспределяем маршруты в OSPF, эти маршруты, по дефолту, являются этими External Type 2 (E2). Код E1 указывает, что метрика маршрута состоит из первоначальной стоимости, назначенной ASBR, плюс стоимость, необходимая для достижения ASBR. Это говорит о том, что маршрут Е1, как правило, более точен, и на самом деле это так. Хотя наличие кода E1 не дает нам никакого преимущества в простой топологии, как у нас, где роутер OFF1 имеет только один путь для достижения ASBR (т. е. CENTR), и где есть только один способ для маршрутов EIGRP быть введенными в наш OSPF AS (т. е. через роутер CENTR). Если мы хотим перераспределить маршруты E1 в OSPF вместо маршрутов E2, то это можно сделать с помощью команды redistribute. В следующем примере мы удаляем нашу команду redistribute для процесса маршрутизации OSPF на роутере CENTR, а затем повторно применяем команду redistribute, указывающую, что мы хотим, чтобы External Type 1 (E1) применялись к перераспределенным маршрутам. CENTR#configuration terminal Enter configuration commands, one per line. End with CNTL/Z. CENTR(config)#router ospf 1 CENTR(config-router)#no redistribute eigrp 1 subnets CENTR(config-router)#redistribute eigrp 1 metric-type ? 1 Set OSPF External Туре 1 metrics 2 Set OSPF External Туре 2 metrics CENTR(config-router)#redistribute eigrp 1 metric-type 1 CENTR(config-router)#end CENTR#show Давайте проверим таблицу IP-маршрутизации на роутере OFF1, чтобы увидеть, изменились ли параметры на основе этой новой команды redistribute, введенной на роутере CENTR. В приведенных выше выходных данных обратите внимание, что маршруты, перераспределенные в OSPF, имеют код E1, а не дефолтный код E2. Кроме того, обратите внимание, что это приводит к тому, что метрика этих маршрутов будет немного выше. В частности, роутер CENTR перераспределил EIGRP-изученные маршруты в OSPF, используя начальную метрику OSPF 20. Однако существует стоимость OSPF 1, чтобы добраться от роутера OFF1 до роутера CENTR. Таким образом, поскольку перераспределенные маршруты были сконфигурированы как маршруты E1, стоимость этих маршрутов с точки зрения роутера OFF1 является стоимостью, первоначально назначенной роутером OFF1, которая составляла 20, плюс стоимость для OFF1, чтобы добраться до CENTR, который равен 1, итого общей стоимости 21. Отлично, теперь вы знаете, как делать перераспределение маршрутов. Теперь почитайте, как сделать Фильтрацию маршрутов с помощью карт маршрутов.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59