Глазурь и кофе

Новости со всего света

Тестировщик по с чего начать

by adminon 28.07.202028.07.2020

Стоит определиться, тебя интересует именно QA или тестирование?
Потому что тестирование, это часть QA. QA вообще процесс по обеспечению качества продукта.
Для изучения тестирования, кроме уже упомянутого Савина, стоит прочитать «Тестирование программного обеспечения», у него три автора — Канер, Гуген и Фолк. Это фундаментальный труд — там описано практически все.
Этих двух книг для начала будет достаточно.
Дальше стоит понять, что ты хочешь тестировать — web, mobile, desktop. И изучать уже область — инструменты отладки, тестирования. По желанию — можешь попробовать программировать под выбранную платфору, это не обязательно, но будет плюсом.
После того, как ты разберешься с платформой, стоит понять, что ты хочешь тестировать — игры, соц сети, интернет магазины, что-то другое. И уже изучать особенности предметной области — для игр это будет механика, взаимодействие с игроком, для соц сетей и интернет магазинов — это UI, UX и далее.
Отличный тестировщик отличается от простого тем, что знает не только тестирование, но и область и может указать на нефункциональные ошибки — как пример — ошибку в балансе игры, неудобство интерфейса и далее.
Если же ты хочешь именно в QA, но тебе надо пройти все выше перечисленное, а потом начать думать, как помочь разработчикам избегать подобных ошибок или выявлять их на как можно более ранней стадии. Стандартный набор — continuous integration, автоматизация тестирования, процессы разработки и проблемы в них.

Тестировщик ПО, или Quality Assurance tester — человек, который ищет (и находит!) баги в программном продукте после его внедрения. Он не формирует процессы тестирования на этапе разработки приложения или сайта — этим занимается QA инженер (engineer) — но тоже дотошно изучает его, помогая программистам создать качественный продукт, а пользователям — работать с ним без ошибок. О том, как расшифровывается QA, чем занимаются тестировщики сайта, и как ими становятся с нуля — в нашей статье.

Содержание

  • Что такое QA тестирование? Виды тестирования
  • Обязанности тестировщика ПО (чем занимается тестировщик?)
    • Квалификация QA тестировщиков бывает разной:
  • Что нужно знать, чтобы стать тестировщиком QA?
  • Плюсы и минусы профессии тестировщика ПО
    • Плюсы
    • Минусы
  • Как стать тестировщиком QA?
  • Перспективы профессии и зарплата тестировщика
  • Основные виды тестирования
  • Список вопросов, которые тебе зададут на собеседовании
  • Три книги по тестированию, с которых ты можешь начать
    • Виды
  • Необходимость
  • Литература

Что такое QA тестирование? Виды тестирования

QA, или Quality Assurance — это комплекс мер для обеспечения качества ПО. В этот комплекс входит анализ всех условий, которые могут сказаться на качестве разработки и готового продукта.

QA тестирование бывает функциональным и нефункциональным:

  • Функциональным. Проверяет работу всех функций мобильного/десктопного приложения или сайта и анализирует взаимодействие разрабатываемой системы с другими программными продуктами. Функциональное тестирование показывает, насколько приложение производительно, насколько удобно пользоваться интерфейсом, устанавливать его. Эти тесты проверяют защищенность и надежность системы, ее совместимость.
  • Нефункциональным. Эти тесты исследуют характеристики приложения или сайта, которые можно измерить. Такие тесты демонстрирует «КАК», насколько хорошо работает программа.

Также тестировщики занимаются:

  • Тестированием производительности. Нагрузочные тесты показывают, справляется ли ПО со стандартной нагрузкой и помогают определить максимально возможную нагрузку на систему. Стресс-тесты изучают работу приложения или сайта при нестандартных нагрузках.
  • Регресс-тестами. Проверяют, насколько сказываются новые опции программы и откорректированные ошибки на функциональности программы.
  • Модульными тестами. Отдельная проверка модулей для нахождения тех, которые вызывают проблему.
  • Тестированием безопасности. Проверка защищенности программного продукта от вирусов, хакеров, кражи конфиденциальной информации.
  • Проверкой локализованных версий приложения. Тесты показывают, насколько корректен перевод интерфейса, выдаваемых пользователю сообщений, пояснительной документации.
  • Usability-тестированием. Тестирование удобства работы с приложением/сайтом для пользователей, его понятности и простоты. Такие исследования позволяют выявить проблемы с навигацией, основным и дополнительным функционалом.

Словом, QA специалист — это человек, который проверяет программный продукт вдоль и поперек. Тестировщик выясняет, как ПО поведет себя при ожидаемом или отличном от ожидаемого поведении пользователя. Изучает, что происходит с приложением, когда с ним работает знающий или не знающий систему человек – тестирование «белого ящика» и «черного ящика» соответственно.

Обязанности тестировщика ПО (чем занимается тестировщик?)

QA специалист занимается решением таких вопросов:

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

Квалификация QA тестировщиков бывает разной:

  • стажер Trainee;
  • новичок Junior со стажем 1-6 месяцев, знакомый с базовыми понятиями QA (тест-планами и тест-кейсами, дефектами Severity и Priority), умеющий выполнять простые операции в SQL;
  • средний уровень Middle с опытом до 3 лет, умеющий тестировать продукты самостоятельно и обучать стажеров/новичков;
  • высший уровень Senior, способный справляться с технически сложными задачами и тестировать приложения разными методами.

Обратите внимание! Senior QA engineer это человек, в совершенстве овладевший профессией, может двигаться в направлении QA team lead — QA-manager — Head of QA department и стать начальником отдела. Или чуть изменить специальность, став разработчиком или аналитиком.

Что нужно знать, чтобы стать тестировщиком QA?

QA-тестеру полагается:

  • свободно читать по-английски;
  • уметь работать с баг-трекером JIRA, Redmine, YouTrack или подобными;
  • знать язык запросов SQL, чтобы писать запросы в базы данных;
  • тому, кто собирается тестировать сайты, необходимо освоить HTML/CSS верстку, JavaScript, jQuery и HTTP, а тому, кому нравится работать с мобильными приложениями — системы Genymotion, VirtualBox и iOS Simulator;
  • владеть приемами тест-дизайна;
  • знать особенности клиент-серверного взаимодействия.

Это не все, что нужно освоить начинающему тестировщику: для успешного развития в профессии он должен обладать определенными навыками (Soft skills):

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

Важно! Перед тем, как стать QA тестировщиком и углубиться в эту специальность, желательно прочитать книгу «Тестирование дот ком» Романа Савина, Software Testing Рона Паттона и «Тестирование программного обеспечения» Сэма Канера. Эти издания — не новинки, но они помогут составить представление о профессии и сформировать некоторые важные навыки тестировщика.

Из Телеграм-каналов для новичков будут полезными QA_ru (русскоязычный чат тестеров), QA Channel (общая разноплановая информация для QA специалистов) и Серьезный тестировщик (интересные статьи и забавные гифки по теме). Украинские QA специалисты и консультанты ведут каналы automation-remarks.com, BigQueryInsights и CatOps.

Плюсы и минусы профессии тестировщика ПО

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

Плюсы

  1. Придется постоянно повышать квалификацию, и это будет интересно! IT-отрасль развивается динамично и не дает специалистам деградировать интеллектуально.
  2. Зарплата тестировщика с опытом высока и приближается к зарплате программиста.
  3. QA тестеры и инженеры — люди востребованные, и спада популярности этой профессии не наблюдается. В том числе, в периоды экономических кризисов.

Минусы

  • Работа тестировщика — рутинная. В особенности, если речь о ручном проведении тест-кейсов и написании документации. Эта работа подходит для людей с соответствующим мышлением.
  • Придется много сидеть за компьютером и отдельно заниматься поддержанием физической формы.
  • Важно научиться приходить к компромиссу с большим количеством людей, обладающих разными пожеланиями к программному продукту. Мнения программистов, заказчиков и пользователей могут не совпадать, и эти проблемы часто придется решать тестировщику.

Как стать тестировщиком QA?

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

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

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

Внимание! Чтобы устроиться на работу QA инженером или тестером, необходимо грамотно составить резюме тестировщика. В резюме необходимо внести только то образование и опыт работы, которые имеют отношение к профессии. Курсы тестировщиков — строчка, значительно повышающая уровень специалиста в глазах работодателя.

Перспективы профессии и зарплата тестировщика

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

Senior QA Engineer может стать тимлидом, менеджером проекта или руководителем отдела. Если в процессе работы он освоит новые языки программирования или займется обучением дополнительно, появляется шанс стать разработчиком мобильных/десктопных приложений или сайтов, руководителем разработчиков.

Также можно будет совмещать основную работу тестировщика с преподаванием — считается, что заниматься обучением и поддержкой новичков престижно.

По данным портала DOU, статистика зарплаты тестировщиков в Украине на декабрь 2019 такова:

В Киеве зарплаты таких специалистов — самые высокие. Так, Senior QA получит в Киеве 2700$, это +200$ если сравнивать его зарплату с Львовом и Харьковом, в то же время самая высокая зарплата в Одессе — 3000$.

Кроме того, Senior Automation QA получает приблизительно на 2000$ больше, чем зарплата Junior QA, занятые другими работами в этой области

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

Основные виды тестирования

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

Ручное (мануальное) — вид тестирования, который подходит самым усидчивым и внимательным. Проверка ПО проводится вручную, без использования программ.

Автоматизированное тестирование проводится с использованием программных средств. Тестировщик пишет отдельный код для проверки ПО.

Нагрузочное ещё называют тестированием определяющей надежности. С его помощью проверяется работоспособность ПО при длительной нагрузке.

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

Тестирование безопасности — этот вид проверки определяет, насколько ПО защищено от атак хакеров, а также выясняет, находятся ли данные пользователей в безопасности.

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

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

Уже зная все виды тестирования, ты можешь определить для себя, в какое направление углублятся и на что обращать внимание при обучении. Для самых внимательных тестировщиков без особого опыта подойдёт ручное тестирование. Чтобы заниматься автоматизированным тестированием, тебе нужно изучить языки программирования и разобраться в кухне разработки ИТ-продуктов. В обоих случаях, тебе пригодятся теоретические знания. Черпай их из полезных ресурсов.

Например, в базе QA Light ты найдёшь актуальную информацию про тестирование

Список вопросов, которые тебе зададут на собеседовании

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

Далее HR или техспециалист захочет проверить общие знания в тестировании. Ты можешь услышать вопросы: Что такое тестирование? В чём её цель? Что такое ошибка/баг? Тебе нужно ответить что-то вроде этого: «Тестирование — это не просто поиск ошибок. Это процесс, который выявляет насколько продукт соответствует предъявленным ему требованиям. Ошибка же — это не просто причина некорректной работы программы. Это несоответствие требованиям, которые предъявлены к продукту».

И, конечно, тебя проверят на полноту теоретических знаний. Подготовь ответы на вопросы: Какие виды/типы/классы/методы тестирования вы знаете? Чем они различаются? В чём суть процесса тестирования? Из каких этапов он состоит? Какие бывают виды и цели тестовой документации?

Чтобы разбираться в основных аспектах теории тестирования, обратись к книгам по профессии.

Все о QA / Как стать тестировщиком / Интервью с Senior QA Engineer

Три книги по тестированию, с которых ты можешь начать

В книге «Тестирование программного обеспечения» Сэма Канера, Джека Фолка, Енга Кека Нгуена от А до Я объяснены методы тестирования. Она содержит истории и опыт ИТ-компаний. Авторы дают советы новичкам и профессионалам. Учебник непрост в прочтении, но заменит тебе многие другие ресурсы.

«Lessons Learned in Software Testing» — более современная книга от тех же авторов. Она меньше наполнена теорией и подходит тем, кто любит учиться на чужих ошибках. Тут приведены реальные проблемы, пути их решения и полезные советы.

Из книги «Как тестируют в Google» Арбона Джейсона, Каролло Джеффа, Уиттакера Джеймса ты узнаешь про все процессы тестирования в крупной международной компании. Прочитаешь, через что проходят кандидаты на должность тестировщика, которые пробуют попасть в Google. Обещаем много юмора и иллюстраций!

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

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

***

Перепечатка материалов с сайта adukar.by возможна только с письменного разрешения редакции. info@adukar.by

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

Виды

Вот 5 основных видов тестирования и их краткие описания:

  1. Юнит-тесты – проверка работоспособности каждого отдельного блока вашего кода. Это самый понятный вид тестирования даже для начинающего пользователя, ведь здесь идёт учёт лишь тех процессов, которые исполняются исключительно внутри отдельно взятого участка кода. Например, создавая блок для ввода имени в форме регистрации, вас интересует лишь соответствие языка, отсутствие цифр и спецсимволов. Юнит-тесты часто используют TDD (Test-driven development) методологию для написания кода, где вы сначала создаёте методику проверки (собственно сам тестовый модуль) и только потом пишите исполняемый код.

  2. Интеграционное тестирование – проверка взаимодействия нескольких отдельных модулей. Это, пожалуй, наиболее тяжёлая часть тестирования просто потому, что необходимо чётко и максимально полно определить все векторы и сочетания классов в вашем коде. В частности, в той же самой форме регистрации, взаимодействие отдельных блоков минимально, поэтому создать интеграционное тестирование не так уж и сложно. Однако если рассматривать саму форму регистрации, как часть сервиса по авторизации, допустим, в игре, то интеграционное тестирование приобретает совсем иные масштабы.

  3. Приемочное тестирование – исполняемые процедуры для установления факта соответствия требованиям заказчика. Актуально в тех случаях, когда требования к коду и работающему приложению описаны заказчиком в ТЗ или в любой другой письменной форме. На основании этого создаётся либо сценарий, либо простой перебор отдельных значений, чтобы наглядно показать возможность выполнения поставленной задачи. В частном случае, это привычный нам demo-mode, демонстрирующий возможности ПО.

  4. Регрессионное тестирование – оценка работоспособности уже проверенного кода после внесения в него изменений. Актуально для динамических систем, где появление новых данных может реально повлиять на работоспособность всего кода. Логично, что для элементарного заполнения БД создавать регрессионное тестирование не имеет смысла, но для полноценного ПО в состоянии вечной доработки – вполне.

  5. Системное тестирование – это собственно конечная обкатка вашего приложения. Как правило выполняется в ручном режиме «научного тыка». Но есть и автоматизированные методы, как с простым перебором, так и алгоритмическим подходом.

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

Необходимость

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

Должен ли каждый программист владеть приёмами создания тестов? Безусловно, если он хочет достичь определённых высот, то уметь применять готовые модули (фреймворки и библиотеки) просто необходимо. Что касается создания тестов с нуля любой сложности, то это достаточно сложное и комплексное увлечение, которое вполне может стать вашей новой профессией.

Литература

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

  1. The Art of Unit Testing, Рой Ошероув;

  2. Growing Object-Oriented Software Guided by Tests, Стив Фриман;

  3. Эффективная работа с унаследованным кодом, Майкл Физерс;

  4. tестирование dot COM, Роман Савин;

  5. Тестирование программного обеспечения, Святослава Куликова;

  6. How to Break Web Software, Джеймс Уиттакер

  7. Software Testing, Рон Паттон

  8. A Practitioner’s Guide to Software Test Design, Ли Коупленд

  9. Тестирование программного обеспечения, Сэм Канер

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

Разное
0

Свежие записи

  • Я провокатор
  • Программирование музыки
  • 10 иллюзий
  • Как запомнить прочитанное?
  • Как заработать имея машину?
  • Кабачки жареные
  • Книги про компании
  • Развитие ответственности
  • Как без циркуля нарисовать круг?
  • Инфоцентр вконтакте

Архивы

  • Октябрь 2020
  • Сентябрь 2020
  • Август 2020
  • Июль 2020
  • Июнь 2020
  • Декабрь 2019
  • Ноябрь 2019
  • Октябрь 2019
  • Сентябрь 2019
  • Август 2019
  • Июль 2019
  • Июнь 2019
  • Февраль 2019
  • Январь 2019
  • Декабрь 2018
  • Ноябрь 2018
  • Октябрь 2018
  • Сентябрь 2018
  • Август 2018
  • Июль 2018
  • Июнь 2018
  • Май 2018
  • Апрель 2018
  • Март 2018
© Copyright 2020 Глазурь и кофе. All Rights Reserved. The Ultralight by Raratheme. Powered by WordPress .