QA специалисты - сходство и различия с морскими свинками

Тора гой дневничок, в этот вечер субботы, когда принято держаться подальше от торфяных болот - на дивном эмигрантском форуме попалась на глаза школа Портнова, которая тренирует этих самых QA. Пробежавшись взглядом по списку курсов и засмотрев пару лекций - волосы на жопе натурально зашевелились и приподняли меня над диваном. Все это дичайше напомнило приснопамятную Компьютерную Академию Шаг, не к ночи буде помянута.

В связи с этим хотелось бы высказать несколько соображений на тему, кто такие QA и зачем они вообще нужны.

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

Но как известно, не так уж и просто устроиться программистом, поэтому рассматриваются варианты пойти работать в HR (он же рекрутинг, как это понимается почти всеми) или же устроиться тестировщиком программного обеспечения, они же QA.

Итак, что же такое “QA для домохозяек? На самом деле, как рассказывают во всех этих онлайновых школах и книжках “Стань супер QA з 21 день” - никаких особых требований к абитуриенту не предусмотрено. Нужно уметь включать компьютер, запускать Word и Excel, и разобраться с Bug Tracking Databases (штоа?). Ну и дальше будут конечно же разнообразные Interview Cracking Guide и беллетристика такого же уровня, которую принято зазубривать без понимания предмета.

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

Что же такое QA с моей, не претендующей на оригинальность, точки зрения?

QA - это технически грамотный человек, который разбирается в предметной области не хуже, чем средний программист в команде (а то и лучше него). Техническая грамотность в данном случае - это владение всем набором методологий тестирования, которое придумано “на сейчас”, в частности

Эти три вещи не подразумевают каких-то особых навыков в программировании - есть достаточное количество штуковин, которые умеют записывать разнообразные сценарии. Здесь главное - уметь мыслить абстрактно и алгоритмически.

Почему упор сделан на технически? Да потому что умение четко формализовать задачу, очертить граничные условия, применить системный подход - это не для всех. Не каждая домохозяйка может рассказать, как бы она тестировала входную очередь для потока банковских проводок. Или же как оценивать качество рендеринга видео в MP4 из плеера на JS кроме как “на глаз”.

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

  • обладать знаниями в предметной области.
  • или обладать умениями в дисциплине анализа требований и выяснения недостающих деталей.

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

Вообще говоря наилучшие из всех QA, которых я видел (увы, мало) - это люди с хорошим бекграундом в программировании, которым по каким-то причинам программировать стало менее интересно, чем проверять системы на дуракоустойчивость. Я подозреваю, что все дело здесь в отчуждении своего труда - если ты долго и упорно занимался своим любимым модулем, то какие-то проблемы в нем уже просто не видно. И тесты на них не пишутся, и вообще ломать любимое детище - это надо иметь особое состояние души (практически издевательство над ребенком же!). В то же время человек со стороны может попробовать совершенно нецелевое использование чужого модуля, и найти там феерических проблем вот просто через 5 минут работы.

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

Из чего следует, что

  • в QA, как и в HR, процентное содержание совершенно случайных и странных людей в целом выше, чем среди программистов
  • роль QA на проекте как правило, недооценена - в силу чего работать QA просто не престижно.
  • развитий для QA не предусмотрено в чуть менее чем всех случаях - тренинги? курсы? не, не слышал
  • зряплата QA и программиста отличается в 30-100%, потому программисты, которые могли бы быть клевыми QA - ими попросту не будут

Резюмируя

Quality Assurance - это своего рода искусство поддержания и сопровождения проекта на всех этапах развития. Все те косяки, которые регулярно наблюдаются в разном софте - не в последнюю очередь дошли до пользователя потому, что выпускник онлайн-курсов как-то просочился через фильтры HR-отдела, составленного из специалистов примерно того же уровня, что и сам wannabe-QA - и просто проклацал мышкой там, где требовалось бы применить голову.

Не экономьте на QA.