Доменные истории. Почему компании вынуждены заново покупать свой домен — Истории на vc.ru
{«id»:13691,»url»:»\/distributions\/13691\/click?bit=1&hash=8189ed5136b3a9dac6f61398bfa87968312a8f1d17fd20908c25bad0668f51e2″,»title»:»\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043d\u044f: \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u043c \u0440\u044b\u043d\u043a\u0435 \u0440\u0435\u043a\u043b\u0430\u043c\u044b»,»buttonText»:»»,»imageUuid»:»»,»isPaidAndBannersEnabled»:false}
2697 просмотров
Когда нам надо составить даже небольшой договор, мы обращаемся к юристу, для аудита — к бухгалтеру, за логотипом — к дизайнеру. Но когда речь идет о доменах, 99% предпринимателей считают, что способны самостоятельно во всем разобраться. Неудивительно, что большинство случаем, связанных с потерей доменов, происходят банально из-за незнания правил регистрации и администрирования. И таких случаев на самом деле довольно много, просто их редко придают огласке.
В этом кейсе я расскажу вам об истории, случившейся с одной очень крупной федеральной компанией.
Как-то в компанию пришло письмо с предупреждением об отключении их домена от сайта путем смены DNS. Айтишник убедился, что домен продлен, и отправил письмо в спам, так как отправителем значился не их регистратор, а какой-то valera_admin. Домен более 10 лет держали у крупного регистратора, доступ к кабинету был с двухфакторной идентификацией, поэтому серьезно воспринимать такие письма никто не собирался.
О письме вспомнили через неделю, когда на домене вдруг появилась одностраничная заглушка с рекламой. Это был шок. Поток заказов упал на 90%, так как все продажи шли через сайт. Телефоны обрывали клиенты, которые уже заказали товар, но не могли его отследить на сайте. Многие и вовсе требовали возврата денег, решив, что компания обанкротилась.
Как оказалось, домен еще в 2000-х был куплен у другой компании.
Конечно «полное управление» звучит убедительно. Намного убедительнее, чем «администратор», который ассоциируется у предпринимателей с низшим управляющим звеном в компании. Поэтому вопросов при передаче прав не возникло, тем более что полное управление доменом, в отличие от смены администратора, можно было оформить не выходя из офиса, что многим особо занятым предпринимателям очень нравилось. Это, кстати, одна из причин, почему такая ситуация довольно типична, и ко мне с похожей проблемой обращается несколько компаний каждый месяц.
В итоге пришлось заново выкупать свой домен, но уже не за 500 долларов, а в 70 раз дороже. Сделку оформили за один день, ведь простой сайта грозил обернуться непоправимыми потерями для бизнеса.
Можно ли было решить ситуацию через суд? Если бы valera_admin раньше официально работал в этой компании, то можно было бы легко доказать, что регистрация домена входила в его должностные обязанности. В данном же случае, с юридической точки зрения, администратор домена никак не связан с компанией и просто «великодушно» позволял его арендовать.
Можно ли было уменьшить сумму выплат? Конечно, если бы проблема была выявлена раньше и компания стала бы инициатором переговоров. Так удалось бы избежать простоя сайта и иметь преимущество на переговорах, заранее подготовившись и сформировав свою позицию. Банально можно было сделать копию сайта на другом домене, чтобы в случае внезапного отключения сразу же разослать клиентам письмо с оповещением «о временном переезде сайта на другой домен в связи с техническими работами». Трафик это бы не вернуло, но уменьшило бы объем паники среди клиентов и сотрудников.
Можно ли было вообще избежать этой ситуации? Легко — просто при покупке домена съездить в офис к регистратору и оформить передачу прав на него как положено. Именно как положено, а не на своего сотрудника, как делают некоторые. Но это уже другая история, о которой я расскажу в следующем кейсе.
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Хабр
Сколько в вашем проекте тестовых стендов — 5, 10 или больше 10? Навскидку, нужны стенды для каждой команды разработки, стенды для QA под каждый проект, менеджерам проектов тоже нужны стенды, а еще CI — трудно это все точно разграничить и не вызвать конфликтные ситуации. Одним словом, почему бы нам не делать тестовый стенд ровно тогда, когда он нужен? Нужен сейчас тестовый стенд — мы его сделали, не нужен — мы его удалили.
Именно такой подход предложил Александр Дубровин (adbrvn) на Highload++ 2017 в своем докладе, расшифровку которого вы найдете под катом.
О спикере: Александр Дубровин работает в Superjob. Известно, что проекты этой компании высоконагруженные. Но сегодня мы не будем говорить о том, сколько пользователей посещают портал, и сколько данных хранится на серверах, а затронем другие показатели.
Забегая вперед, скажем, что, на самом деле, Superjob не знают, сколько у них тестовых стендов. Но обо всем по порядку. Начнем с небольшой истории.
Представим себе небольшой проект S. В нем есть команда разработчиков, которым надо где-то тестировать свой код. Чтобы организовать тестирование, мы поставим тестовую машину, сделаем ее похожей на продакшен, накатим туда код, запустим и разработчики смогут там что-то тестировать.
В какой-то момент команда начинает расти, и необходим штат тестировщиков. Появляются QA-специалисты, и им тоже нужно где-то тестировать.
Можно использовать простой подход — выделить какой-то участок для тестировщиков, накатить туда такую же копию, и вот они уже могут тестировать. Все замечательно и хорошо!
Проект продолжает расти, и появляется дополнительная команда разработки. Им также требуется где-то что-то тестировать. Подход уже знаком — мы отделяем еще одну часть тестового сервера.
Но на самом деле команды тоже растут — по одному тестовому стенду им становится мало. Задач они тоже делают больше, поэтому тестировщикам нужно много тестировать.
Примерно в такой стадии можно начать замечать интересные истории. Допустим, есть тестировщик Вася, который хочет протестировать какую-то задачу. Он выбирает тестовый стенд, раскатывает туда код и начинает тестировать. Кликает, кликает и понимает, что что-то не то, что-то не работает, и вообще задача не сделана.
В JIRA начинают падать тикеты, возле Васи начинают собираться разработчики со словами: «Да как же так? Все же сделано!» и кто-то наконец спрашивает: «А у тебя какая ветка на тест раскатана?» Вася смотрит — не та. Ветка быстро исправляется, тикеты в JIRA закрываются, все хорошо. Вася продолжает тестировать, у него все работает.
Но в это время в другом конце комнаты разработчик Вова думает: «Странно, а почему у меня не работает?» Но он быстро понимает, что ветка не та. Раскатывает ту, что нужно, и проблемы снова у Васи.
За пару итераций они понимают, что они просто тестируют на одном тестовом стенде и мешают друг другу. В результате время потрачено впустую, Вася и Вова недовольны.
Другая история. Разработчик Коля знает про Васины проблемы, заранее приходит к нему и спрашивает, какой тестовый стенд сейчас свободен. Вася указывает свободный, и все хорошо. Через пару дней они встречаются снова, и Вася спрашивает у Коли: «Ты нам тестовый стенд вернешь? Ты его занимал на часок, а уже 2 дня прошло».
И снова проблема — либо разработчику искать другой стенд, либо все будут бодро ждать, пока он закончит тестирование.
На самом деле на схеме выше отображено не все. Здесь не хватает менеджеров. Иногда менеджеры хотят смотреть еще не протестированный сырой код. Подход стандартный — мы снова выделяем уголок тестового сервера и делаем еще тестовые стенды.
Самая последняя часть этой системы — это конечно CI — он тоже хочет куда-то стрелять, где-то тестировать.
Плавно развивая такую схему, мы получаем бесконтрольное изменение тестовых стендов. Схема плоха тем, что мы действительно не контролируем такие стенды — мы не знаем:
- кто тестирует на этом стенде в данный момент;
- что там раскатано;
- мы вообще не знаем, занят он сейчас или свободен.
Более того, мы не знаем, какие тестовые стенды сейчас свободны, может быть, на какие-то в это время стоит очередь.
ИдеяВ этот момент мы задумались — что же делать? Зачем нам столько тестовых стендов? Почему бы нам не делать тестовый стенд ровно тогда, когда он нужен? Нужен сейчас тестовый стенд — мы его сделали, не нужен — мы его удалили.
Следующий шаг в этой идее — делать тестовый стенд под каждую ветку кода.
Вроде идея хорошая, но есть технические нюансы.
- независимые;
- очень похожие на продакшен — мы хотим тестировать ближе к продакшен-окружению;
- с возможностью быстро создавать стенды, потому что мы хотим, чтобы, как только ветка появилась, тут же под нее появился бы и тестовый стенд.
В идеале нам хочется одну кнопку «Сделать тестовый стенд».
Суровая реальностьЕще есть суровая реальность, в которой у нас:
- Большой сложный проект — огромный php монолит с достаточно большой историей.
- Сервис в четырех доменных зонах. Мы одновременно поддерживаем российскую, украинскую, узбекскую и белорусскую зоны.
- Куча поддоменов —геоподдомены и сервисные поддомены — такие, как API, students.superjob.ru и прочее.
И все это в какой-то момент тестировщики захотят протестировать. Даже если мы сейчас не тестируем это на Украине, завтра появляется задача сделать для украинской части специальную страничку — это нужно тоже учитывать.
Docker/docker-compose
Во-первых, мы говорили о том, что тестовые стенды должны быть изолированными и максимально похожими. В наше время это позволяет реализовать docker. Он даст возможность запускать контейнеры. Очевидно, что одним контейнером мы не обойдемся, более того, нам надо запускать кучу похожих стеков. Поэтому нужен docker-compose.
Замечательно — мы будем использовать docker — это стильно, модно, молодежно.
Распиливаем монолит выделяем сервисы
Docker пропогандирует микросервисный подход и здесь мы встаем перед проблемой, потому что у нас монолит.
Вы когда-нибудь пробовали оценить, сколько стоит распилить монолит по микросервисам? Очевидно, что эта цифра измеряется в человеко-годах.![]()
В какой-то момент мы посмотрели на компонентную схему нашей системы и увидели, что здесь у нас есть load-balancing, здесь — приложение на php, здесь — node.js-приложение. Почему бы нам не запускать именно это, как сервис. Давайте найдем то, что мы можем запускать в docker-контейнерах.
Настраиваем сеть
Дальше нам необходимо каким-то образом достучаться до нашего тестового стенда. Естественно, нам необходимо вытащить 80-ый порт наружу, чтобы браузер мог открыть наш тестовый стенд, но если такие стенды будут запускаться в рамках одной машины, нам нужно выдавать IP.
В документации имеется целый огромный раздел про настройку сетей.
Docker умеет использовать различные типы сетей. В нашем случае очень помогла сеть типа macvlan. Это технология, которая позволяет на одном физическом сетевом интерфейсе реализовывать пачку виртуальных сетевых интерфейсов. При этом docker сам будет управлять этими интерфейсами: создавать, добавлять на машину и получать уже внешние, по отношению к хост-машине, IP-адреса.
Таким образом мы можем запустить пачку контейнеров, дать фронт-контейнеру (балансеру) возможность получить внешний IP-адрес и открыть на нем 80-ый порт. Мы уже можем постучаться туда при помощи браузера.
Поднимаем DNS и API
Мы помним, что у нас есть доменные зоны и куча поддоменов. Таким образом, обратиться к тестовому стенду мы можем только по домену 2-го уровня. Здесь есть как колоссальный плюс, так и колоссальный минус:
- Минус — нам очевидно придется каким-то образом перекрывать реальные домены в зоне ru, ua, uz, by.
- Плюс — в качестве домена 2-го уровня можно зашить прямо конкретное название ветки — мы же делаем тестовые стенды под каждую ветку кода.
Таким образом мы получим наглядный, четкий и ясный адрес, в котором уже будет содержаться указание на ветку кода.
Минус обходится на самом деле просто. Если нам приходится перекрывать домены, мы просто добавляем префикс и таким образом ограничиваем набор перекрываемых доменов — с этим уже можно мириться.
В нашем случае мы выбрали префикс sj. Получается, нам приходится перекрывать домены только с префиксом sj — таких явно немного.
Еще одна часть DNS — это API. Как уже говорилось, необходимо поднимать тестовые стенды быстро. Поэтому нам нужен DNS-сервер, который позволяет быстро добавлять и быстро убирать запись по API в автоматическом режиме.
Решение — PowerDNS. Этот сервер позволяет достаточно быстро и просто прикрутить к нему API и при помощи скриптов добавлять и удалять тестовые стенды.
Замечательно! Мы подняли и настроили DNS, научили наши контейнеры в него прописывать свои IP, но чего-то не хватает.
Делаем SSL-CA
Мы живем в XXI веке. Очевидно, что весь интернет — SSL и тестовые стенды должны поддерживать SSL. Достаточно много багов специфичны для SSL, и mixed content — только вершина айсберга.
Итого, нам нужен способ быстро получить сертификат и быстро его применить на поднимающийся тестовый стенд. В нашей компании уже был центр сертификации, основанный на OpenSSL. Здесь мы пошли простым методом написания своего велосипеда.
Велосипед пишется за один день и позволяет при помощи GET-запросов получать сертификаты, сгенерированные уже на конкретное имя домена.
Осталось самое малое. Нужно это автоматизировать, потому что мы же хотим все это делать одной кнопкой.
Автоматизируем
Для себя на начальном этапе мы написали консольный скрипт, который позволяет просто поднять тестовый стенд или его удалить.
Очевидно, тестировщикам это не очень удобно. Поэтому можно, например, сделать специальную сборку, которая соберет тестовый стенд и запустит его.
Но на самом деле самый крутой шаг в этом плане — это добавить такую кнопку прямо в JIRA-тикет. Представьте, ваш тестировщик открывает JIRA-тикет, читает требование, нажимает кнопку и получает через пару минут тестовый стенд — здорово же?
Плюсы- Изначально мы планировали это именно под ручное тестирование, чтобы тестировщик мог запустить и прокликать любую версию своего кода, и это круто заработало.
- Следующий дополнительный бонус — у нас появились демо-хосты. Это то же самое, только в JIRA-тикет заходит не тестировщик, а менеджер проекта. Он тоже может посмотреть и покликать сырой код.
- Мы получили колоссальный плюс для CI. Когда мы обучили CI точно так же поднимать тестовый стенд на конкретную версию кода и потом его удалять, у нас появилась возможность запускать абсолютно любые тесты для любой ветки. Даже самые сложные интерфейсные selenium тесты я могу одним кликом прогнать для любой ветки в моем проекте.
Минусы
Но есть и минусы, я бы сказал, нюансы в управлении стендов. Нужно научиться правильно ими управлять.
Первую версию своей системы мы выкатили на старый слабый сервер и настроили создание тестовых стендов под каждую новую ветку. Конечно, где-то через день-полтора сервер не справился — просто потому, что веток появляется очень много.
Тогда, мы перестали их создавать автоматически, а появилась кнопка в JIRA, CI научилась запускать и останавливать тестовые стенды, собирать с них логи.
Определенно есть класс задач, которые эта система не позволит решать. Например, часто всплывающая проблема — это общее время для всех контейнеров. Некоторые задачи было бы удобно тестировать, сдвинув время на сервере. Эта система, к сожалению, не позволяет решать такие задачи. Но такие задачи можно решить, добавив в код специальные ветки для тестирования, чтобы можно было, например, посмотреть, как поведет себя форма через 2 недели.
ИтогНа входе мы имели систему тестовых стендов, которая заставляла нас искать тестовый стенд и не гарантировала нам то, что никто не будет мешать друг другу на этих тестовых стендах.
Было: «Вася, а какой тестовый свободный — мне свою задачу раскатить потестировать».
На выходе получилась одна кнопка, которую можно нажать и получить через пару минут готовый тестовый стенд под конкретную версию кода. Даже если этим стендом будет пользоваться несколько человек, гарантировано то, что эти люди хотят смотреть именно эту версию кода.
Стало: «Жму кнопку и через полторы минуты получаю новый тестовый стенд под конкретную задачу».
Бонусом мы получили все тесты в один клик. Как я уже говорил, любые тесты на любой ветке прямо из CI выбираются одной кнопкой. Дальше машина все сделает сама: поднимет тестовый стенд, обстреляет его, соберет с него логи и удалит.
Возвращаясь к своему первому вопросу, сколько же тестовых стендов нам нужно? Я не знаю, сколько нам нужно тестовых стендов, потому что сегодня их нужно 20, завтра — 15, послезавтра 25.
Но я точно знаю, что у нас ровно столько тестовых стендов, сколько нужно здесь и сейчас.
Время летит незаметно, и до фестиваля конференций РИТ++ осталось совсем немного, напомним он пройдет 28 и 29 мая в Сколково.Пользуясь случаем, приводим небольшую подборку заявок RootConf для широкого круга слушателей:
- Даниил Мигалин (Microsoft). Автоматический, надежный и управляемый деплой с помощью простых инструментов.
- Алексей Палажченко (Percona). Долгосрочное хранение метрик Prometheus’а.
- Михаил Кузьмин (JetBrains). Конвейер поставки виртуальных машин.
- Николай Сивко (okmeter.io). Тонкая настройка балансировки нагрузки.
Забронировать билеты еще можно, но, не забывайте, цена неуклонно растет.
История обеспечения качества | Эволюция QA
QA Tutorials
Priya Sr Факультет5 февраля 2018 г.
153 25 907 2 минуты чтения
Большое внимание к поставке качественного программного обеспечения сделало тестирование программного обеспечения неотъемлемой частью процесса разработки программного обеспечения. С момента изобретения компьютеров в 1822 году до современной эры систем терминология системных сбоев превратилась в обширный предмет тестирования программного обеспечения. История QA восходит к 19век. Он включает в себя огромный глоссарий терминов, процедур, стандартов, политик, подходов, фреймворков и инструментов тестирования тестирования программного обеспечения.
История концепций обеспечения качества начинается с изобретения компьютера. Машины Бэббиджа, изобретенные английским изобретателем Чарльзом Бэббиджем в 1822 году, считались первыми среди механических компьютеров. Однако впервые было сообщено, что термин «ошибка» был использован Томасом Эдисоном в 1878 году, что в основном ассоциировалось с аппаратным обеспечением, когда он написал письмо своему коллеге в газетах Эдисона.0003
‘Так было со всеми моими изобретениями. Первый шаг — это интуиция, и он приходит внезапно, затем возникают трудности — эта штука дает сбой, и тогда «Жуки» — как называются такие маленькие недостатки и трудности — проявляют себя и месяцы напряженного наблюдения, изучения и требуется труд, прежде чем будет достигнут коммерческий успех или неудача».
Вторая мировая война (1939–1945 гг. ) привела к значительному развитию компьютерных технологий. Электронные компьютеры широко использовались для взлома секретных кодов и раскрытия секретов военной связи. В том же году 1945 Термин «компьютерная ошибка» был впервые введен Грейс Мюррей Хоппер в истории обеспечения качества. В 1951 году Джозеф Джуран отметил важность качества программного обеспечения в своей книге «Руководство по контролю качества». Терминология тестирования программного обеспечения была четко определена, когда Гленфорд Дж. Майерс опубликовал свою книгу «Искусство тестирования программного обеспечения» в 1979 году. По сегодняшним стандартам ошибки относятся к человеческим ошибкам, которые приводят к ошибкам или дефектам в программном обеспечении и вызывают сбой программного обеспечения. ISO, основанная в 1946 году, внесла большой вклад в стандартизацию процедур, артефактов, методов и приемов разработки и тестирования программного обеспечения. Другими участниками являются IEEE, CMMI, шесть сигм, которые определяют стандарты качества и определяют основу для улучшений для достижения качества программного обеспечения.
Предмет тестирования программного обеспечения должен рассматриваться с наивысшим приоритетом, поскольку он может избежать спада в экономике, предотвращая сбои программного обеспечения. Ракета Ariane 5 рейса 501 — проект стоимостью 8 миллиардов долларов в 1996 году провалился из-за дефекта программного обеспечения. По данным NIST (Национальный институт стандартов и технологий) на 2002 год, стоимость программных ошибок для экономики США составляет 59,5 миллиардов долларов в год. В 2003 году на Северо-Востоке и Среднем Западе США и в Онтарио в Канаде было второе по распространенности отключение электроэнергии из-за программного дефекта в системе сигнализации.
Область тестирования программного обеспечения создала возможности трудоустройства для инженеров-испытателей и обучающего персонала, бизнес-возможности для учебных заведений по тестированию программного обеспечения и профессиональных колледжей, поставщиков инструментов тестирования, объем исследований для экспертов в предметной области.
Эта статья написана Прией, старшей из преподавателей h3K Infosys.
Связанные статьи
Проверьте также
Закрывать
- Учебники по контролю качества
ВНЕШНЕЕ ТЕСТИРОВАНИЕ
31 марта 2019 г.
Что тестировщики должны знать о знании предметной области
Вы можете быть экспертом в методах тестирования программного обеспечения. Но часто специалистам по обеспечению качества требуется знание отраслевой области, чтобы реагировать на уникальные спецификации, рабочие процессы или внедрение технологий. Вот на что следует обратить внимание, а также как получить знания в предметной области на вертикальных рынках, например, нанять таланты, использовать консультантов, а также пройти курсы и учебные пособия .
Независимо от того, на какую роль в тестировании программного обеспечения вы рассчитываете, полезно получить как можно больше информации о вертикальных рынках, на которых используются ваши приложения. Например, при тестировании систем для сферы здравоохранения вам необходимо быть в курсе требований HIPAA. Если вы работаете в сфере розничной торговли, вы должны знать, как тестировать точки продаж и данные RFID.
«Знание предметной области объясняет «почему» то, что делает бизнес, и информирует о решениях и тестировании приложения». — Тим Харрисон, вице-президент по обеспечению качества в консалтинговой компании SQAsquared 9.0047Но нельзя знать все заранее. Каковы наиболее эффективные способы для тестировщиков получить отраслевые знания в области программного обеспечения? Каковы наилучшие стратегии для групп контроля качества, желающих углубить и расширить этот вид ноу-хау?
Модная фраза, обозначающая опыт в определенных отраслях промышленности, «знание предметной области», используется уже довольно давно. В книге гуру тестирования программного обеспечения Рекса Блэка 2003 года «Критические процессы тестирования» автор упоминает знание предметной области как одну из трех областей навыков, которые менеджеры должны искать при найме и развитии тестировщиков.
(Остальные? Проверка навыков и технических навыков.)
В статье, опубликованной в следующем году, Дэнни Р. Фроут снова коснулся этой темы, рассматривая ее с точки зрения тестировщика. «Насколько хорошо вы можете общаться с людьми, которые будут покупать и использовать программное обеспечение? Понимаете ли вы проблемы, которые они пытаются решить, и то, как они будут использовать программное обеспечение для их решения?» — спросил Фраут. Его список технических навыков, полезных для тестировщиков, включал знакомство с языками программирования, операционными средами конечных пользователей и системным администрированием.
Вам не обязательно откажут в приеме на работу тестировщиком начального уровня, если вы не обладаете достаточными знаниями предметной области, тестированием и техническими навыками. Однако на любом этапе вашей карьеры: чем больше мастерства вы сможете развить, тем лучше для вас.
Важность растет
Термин «знание предметной области» может упоминаться в связи с техническими навыками, такими как SQL Server, Linux или мобильные приложения.
Однако в этой статье мы сосредоточимся на вертикальных рынках. Сегодня такой опыт необходим как никогда.
Во многом это связано с возрастающей сложностью как вертикальных программных приложений, так и требований конечных пользователей, включая соблюдение нормативных требований, утверждает Джон Куигли, тестировщик программного обеспечения с более чем 30-летним опытом работы, в основном со встроенными автомобильными системами.
«Если медицинское приложение предназначено для использования в США, оно должно соответствовать требованиям HIPAA, а руководящие принципы этого регламента в основном касаются защиты данных», — объясняет Владлен Шулепов, генеральный директор компании по разработке корпоративного программного обеспечения RiseappS. Когда разработчики создают приложение, совместимое с HIPAA, инженеры по обеспечению качества должны убедиться, что его функции безопасности реализованы должным образом. Хотя HIPAA впервые был принят в 1996 году, со временем в него было добавлено множество новых положений, и в будущем возможны дальнейшие изменения.
Проверка решений — едва ли не единственная область тестирования и контроля качества, где крайне необходимы знания предметной области. «Глубокое знание предметной области может дать ценную информацию о продукте в определенной области», — отмечает Максим Иванов, генеральный директор Aimprosoft, еще одной компании, специализирующейся на разработке корпоративного программного обеспечения. По его словам, понимание потребностей конечных пользователей и создание соответствующих поправок на более ранних этапах разработки, более точные сценарии тестирования и приоритизация дефектов.0003
«С точки зрения команды обеспечения качества конкретный тестировщик/инженер по контролю качества, скорее всего, будет более продуктивным и ценным, чем тот, у кого более низкий уровень знаний в определенной области, — говорит Иванов.
Тим Харрисон, вице-президент по обеспечению качества в консалтинговой компании SQAsquared, разделяет это мнение. «Знание представляет собой базовое понимание тестируемых приложений, — объясняет Харрисон.
— Без понимания этого приложения вы на самом деле просто нажимаете на клавиатуру и надеетесь на лучшее. Знание предметной области объясняет «почему» то, чем является бизнес. делает и информирует о решениях и тестировании приложения».
Опытные конечные пользователи не упустят преимущества. Николас Сталлер, основатель My Perfect Financial Advisor, является генеральным директором, не являющимся техническим специалистом, и сейчас работает над своим третьим стартапом в области финансовых технологий. «В первые месяцы существования моей компании я провел много времени, работая непосредственно с техническим персоналом. В тех случаях, когда команда QA обладала знанием предметной области, это было неизмеримо полезно. Было бесчисленное множество случаев, когда сбой или ошибка были легко обнаружены кем-то, кто разбирался в отрасли, и упущены теми, кто не знал», — говорит он.
Обладая знанием предметной области, вы лучше понимаете пользователей, и это помогает вам придумывать новые способы помочь им.
Как тестировщики могут взять себя в руки
Учитывая очевидный потенциал карьерного роста, знание предметной области является горячей темой на онлайн-форумах, таких как Quora. Вопросы приходят не только от тестировщиков-новичков, но и от опытных тестировщиков, желающих перейти из менее прибыльных секторов промышленности, таких как управление персоналом (HR), возможно, в более высокооплачиваемые области, такие как банковское дело и фармацевтика.
QA-специалисты, которые уже прошли вертикальную кривую обучения рынка, часто советуют различные формы самообразования. «Начните читать газеты (не только спортивные разделы) :)», — пошутил Саурабх Далви, специалист по автоматическому тестированию рынков капитала и инвестиционно-банковских услуг.
Кроме того, чтобы быть в курсе отраслевых новостей, читая газеты и отраслевые публикации, другие методы самообразования включают в себя чтение технических руководств, посещение торговых конференций и интервью с экспертами.
Те, у кого есть навыки программирования, также могут попробовать изучить и написать приложения для предметной области.
Например, если технарь хочет проникнуть на финансовые рынки, хорошей идеей будет загрузить программное обеспечение с открытым исходным кодом, предназначенное для банковского дела, предложил Прамод Капоре. «Там вы найдете фактический дизайн и реализованный код. Вы можете просмотреть исходный код и четко понять процесс, а затем написать простой проект».
Однако получить общие знания в такой области, как банковское дело, непросто. «Существует так много типов банков — розничные банки, инвестиционные банки, коммерческие банки и частные банки. Кроме того, слово (а) «банковская отрасль» [означает] так много вещей — клиентов, продуктов и услуг, операции, управление рисками, правила и т. д. На самом деле не так просто разобраться во всем», — признает Гэри Тан.
Конечно, лучший способ ускорить процесс — это получить работу по тестированию в выбранной вами области, а затем получить знания на рабочем месте, общаясь с экспертами там, где вы работаете.
«Если у вас есть руководитель группы обеспечения качества или старший инженер, обладающие большими знаниями в конкретной области, они всегда могут помочь кому-то с меньшим опытом узнать о ней больше», — предлагает Шулепов.
Углубление знаний команды
Многие организации признают желание углубить свой опыт в областях, в которых они уже сильны. Распространенный способ передать знания от опытных профессионалов новичкам — вести подробную документацию.
«Знание предметной области настолько важно, что мы посвящаем несколько раз в неделю всей командой, чтобы остановить то, что мы делаем, и документировать вещи в нашей вики, — объясняет Харрисон. — Мы добавляем, улучшаем, уточняем новый контент и удаляем устаревшую документацию. . Вики превращаются в адаптационные документы для новых или переводимых членов команды».
Джамиль Гохеер, генеральный директор компании по тестированию программного обеспечения Kualitatem, рекомендует вести «Книгу знаний», содержащую информацию о процессах, участниках, фактах, определениях и акронимах, относящихся к предметной области.
«Затем эту книгу можно использовать в качестве справочного руководства в любой момент», — говорит он.
Организации также расширяют свои знания в предметной области, назначая отдельных тестировщиков для выполнения определенных задач на основе опыта. По мнению Куигли, существует четыре основных типа тестов программного обеспечения в вертикальном тестировании приложений, каждый из которых необходим для получения желаемых результатов и каждый требует определенного уровня знаний в предметной области.
- Статические испытания . Один из этих тестов, статическое тестирование, проводится до того, как продукт появится на свет. Квалифицированные члены команды просматривают спецификации, чертежи, документы по проектированию программного обеспечения, спецификации требований к программному обеспечению, проверки кода, обход клиентов и любые другие проверки артефактов. «Это требует времени и таланта, который готов критиковать в среде, которая безопасна для этой критики», — отмечает Куигли.
- Проверка соответствия . Напротив, тестирование на соответствие — это тестирование продукта на соответствие всем спецификациям и договорным обязательствам, включая, но не ограничиваясь этим, соответствие нормативным требованиям. «Например, в автомобильной промышленности мы проверяем, чтобы все датчики соответствовали требованиям по стрелке в нашей приборной панели», — утверждает Куигли. Вы можете взять требования к тестированию на соответствие из спецификации заказчика (если она доступна), из обзора требований или из того и другого.
- Комбинаторное тестирование . Комбинаторное тестирование относится к методам всестороннего тестирования программного обеспечения недорогим способом в попытке найти неожиданные ошибки, которые в противном случае могли бы остаться незамеченными на этапе тестирования. Полное объяснение теорий, лежащих в основе комбинаторного тестирования, могло бы занять целую книгу. По сути, однако, он определяется как подход, который систематически проверяет системные настройки в управляемом количестве тестов, охватывающих t-сторонние взаимодействия.
- Исследовательское тестирование. Этот тип тестирования требует большего знания предметной области, чем любой из трех других типов. «Исследовательское тестирование происходит, когда мы позволяем достаточно опытному инженеру-испытателю следовать своей «интуиции» и чувствовать, как он оценивает производительность продукта», — уточняет Куигли. «Если все сделано правильно, набор тестов растет по мере того, как инженеры-испытатели узнают больше о поведении продуктов. Эти продуктивные исследовательские тесты будут перемещены в набор тестов, возможно, автоматизированы».
Для тестирования на соответствие требуется минимум знаний в предметной области. Новички могут оттачивать свои знания в предметной области, изучая и тестируя требования клиентов вертикального рынка. «Здесь вы можете позволить детям поиграть», — говорит Куигли.
Расширение команд в новые вертикали
Как и отдельные тестировщики, многие независимые компании по тестированию и разработке стремятся получить знания о новых вертикалях.
Любимые маршруты включают самообразование, онлайн-уроки или вебинары, обучение в классе, найм консультантов, добавление большего количества штатных сотрудников и налаживание отраслевых партнерских отношений. Однако организации сильно различаются в том, как они расставляют приоритеты и используют эти инструменты.
Компания Aimprosoft разработала два сценария расширения знаний тестировщиков. «Если нам приходится иметь дело с устранением определенных микропробелов в предметных знаниях наших QA-инженеров или тестировщиков, мы идем по пути самообразования и пытаемся извлечь необходимую информацию из онлайн-руководств, письменных руководств и руководств». говорит Иванов.
«В случае, если мы преследуем цель на более глубоком уровне, например, расширение знаний о долгосрочных проектах, изучение совершенно новой для компании области и т. д., мы либо посещаем местные семинары, либо нанимаем сотрудника с соответствующей экспертизы. Если проект длится более двух-трех лет и мы считаем, что указанных выше мер недостаточно, мы можем пригласить специалиста для обучения сотрудников нашего отдела контроля качества», — добавляет Иванов.
Компания SQAsquared также применила несколько различных стратегий. «Одним из них является онлайн-вебинары от опытных специалистов, хорошо разбирающихся в той области, в которой мы ищем знания», — говорит Харрисон.
«Мы также стремились установить партнерские отношения с ключевыми лидерами, — говорит Харрисон. — На протяжении многих лет мы специально строим отношения с теми, с кем мы работаем, которые выходят за рамки первоначального взаимодействия». Люди переходят в новые компании и распространяются в новые отрасли. Личные связи приводят в компанию Харрисона, давая им возможность консультироваться с людьми, которые перешли на новые вертикали. Другими словами: они начинают с установившегося доверия клиентов / консультантов. «Мы обнаружили, что маршрут отношений был лучшим, поскольку мы можем откровенно поговорить с этими людьми и показать, где нам не хватает информации, чтобы они могли помочь заполнить пробелы для нас».
Что вам нужно знать о пяти различных вертикальных рынках
Вот несколько основных моментов того, что вам нужно знать о пяти конкретных вертикальных рынках.
Если домена вашей мечты нет в списке ниже, выполните поиск в Интернете. Вы обязательно столкнетесь с совершенно другим набором требований!
- Фармацевтика. По словам Елены Якимовой, руководителя отдела веб-тестирования в компании по тестированию программного обеспечения A1qa, крайне важно проверять точность и актуальность данных и чисел, вводимых в фармацевтические системы. «Небольшое изменение в цифрах может привести к значительным изменениям и дефектам. Поскольку программное обеспечение для фармацевтики имеет дело с лекарствами, неправильные данные могут иметь очень серьезные последствия (например, неправильная дозировка)», — объясняет она.
- Здравоохранение. Помимо отслеживания всех тонкостей HIPAA, имейте в виду, что, как правило, необходимо создавать и тестировать отдельные или комбинированные приложения для данных поставщиков, данных участников, выставления счетов/оплаты премий, данных брокеров, ввода/проверки требований, расчет/оплата комиссии брокера.
FDA также предъявляет требования к сертификации медицинских устройств. Медицинские приложения также нельзя тестировать в произвольном порядке; вместо этого необходимо соблюдать определенный рабочий процесс.
- Электронная коммерция . По понятным причинам электронная коммерция — еще одна область, где безопасность особенно важна. Тестировщикам также необходимо хорошо разбираться в таких технологиях, как управление запасами, процессы оплаты, проверка сеансов и файлов cookie, корзины покупок, история закупок, онлайн-транзакции и обработка (OLTP), соответствие PCI и электронный обмен данными (EDI).
- Розничная торговля в обычных магазинах. Стационарные решения для розничной торговли содержат многие из тех же компонентов и сторонних приложений, что и системы электронной коммерции, например, управление запасами. Однако стационарное программное обеспечение может иметь уникальные требования. Например, решения для торговых точек должны включать в себя такие технологии, как RFID и штрих-коды, быструю кассу, генерацию квитанций, а также платежные и биллинговые системы.
- Страховка . Помимо изучения конкретных требований пользователей в области страхования жизни, страхования имущества, транспортных средств и т. д., познакомьтесь со многими программными системами, используемыми в этой отрасли. К ним относятся программное обеспечение для выдачи страховых сертификатов, претензий, управления декларациями, выставления счетов, администрирования полисов и порталов страховых агентств, и это лишь некоторые из них.
В какой бы отрасли вы ни работали, вам, вероятно, нужно, чтобы кто-то отвечал за качество программного обеспечения. В этом эссе приводится аргумент в пользу директора по качеству.Жаклин Эмиг
Жаклин Эми (произносится как «Эми») — титулованный журналист, специализирующийся на технологиях, используемых предприятиями, малым бизнесом и потребителями. Она работала полный рабочий день редактором TechTarget, BetaNews и Ziff Davis. Ее истории также появились в десятках других крупных технических изданий, включая CIO, Linux Planet и PC World.