Кто ищет ошибки в программах

Крупные IT-компании охотно платят сторонним тестировщикам и разработчикам за поиск багов и уязвимостей своих сервисов и приложений. Искать ошибки может любой, кто разбирается в программировании и тестировании. Если вы тестировщик или мечтаете им стать , эта статья поможет узнать о неочевидной стороне профессии — багхантинге.

Кто такие багхантеры

Багхантеры или белые хакеры ищут уязвимости в крупных сервисах и приложениях и сообщают о них разработчикам прежде, чем об этом узнают злоумышленники. Компании за это платят и создают программы поиска уязвимостей — Bug Bounty, Хакеры могут искать уязвимости ради развлечения или интереса, но есть специалисты, которые профессионально зарабатывают на багхантинге. Например, минский разработчик Дмитрий Лукьяненко превратил своё хобби в бизнес и зарабатывает на поиске уязвимостей в продуктах Google и Facebook. В зале славы багхантеров Google Дмитрий занимает занимает 15 место.

Где багхантеры ищут работу

Крупные компании хотят как можно раньше узнавать о проблемах в безопасности продуктов и сервисов, поэтому объявляют Bug Bounty — программы поиска уязвимостей за денежное вознаграждение. Такие программы есть у Яндекса, Лаборатории Касперского, GitHub, Apple, Facebook, Google, Mozilla. Искать ошибки, как правило, могут любые пользователи продуктов и сервисов.

Жди меня • Выпуск от 04.03.2022

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

Программа Bug Bounty от Яндекса

Проще всего найти программы Bug Bounty на платформах-агрегаторах с большой базой зарегистрированных хакеров. Например, на Hackerone, Background, Hacker Proof. На Hackerone по данным их отчёта за 2019 год зарегистрировано 500 тыс. хакеров, а в каталоге программ можно найти предложения багбаунти-программ от Mail.ru, Flickr, Ford, Toyota, Evernote, PicsArt. аталог программ на Hackerone

Каталог программ на Hackerone

Иногда компании устраивают конкурсы на поиск уязвимостей конкретного продукта. Например, в 2019 году Яндекс. Драйв запустил конкурс по поиску уязвимостей в безопасности каршеринга. Главный приз был — 500 000 рублей.

Сколько можно заработать на поиске ошибок

Обычно компании классифицируют ошибки по сложности и предлагают выплаты в зависимости от типа ошибки.

  • Яндекс платит от 5 000 до 170 000 рублей. Недостатки в управлении сессией, межсайтовый скриптинг, межсайтовая подделка запросов, небезопасное хранилище данных — за найденные ошибки можно заработать от 5 000 до 18 000 рублей.
  • Mail.ru — от $150 до $35 000. За обход аутентификации интерфейса администратора можно заработать от $500 до $3000 в зависимости от сложности проблемы.
  • Минимальная выплата в Twitter — $140, максимальная — $20 000, но за серьезные находки компания готова платить больше.

Уровни наград обычно указывают ориентировочно, и нет никакой гарантии, что эту ошибку уже не нашли, но новичку-багхантеру может повезти найти небольшие уязвимости, за которыми не охотятся хакеры посерьезнее. Они превращают поиск багов в работу, но в этом бизнесе как на рыбалке: за одну ошибку можно заработать как $1000 так $15 000.

5 ВЕДУЩИХ, КОТОРЫЕ НЕ СДЕРЖАЛИСЬ В ПРЯМОМ ЭФИРЕ! milTOP

Совсем продвинутые хакеры состоят в мировых сообществах и зарабатывают сотни тысяч долларов. В феврале 2020 года хакер Эрик, известный в сообществе как todayisnew, стал восьмым хакером, зарабатывающим от одного миллиона долларов.

Известные истории багхантеров

Дмитрий Лукьяненко. $15 000 на одной ошибке в Facebook. Дмитрий Лукьяненко — минский Android-разработчик. Ищет ошибки в Facebook и Google. Дмитрий обнаружил , что стороннее приложение может без действий пользователя получить доступ к приватным данным Facebook. Компания выплатила вознаграждение — $15 000.

Google удостоил в честь Дмитрия регулярный грант «1 dmitry» в $1337. Грант — выплата, за которую разработчик исследует то, что попросит компания. Если он находит уязвимость, получает бонус, а если нет, то ничего — грант так и останется у него.

Читайте также:
Языковые инструкции с помощью которых в программах записываются действия

Хакер из Санкт-Петербурга. $70 000 за уязвимость в PayPal. Link — хакер из Санкт-Петербурга, занимает 37 место среди багхантеров на HackerOne. Зарабатывает от $2000 до $8000. Находил уязвимости в Sony, Adobe, Mail.ru. В 2019 году он рассказал vc.ru, как нашёл уязвимость в PayPal, и заработал свой самый крупный гонорар — $70 000.

Андрей Леонов. $40 000 за уязвимость в Facebook . В 2017 году специалист тестировал сторонний сервис и нашел ошибку, которая с помощью специальной картинки позволяла запускать на ее серверах произвольный код. За уязвимость Андрей получил рекордный на тот момент гонорар от компании — $40 000.

Какие навыки нужны багхантеру

Чтобы участвовать в программах Bug Bounty, нужно знать методы поиска и использования уязвимостей, мыслить нестандартно, читать отчеты хакеров об уже найденных уязвимостях, чтобы понимать логику ошибок, практиковаться на тренажерах вроде Hack The Box . Это тренажер-сервис по пентестингу — тестирование на проникновения.

Что ещё нужно знать и уметь багхантеру?

  • Знать архитектуру веб-приложений, типы тестирований;
  • Понимать, как работают протоколы HTTP, DNS, TCP;
  • Знать языки программирования: Python, MySQL, PHP;
  • Разбираться в библиотеках для автоматизированного тестирования и тестовые фреймворки;
  • Работать с шаблонами проектирования и автоматизации тестирования.

Освоить такие навыки можно на курсе «Тестировщик ПО с автоматизацией на Python» . Этот курс помогает стартовать в ИТ с нуля. Вы освоите навыки программирования на Python, узнаете про особенности тестирования Android и iOS приложений, напишете 20 автотестов на Selenium и 20 автотестов к API и соберете полноценное портфолио.

Специалист с такими навыками может претендовать на работу тестировщика со средней зарплатой 70 000 рублей. Потолок зарплат по данным исследования «Хабр.Карьера» среди тестировщиков достигает 150 000 рублей.

Источник: dzen.ru

Кто такие тестировщики и почему им столько платят?

Тестировщики — это специалисты, которые проверяют качество программного обеспечения (ПО). Они ищут ошибки, несоответствия требованиям и другие проблемы, которые могут возникнуть при работе ПО у пользователя.

По сути это сотрудники IT-компаний, которые проходят путь самого пользователя и ищут все ошибки, с которыми тот может столкнуться.

Работа тестировщика не всегда похожа на простое пользование продуктом в поисках ошибок. Так, для каждой проверки Quality Assurance-инженеры (те самые тестировщики) пишут кейсы — собирают гипотезу о том, как продукт должен работать и записывают баги. А ещё делают автотесты, ищут ошибки в коде, проверяют баги через отладчик и так далее…

Тестировщики работают с продуктом на разных этапах его производства:

Quality Assurance — тестирование, которое проводится на этапах разработки, сопровождение продукта до того как он готов.

Quality Control — Тестирование перед запуском — процесс, который полностью происходит над готовым продуктом перед релизом.

Ещё одно деление в тестировании — по принципу функциональности:

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

Нефункциональное тестирование — способ, в котором тестировщик проверяет всё остальное: удобный ли у сайта/приложения/продукта UX, безопасно ли им пользоваться, получается ли использовать продукт интуитивно без инструкций и тд.

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

Другое важное в тестирование понятие — Black box/White box

Грубо говоря, метод чёрного ящика подразумевает тестирование без внимания к внутреннему устройству продукта. Он сфокусирован на работе главной функции, если она выполняется — тестирование завершено успешно.

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

Что такое автотесты и какие ещё есть инструменты в QA?

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

Читайте также:
Как восстановить удаленную папку с флешки без программ

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

Как учатся тестировщики?

Принято считать, что тестирование — один из самых лёгких путей в IT. Здесь не в той степени необходимо владение кодом, а после нескольких лет в QA многие действительно двигаются дальше, в сторону разработки.

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

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

Больше о работе и изучении IT — в наших соцсетях.
(Например, в телеграм-канале)

Больше о том, какими шагами до айти дойти — на нашем сайте.

Источник: vc.ru

Тестировщик (QA-инженер)

Профессия тестировщика – это возможность быстро «войти в айти» без навыков программирования. Расскажем, как освоить эту специальность, что нужно уметь, и какие есть перспективы дальнейшего развития.

Кто такой тестировщик

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

Другое название профессии – QA-инженер, то есть специалист по обеспечению качества (quality assurance).

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

Чтобы найти ошибки в программе, QA-инженер старается действовать так же, как рядовой пользователь:

  • просто пользуется программой;
  • проверяет работу всех ее функций;
  • специально совершает ошибки: вводит некорректные символы, много раз нажимает на одну кнопку, и т. д.

Что нужно знать и уметь

Чтобы начать работать тестировщиком, понадобятся такие Hard Skills:

  1. Знание методологий тестирования ПО (линейная, V-модель, Agile);
  2. Навыки работы с инструментами тестирования Dev Tools, инструментами проверки передачи по HTTP (Charles или Fiddler);
  3. Практический опыт оказания технической поддержки (быстрое изучение технологии, выявление проблемы, составление заявки и схемы решения);
  4. Знание основ программирования (Java, Python, SQL);
  5. Опыт работы с базами данных, умение писать SQL-запросы;
  6. Умение работать с программной документацией (планами, отчетами);
  7. Навыки работы с багтрекерами (Bugzilla, Jira), чтобы координировать с программистами работу по исправлению ошибок;
  8. Базовые навыки работы с Linux;
  9. Технический английский.

Необходимые Soft Skills:

  • усидчивость, внимательность, скрупулезное отношение к мелочам (рутинной работы много, и следить нужно за малейшими отклонениями от заданной программы);
  • аналитический склад ума и навыки анализа (понадобятся для выявления закономерностей в данных);
  • стрессоустойчивость из-за высокой цены ошибки (тестировщик постоянно в напряжении, потому что он проверяет работу программистов, а его ошибки искать некому);
  • коммуникативные навыки, неконфликтность (именно тестировщик сообщает разработчикам, что нашел ошибки в их продукте – нужна хотя бы минимальная дипломатичность в сочетании с настойчивостью, чтобы баги исправили).

Где может работать тестировщик

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

  • разработчикам ПО, электроники, «умной» техники;
  • разработчикам игр, приложений;
  • финтех компаниям;
  • разработчикам систем интеграции бизнеса с регуляторами (система маркировки, электронный документооборот и т.д.).

Можно ли стать тестировщиком с нуля

Это именно та профессия в IT, которую можно освоить с минимальным набором знаний на старте. Но есть нюанс: навыки, которые получены в процессе работы, позволят в дальнейшем расти именно в профессии тестировщика. То есть начинать с тестирования, чтобы потом стать разработчиком – не имеет смысла, у этих профессий разные задачи и разные пути развития.

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

Читайте также:
Отзыв о программе пример

Где и сколько нужно учиться

Бесплатные курсы обучения профессии тестировщика предлагают:

  1. Курс «QA старт» от Академии IT. Семь уроков помогут определиться с тем, подходит ли вам эта профессия. Темы: методологии разработки, в том числе Agile, виды и уровни тестирования, тест-дизайн, тестовая документация, работа с багами.
  2. Видеокурс «Тестировщик с нуля за 6 часов». Курс дает больше теории, но есть и практические примеры и вопросы, которые обычно задают на собеседовании новичкам. Темы: модели разработки, объекты тестирования, тест-план, виды и уровни тестирования, методы и техники тестирования, поиск багов и составление отчета.
  3. Курс «Верификация программного обеспечения» университета «Интуит». Содержит 16 лекций и тестов, 11 практических работ. Темы: верификация как вид тестирования, документация (тест-требования), тестирование программного кода, отчеты, виды тестирования, разработка устойчивого кода, тестирование в промышленной разработке.

Есть и платные курсы длительностью от двух (Eduson Academy) до 23 месяцев (Нетология), полный список онлайн-школ найдете чуть ниже.

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

Что должен уметь делать тестировщик

Рабочие обязанности тестировщика:

1. Анализ требований к продукту (как должна работать программа).

2. Работа с тестовой документацией, составление или работа по готовым документам:

  • план тестирования;
  • чек-лист (свойства ПО, которые нужно проверить);
  • тест-кейс (как проверять, что именно делать с программой).

3. Тестирование ПО.

4. Документирование ошибок (баг-репорт), если ошибки найдены.

5. Передача результата разработчикам (нужно отдать баг-репорт, разъяснить, что и почему не работает, договориться об исправлении ошибок).

6. Повторное тестирование после исправления.

При этом тестирование проводится двумя способами:

1. Ручное тестирование – специалист сам, вручную тестирует продукт на разных устройствах, в разных браузерах и ОС. Это более долгий и монотонный способ.

2. Автоматическое тестирование – инструменты автоматизированы, параметры для проверки установлены, но тестировщик все равно лично контролирует процесс.

Требования работодателей к специалисту

Обычно к тестировщикам среднего уровня (middle) такие требования:

  • опыт не менее 1-3 лет;
  • навыки работы с Linux;
  • знание скриптовых языков;
  • понимание работы интернета (что такое IP-адрес, IP порт, протокол, port-forwarding);
  • опыт написания технической документации (чек-лист, тест-кейс и т.д.);
  • знание методов тестирования;
  • знание английского языка на уровне не ниже Intermediate (в основном письменный.

Дополнительным плюсом будет знание основ программирования.

Можно ли работать удаленно и на фрилансе

Тестировщик может работать как в офисе, так и удаленно. Большинство работодателей ищут сотрудников в офис на полный день: по данным hh.ru, на сегодня таких вакансий 1163. Но часть из них рассматривает и вариант удаленки или совмещение офиса и удаленной работы.
На полную удаленку же приходится 414 предложений.

Можно работать и на фрилансе: малые предприятия ищут тестировщиков для разовых задач – протестировать сайт, лендинг или приложение. Эта работа подразумевает ручное тестирование, большой опыт не нужен.

Как оценивать компетенции и работу

Оценить работу тестировщиков сложно: количество найденных ошибок говорит о качестве кода, а не тестов.

Для оценки можно использовать данные из отчетов о найденных багах: их важность, приоритетность и дальнейшая судьба. Чем опаснее обнаруженные баги и чем быстрее их исправили – тем лучше работает тестировщик.

Примерно половина размещенных вакансий на hh приходится на Москву. Зарплатные предложения такие:

  • джуниоры без опыта могут рассчитывать на 50-70 тыс. руб.;
  • специалисты с опытом от года до 3 лет – от 100 до 120 тыс. руб.;
  • опытным тестировщикам с опытом автоматического тестирования, руководителям команды предлагают оплату в пределах 180-200 тыс. руб.

В регионах работодатели чаще предлагают выбор между офисом и удаленкой. Что касается зарплат, то мидлам платят меньше: 60-100 тыс. руб. А вот опытные тестировщики могут рассчитывать на те же 180-200 тыс. руб.

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

Марина Куликова

Business Development Director в BSL. Business Solutions Lab, ex Head of QA/QC Redmadrobot

Источник: otzyvmarketing.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru