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

Тестировщик ПО — кто это?

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

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

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


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


  • он должен уметь организовывать свою работу в соответствии с требованиями;
  • тестировщик должен уверенно работать с ПК;
  • не лишним будет навык работы с документацией, так как её нужно будет заполнять на основе каждого тестирования;
  • нужно уметь писать так называемые баг или дефект репорты — документы, в которых описывается ситуация, повлёкшая за собой ошибку в программе, указываются причины и ожидаемый результат;
  • также нужно уметь описывать сам процесс проверки или, по-другому, шаги, необходимые для проверки, то есть создавать тест-кейсы;
  • положительно скажется на поиске работы знание английского языка;
    Этот фактор на сегодняшний день играет важную роль во многих профессиях.
  • тестировщик желательно должен уметь работать с HTML (язык разметки документов в интернете)/CSS (язык описания внешнего вида документа), XML (также язык разметки документов наряду с HTML) и SQL (язык программирования, применяемый для управления базами данных);
  • специалист должен хотя бы на базовом уровне уметь работать с автоматизацией тестирования, с такими программами Silk Test или Rational Robot.


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


Несмотря на то, что профессия в данный момент очень актуальна, Вы не сможете найти ни один ВУЗ, где бы обучали именно на тестировщика ПО. Поэтому самое основное образование для тестировщика — это самообразование.

Хорошо, если у Вас за плечами уже есть законченный технический институт со специальностью «Прикладная математика», «Информационные технологии» или что-то подобное. Но если Вы учились в гуманитарном ВУЗе, не обязательно идти получать второе высшее техническое образование. Это займёт много времени и, принципе, не оправдано.

Научиться всем тонкостям тестирования Вы сможете самостоятельно на онлайн курсах, вот некоторые примеры:

  • «Быстрое тестирование» (Р. Калбертсон, К. Браун, Г. Коб)
  • «Тестирование программного обеспечения» (С. Канер, Д. Фолк, Е. Кек Нгуен)

Чем отличительно обучение на тестировщика программного обеспечения? Вы можете, не выходя из дома, изучить теорию, понять азы тестирования и даже приступить к практике. Всё в режиме online.

Изучив базу профессии тестировщика, Вы можете выбрать один из нескольких профилей и уже конкретно специализироваться именно на нём:

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


Итак, вот Вы выучились на тестировщика ПО. С чего же начать? Конечно, с поиска вакансий. Самое первое, что приходит в голову, это поиск работы на таких платформах как:

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

Практически в любой вакансии Вы найдёте такое требование, как опыт работы. Но что делать тестировщику ПО без опыта? Замкнутый круг: чтобы найти работу, нужен опыт; чтобы набраться опыта, нужно идти работать. Но всё-таки выход есть. Далее будут представлены несколько способов получения этого опыта.

  1. Вы можете устроиться работать бесплатно на небольшой проект. Там Вы пройдёте обучение, что очень полезно, попробуете себя в практике. Такие проекты обычно не требуют от специалиста много времени (около 1 часа в день), но дают тот необходимый опыт.
  2. Мы же сами каждый день сидим в интернет на разных сайтах. Так что же мешает протестировать эти самые сайты? Никто не говорит о нагрузочном тестировании, но функциональное и тестирование удобства пользования провести вполне можно. Тем более, если Вы часто заходите на этот сайт, тестировать его должно быть легче.
    Если Вы в ходе тестирования нашли ошибки, правильным решением будет написать об этом создателям сайта. Понятно и чётко распишите найденные проблемы, причём в начало ставьте наиболее важные, спросите у адресата, корректно ли Вы это сделали, возникли у него какие-либо вопросы или нет. Письмо пишите уважительно, критика должна быть конструктивной и направленной на сайт, а не на создателя.
    Возможно, таким образом Вы даже сможете найти себе работу!
  3. Помимо сайтов можно тестировать мобильные приложения. Опять же, берите те, которыми пользуетесь и ищите ошибки, недоработки. Конструктивный отзыв также можно отправлять разработчикам приложений. Если Вы всё опишите правильно, без наездов, то, возможно, Ваш отзыв примут во внимание и исправят некоторые недочёты.
  4. Если совсем никак не получается найти баги на своих любимых сайтах, Вы можете посетить специальные сайты для тестировщиков, находящихся в общем доступе.


Чтобы окончательно понять, начинать работать в этой сфере или нет, рассмотрим основные преимущества и недостатки профессии тестировщика программного обеспечения.

Преимущества:

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

Недостатки:

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

Тестировщики в первую очередь востребованы в крупных компаниях, занимающихся созданием и разработкой ПО (1С, например), компьютерных игр, мобильных приложений или каких-либо сайтов.
Такая работа, как тестировщик андроид-приложений, ничуть не уступает по сложности выполнения тестированию более сложных систем. Везде свои нюансы, свои требования.


Вот и подобрались мы к самому приятному. Какова же зарплата тестировщика программного обеспечения?

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

Начинающий специалист может рассчитывать на зарплату от 25 до 45 тысяч руб. Так, проработав 2-3 года и набравшись опыта, тестировщик может смело искать вакансии с заработной платой около 60 000 руб. 5 лет успешной работы вполне смогут приносить доход до 150 000 руб. в месяц. Главное — желание и готовность учиться и развиваться!

Какой вывод можно сделать? Тестировщик — очень востребованная профессия, приносящая неплохой доход. Да, тестирование как основная задача тестировщика требует необходимых навыков, но обучиться им не так сложно. Обучение пройти можно как самостоятельно на online-курсах, так и в самой компании, устроившись туда сначала на вакансию тестировщика стажёром, а потом став и основным сотрудником.

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

Название профессии образовано от английского слово “Test”, переводящееся как «проверка», «испытание» или же просто уже устоявшееся в русском языке «тестирование».

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

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

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

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

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

Возможные места работы

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

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

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

Плюсы

  • Перспективная, развивающаяся профессия с возможностью карьерного роста
  • Творческий, исследовательский характер работы
  • Получение практических знаний и навыков из мира IT
  • Широкие возможности для работы фрилансером
  • Возможность переквалифицироваться в программиста или другую смежную специальность
  • Высокая заработная плата

Минусы

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

Обязанности тестировщика

Где учиться на тестировщика

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

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

На образовательном IT-портале GeekBrains можно освоить профессию «Тестировщик ПО » всего за 4 месяца. Во время обучения предусмотрены домашние задания, общение с живыми преподавателями, контрольные и тестовые работы. После окончания обучения выдаётся именной сертификат и возможность стажировок в настоящих IT компаниях. Средняя заработная плата тестировщика по Москве и Московской области составляет 64 000р.

Также можно попробовать бесплатный курс «Основы программирования », который поможет выявить Ваши склонности к той или иной IT-специальности. Возможно Вам больше подойдёт специальность программиста или веб-разработчика.

Спешите начать обучение. Скидка на обучение профессии «Тестировщик ПО» действует для Вас всего 3 дня!

Необходимые личные качества

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

Также профессия «Тестировщик ПО» предполагает наличие терпения, целеустремлённости, усидчивости и готовности работать в команде.

Требования к тестировщику ПО

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

В любом случае при заявке на позицию тестировщика программного обеспечения человек должен хорошо обращаться с компьютером.

Знание технического английского языка, представление о языке SQL, знание баз данных типа MySQL и знание программ для автоматизированного тестирования (при необходимости использования) будут Вашими преимуществами на собеседовании.

Зарплата тестировщика

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

Тестировщик ПО - человек, который играет первоочередную роль в тестировании программного обеспечения. Профессия имеет технический уклон, она понравится абитуриентам, склонным к информатике и математике. Профессия подходит тем, кого интересует информатика (см. выбор профессии по интересу к школьным предметам).

Краткое описание

Тестировщики программного обеспечения являются одними из самых востребованных специалистов в IT-индустрии. Они оценивают программное обеспечение с точки зрения экспертов и обычных пользователей, главная цель их деятельности - выявление и устранение ошибок ПО. Иногда тестировщики формируют техническую документацию на русском или иностранном языке. В обязательном порядке они готовят отчеты, а также занимаются разработкой инструментов и сценариев, которые используются во время проведения тестирования. Условно их разделяют на 2 группы:

  • Альфа-тестировщики, которые работают с ПО, находящимся в стадии разработки;
  • Бета-тестировщики, которые специализируются на готовых версиях ПО.

Перед тестировщиками ПО открываются перспективы профессионального роста, ведь они всегда могут выбрать иную сферу, которая так или иначе связана с сегментом IT.

Особенности профессии

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

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

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

Плюсы и минусы профессии

Плюсы

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

Минусы

  1. Работа тестировщиков очень хорошо оплачивается, что влечет за собой высокую конкуренцию на рынке труда.
  2. Для выполнения заказов нужен опыт, при его отсутствии найти работу непросто.
  3. Профессиональные заболевания, характерные для всех людей, которые работают за компьютером.

Важные личные качества

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

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

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

Обучение на тестировщика ПО

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

  • «Прикладная математика и информатика» (код: 01.04.02);
  • «Информатика и вычислительная техника» (код: 09.03.01);
  • «Информационно-аналитические системы безопасности» (код: 10.05.04);
  • «Информационная безопасность» (код: 10.03.01) и иные технические направления, связанные с информатикой, математикой, защитой цифровой информации и вычислительной техникой.

Если вы решили начать свой карьерный путь с ссуза, то рассмотрите направления «Информационные системы и программирование» (код: 09.02.07), «Компьютерные сети» (код: 09.02.02) или «Прикладная информатика (по отраслям)». Начать обучение в вузе можно после 11 класса, в ссуз абитуриент может поступить, окончив 9 классов.

Международное учебное заведение, специализирующееся на компьютерном образовании. Работает с 1999 года. 42 филиала в 16 странах мира. Крупнейший авторизованный учебный центр Microsoft, Cisco, Autodesk. Студенты получают международные сертификаты и международный диплом. Главная цель - трудоустройство каждого выпускника.

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

На обучение приглашаются студенты профильных вузов (3-5 курс), практикующие тестировщики, которые хотят получить новые знания и повысить свой профессионализм. Обучение проводится в вечернее время, в группе не более 10 слушателей, длительность курса – 3 месяца. Талантливые выпускники могут получить вакансию в компании EPAM.

УЦ «Специалист» при МГТУ им. Н. Э. Баумана

На сайте учебного центра доступен большой выбор качественных программ для людей, которые решили стать тестировщиками ПО. Любой курс состоит из теоретических и практических блоков, форма обучения может быть очной или дистанционной. Длительность обучения составляет 16-64 ак. ч., минимальная стоимость – 11850 руб. и выше, что напрямую зависит от выбранного профиля.

За время своей работы в сфере тестирования, у меня сложилось своё, особое мнение об этой области, начиная с позиции младшего тестировщика (junior tester) до руководителя отдела тестирования (test manager). И, в целом, это мнение достаточно критичное с долей любви и обожания к этой замечательной профессии.

В качестве вступления

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

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

Обо всём об этом я узнал на первом своём месте в качестве тестировщика с неугасшими амбициями разработчика. В первую очередь, меня очаровала возможность получения доступа к управлению продуктом, власть, на которую я не особо рассчитывал. Это было здорово, что-то особенное, выше написания очередной функциональности. Во-вторых, тестировщики в силу особенностей профессии имеют большее представление о процессах и целях продукта, отчасти транслируют бизнес цели разработчикам, а результат разработчиков -руководителям. К сожалению, в мире и, тем более, в России, представление о роли тестировщика весьма сумбурное, и её значение сильно преуменьшается. А те компании, которые всё-таки находятся в тренде, стараются развить направления тестирования и управления качеством, хотя и ставят несколько завышенные цели: «найти все ошибки, снизить до минимума стоимость разработки через тестирование».

Эта статья, в первую очередь написана по мотивам общения с различными компаниями, является квинтэссенцией ответов на их вопросы. Во-вторых, обращена к начинающим тестировщикам и тем людям, которые хотят узнать о тестировании побольше с точки зрения внутренней кухни. В- третьих, базируется исключительно на моём (субъективном) опыте.

Тезис №1: Тестировщик - не обезьяна

В Android SDK входит замечательный инструмент под названием MonkeyRunner, который позволяет автоматизировать процесс тестирования Android приложений в идеале без исходного кода, без особых знаний языков программирования (лишь общего представления о скриптовых языках достаточно) и, главное - имитировать любое поведение настоящего пользователя. В итоге получается эдакая скриптовая обезьяна, которая тыкает, печатает, читает приложение. Самое то, что можно «отдать на аутсорс» машине. Для меня такое понимание тестирования в порядке вещей. Но, к моему удивлению, когда я искал работу в первый раз после своей первой должности в роли тестировщика, выяснилось, что на рынке существуют (и по сей день!) странное разделение на «ручных» и «автоматических» тестировщиков, более того, лестница грейдов и вовсе столь смешана и растянута, что диву даёшься. Не говоря уже о том, что от компании к компании одни и те же должности подразумевают разные должностные обязанности, особенно это актуально для старших должностей.

В мои должностные обязанности входило: составление тест-дизайна, тест-кейсов, стратегии тестирования (если это был назначенный на меня проект), репорт багов, проверка документации и создание тестовой документации. Это было само собой разумеющимся для меня, хотя несколько удивляло, что у западных коллег эти обязанности были разделены. На рынке же оказалось, что вполне обычным явлением считается, что дизайн пишется с помощью CTE/UML (в лучшем случае) Test Lead/Senior Tester/Test Designer. Тест кейсы (разнообразные стратегии проверки границ, интерфейсное тестирование, нагрузочное, стендовые кейсы) - Senior Tester’ы. И, наконец, существуют низшие должности «исполнителей» - Tester. В некоторых компаниях и отделах их число может доходить до 20 и более человек! Другими словами, в штате проекта числились обезьяны, в лучшем случае, обладающие навыками пользователя компьютером и каким-то продуктом.

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


Затраты на автоматизацию тестирования окупаются далеко не сразу.

Для знакомых с теорией тестирования (коих, как показывает практика, не так уж и много), вполне очевидно, что необходимость автоматизации сильно зависит от специфики проекта (его сроков, поддержки, повторяемости, и пр.). В некоторых случаях куда предпочтительнее обойтись smoke тестами и пользовательским бета-тестированием и выполнять приёмку через product owner"a, чем усложнять процессы. Так же должно быть чёткое понимание приёмки продукта: верхнеуровневая и низкоуровневая. В первом случае, внутри проекта, можно определить роли и принять продукт владельцу продукта, во втором возможно ограничиться, если допускают это требования, приёмкой самими инженерами-разработчиками с выпуском release notes. В случае, когда тестирование требуется всё-таки отдельное, то куда проще и эффективнее иметь поставленный менеджментом процесс жизненного цикла продукта и человека или команду инженеров, способных самостоятельно покрыть задачи развёртывания и тестирования продукта, т. е. людей, которые априори знают область, инструменты и методы, а не стадо обезьян, которых повесили на разработчиков или одного руководителя проекта.

Ремарка №1

Как ни удивительно, но этот простой тезис зачастую сознательно нарушается. Например, для аутсорсинговых компаний это хороший способ получить дополнительные FTE. В плане бизнеса попросту выгоднее продать побольше, что-то, имеющее низкую себестоимость. В опыте моей работы на Auriga, где заказчикам предоставлялись на почасовую оплату соответствующие ресурсы в количестве десятков человек - не единичный случай. Более того, такой план хорошо покрывает цели стаффирования проекта для клиента при минимальных затратах. Несмотря на то, что нагрузка на менеджера проектов значительно возрастает, при грамотном руководстве это пусть к созданию «кузницы кадров» за счёт проекта, привязки кадров к компании (обучение и рост навыка) при сравнительно большей цене покупке специалиста с рынка, и последующая перепродажа, ротация персонала на более требовательные проекты.

Ещё одной причиной такой стратегии является возможность покупки нецелевых кадров для клиента. Так уж получается, что требования к кадрам ваших работодателей или клиентов иногда бывают недальновидны (о чём речь пойдёт ниже), и меньшими затратами для компании (по деньгам и времени) является возможность покупки фиктивных кадров. Скажем, покупка такого рода «обезьян» на проект с параметром «20 лет стажа» (но, возможно будучи весьма посредственным специалистом). Это особо актуально в системе грейдов Junior/Standard/Senior многих компаний, особенно за пределами России, где требования к стажу и реалии немного иные.

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

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

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

Тезис №2: Тестировщик - это инженерная профессия

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

На мой взгляд, любой тестировщик должен обладать техническими знаниями, уверенным владением и хотя бы базовыми навыками администрирования прикладных программ и популярных ОС. Кроме того, тестировщик должен иметь хотя бы базовое представление о языках программирования, уметь читать код хотя бы на интуитивном уровне, а также быстро адаптироваться к новым языкам и программам/средам. Вообще, главные особенности тестировщика - это гибкость и обучаемость. Поэтому, имея опыт в программировании и общее представление о скриптовых языках и языках высокого уровня, человек сможет обучиться и адаптироваться без особых проблем. В идеале требуется знание скриптового языка и основ языка разработки, на котором и базируется проект.

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

Несмотря на то, что я в подавляющем большинстве случаев слышу мнение, что процесс ревью кода, отладки (дебаггинг) и юнит-тестирования - прерогатива исключительно разработчиков, возьму на себя смелость утверждать, что это неправильный подход. Проблема исходит из недостаточной квалификации тестировщиков и неверного управления жизненным циклом ПО. Возможно, этот подход хорошо работает в маленьких проектах по TDD, но главная сила и возможность обеспечить высокое качество продукта - разбить сферы влияния, ответственности, обеспечить принцип раздельности (dissimilarity).Это сделает процесс разработки более прозрачным, отслеживаемым и позволит скомпенсировать «эффект замыленности глаза» у разработчиков, избежать «трюков» с их стороны.

Ремарка №2

В компании Liebherr Aerospace жёстко выстроены процессы и роли в компании. Чёткое следование специфичным для отрасли итеративным моделям. Тем не менее, инженерное крыло, инженерные должности называются для всех одинаково - Software Engineer. Акцент делается на том, что сотрудник в компании в первую очередь - специалист, инженер в области ПО. Значит, сотрудник должен разбираться в инженерных процессах, процессе разработки, тестирования, схемотехники и т.д. Тем не менее, среди инженеров присутствует обязательное разделение на специализацию: in Test, in Development, in Requirements, и пр.

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

То, что каждый из этапов и типов разработки и тестирования должен покрывать разные люди следует из требований международных стандартов, таких как DO-178B (для авиации), EN 50128 (для железнодорожного транспорта) или ГОСТ Р МЭК 60880 (для атомных электростанций), и обеспечивает, в конечном итоге высочайшую отказоустойчивость на уровне процессов и в том числе в части тестирования ПО.

Тезис №3: Метрики - ерунда, если нет работы в команде

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

На практике это означает, что бесполезно считать количество разработанных тестов (это метрика прогресса), найденных багов (в худшем случае) показателем эффективности команды тестирования, даже рейт регрессий, даже синтетических метрик на проекте (с использованием критериев важности и трудоймкости), не говоря уж о идиотских (но по-прежнему применяемых и для команды тестирования KSLOC\hour). Для менеджера проекта, возможно, будет неплохой метрикой CPI/SPI как KPI проекта, которая может базироваться на всех обозначенных и собранных тест-менеджером метриках. То есть, достаточно абстрактная и высокоуровневая оценка в зависимости от затраченных усилий и полученного результата. Но при условии, что команды работают как единый организм.

Для тестировщиков это означает, что они связующее, ведущее колесо процесса, которое сделает программное обеспечение работоспособным и соответствующим требованиям. В процессе тестирования это означает как само тестирование, так и предоставление теста повторяемости, документируемости, возможных проблем и решений проблемы (если это видно со стороны тестирования, если хватает квалификации), а так же перепроверку тестирования (VoV). Другими словами, задачей тестирования является как перепрогон и перепроверка всех возможных состояний, так и (в необходимом и достаточном случае) покрытие полной тест-стратегии и тест-плана (по крайней мере то, что обозначено в Quality Gates), вынесение багов и их разрешение через разработчиков ПО и спецификации. Т. е., с момента проверки и обнаружения бага ответственность на нём не «перекидывается» на разработчика, а сопровождается тестировщиком до его разрешения. Грубо говоря, тестировщик отвечает за баги, а разработчик - за фичи.

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

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

Ремарка №3

Несмотря на то, что описанная мною модель говорит о единстве и взаимосвязанности всех этапов процессов, сегодня тестировщиков правильнее классифицировать всё-таки на разработчиков самих тестов (акцентирующих силы и знания на методологии тестирования) и devops инженеров, обслуживающих инфраструктуру. Сегрегация функций имеет свои плюсы при достаточно большом размере проекта и хорошем финансировании, когда развитие, поддержку и тестирование инфраструктуры можно разнести между инженерами, в идеале - между экспертами-специалистами. Важным моментом является то, что тест-инженер всё-таки в первую очередь инженер, разработчик в тестировании, способный использовать различные инструменты для разрешения поставленной задачи. И только во вторую очередь - эксперт в какой-то определённом инструменте и программе. Знатоков инструментария, возможностей фреймворков правильнее классифицировать как отдельных инженеров, инженеров-инструменталистов (tool engineer).

Тезис №4: Тестировщик - центр процесса разработки ПО


В V-модели разработки ПО наглядно видно, что тестировщик участвует на всех этапах жизненного цикла.

Схожесть разработчика и тестировщика, размазанность границ области при наличии хорошей квалификации - главный показатель интереса в работе тестировщика. Конечно, можно утверждать, что причастность к продукту и его качеству в случае тестирования чёрного ящика является мотивационным фактором, но, на мой взгляд, человек, пришедший в техническую, инженерную область сделал это осознанно, с желанием развиваться и работать над собой. Поэтому возможность расширять свой кругозор, влиять на качество продукта, (пусть даже небольших вещей), проявлять активность, а также накладывать вето на выпуск продукта у тестировщика, по моему мнению, более весомые аргументы за профессию. А раз так, раз хороший тестировщик - не обезьяна, а инженер-исследователь, знаток, принимающий участие на почти на всех этапах жизненного цикла по (в отличие от ролей аналитиков, дизайнеров, разработчиков, и технических писателей), ответственный за качество продукта (не процесса, это к QA, так что под «качеством продукта» будем подразумевать соответствие заявленным и утверждённым требованиям и стандартам, чеклистам и прочая), то для поднятия качества продукта и развития себя, как специалиста, тест-инженер должен проявлять активную позицию. Он знает, как улучшить продукт. Знает, что такое «достаточно хорош», и как его, продукт или процесс, таким сделать, инициировать движение как инженера-разработчика, так и других команд и даже компаний. Например, в любых проектах бывают моменты простоя, который может быть допустим со стороны руководства. Обычно в это время сотрудники решают личные проблемы или занимаются самообразованием. В отношении работы разработчик может заняться рефакторингом, поизучать алгоритмы и перенести на свои проекты. А что делать тестировщику? Осваивать новые средства тестирования? Он-то ничего не делает без изначального пакета от разработчиков/аналитиков. В действительности, он может заняться автоматизацией своей деятельности или улучшением продуктов, им используемых, даже если он далёк от инфраструктуры и devops.

Ремарка №3

В Liebherr Aerospace жёсткий процесс резко ограничивал использование любых инструментов и жёстко формализовал процесс разработки и тестирования, т. е. простора для автоматизации оставалось не так много - даже вмешательство в багтрекер было запрещено. Тем не менее, такой процесс, как подготовка документации, был в такие периоды автоматизирован, пусть и с использованием не находящегося под запретом VBA для MS Office. А для процесса код ревью можно было улучшить статические анализаторы кода. Они не совсем удовлетворяли стандартам на проекте и порождали лишние сообщения, которые не фильтровались даже элементарным grep. Тем не менее, чтобы уменьшить время на ручное ревью кода, в рамках простоя мы работали на перспективу, улучшая сторонний продукт, такой как статический анализатор, подготавливая набор кейсов для него для имплементации нужных нам проверок.

Тезис №5: Тестирование - не место для фиксации на ключевых словах

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

В одном из крупных инвестиционных банков, в котором у меня проходило собеседование, было схожее требование на позицию тест-менеджера: «повысить качество и уменьшить брак». Любую задачу можно решить. Хотя под покровом задач скрывается координация отделов по ряду различных продуктов, составление планов тестирования, организация тестирования, работа с разработчиками, составление базы кейсов и прочая. В действительности, ответственность за качество продуктов в компании логично взять на себя какому-нибудь «директору по качеству», оно же QA Director, а не просто руководителю отдела тестирования. Однако тут дело упирается в полномочия, которых на этой позиции нет, и в отсутствие группы, которая не планировалась вовсе (которая могла бы помочь тому-тому тому-то). То есть в компанию нужен человек-оркестр без команды. Разгадка тут простая: менеджмент ищет по ключевым словам, и считая качество в аббревиатуре QA панацеей от всех проблем, хотя она лежит в сфере стратегического топ-менеджмента и процессов, которые нужно спускать сверху с соответсвующими полномочиями и ресурсами.


В идеале управление качеством (QA) и тестирование две .

Проблема системная, т. к. весьма неплохо, когда HR ищут по ключевым словам вроде «нагрузочное тестирование», «функциональное». Но когда в процессе рассмотрения делается акцент не на навыки тестирования, не на активность и гибкость кандидата, а на конкретный инструмент - это уже проблема, особенно когда никакого тестирования нет в помине (есть обезьянничество), и не факт, что требуемый инструмент эффективнее того, который знает соискатель. Проблема в том, что знание мелкого нюанса или инструмента, на освоение которого уйдёт несколько часов, ставится во главе угла, выше знания языков программирования или теории. В одном из интервью было достаточно смешно было отвечать на вопросы: «назовите какую-нибудь книгу по тестированию» и, ответив про Сэма Канера, услышать: «мы такого не знаем, а про жизненный цикл бага что-нибудь читали?». Это было бы смешно, если бы не было так грустно. Грустно, когда HR сообщает об отказе из-за отсутствия опыта у кандидата, хотя дело к неправильном расставлении акцентов.

Найти хорошего тестировщика - большая проблема, т. к. инженер-тестировщик - это, в идеале, человек, который разрешает технические проблемы, связанные с разработкой ПО, эдакий problem solver. Такому человеку, помимо технических навыков очень важно иметь внимательность, пытливый ум, быть активным и уметь донести мысль и отстоять свою точку зрения на любом уровне.В каком-то роде, тестировщики - это исследователи из мира разработки ПО. Поэтому в руках инженера-тестировщика легко узнаваемый символ - лупа (линза), наблюдающая за жучками. Как нельзя лучше характеризует она работу тестировщика: используется как по прямому назначению для выявления дефектов, так и для «прожигания дырочек», с её помощью можно добывать огонь и даже, имея целую систему линз, наблюдать за звёздами. Главное - уметь это делать.

Ремарка №5

В компании Intel главенствует подход, в котором инструменты выбираются из предпочтений сотрудников на проекте. Это означает, что, в целом, неважно, какой инструмент и язык выбрать для решения задачи, главное - её решить. Сосуществование трёх разных тест инженеров, пишущих на трёх разных языках вполне допустимо, если проблема решается, решается эффективно и накладные расходы на поддержку разумны, а процесс документируется. Кроме того, многие используемые инструменты являются бесплатными, open-source или собственной разработки. На сегодняшний день существует огромное количество инструментов, с помощью которых возможно решать разнообразные задачи, и выбор инструментов не должен ограничивать возможности инженера. Однако, если для задачи действительно требуется использовать какой-то инструмент, отличный от свободно доступного, то при наличии чёткого понимания и обоснования, можно купить и использовать его. Это опять-таки соответствует целям бизнеса - не забивать гвозди микроскопом, не работать эффективно, выжимая максимум из инструментов, если квалификация инженеров позволяет обойтись «малыми потерями». Хорошей альтернативой является также участие в открытых проектах и инвестиции в них для последующего использования для собственных нужд. Такой подход убивает двух зайцев (свои нужды) и задачи и создаёт инструменты для всего общества в свободном использовании.

Вместо выводов

Тестировщик - это больше, чем профессия. Это образ проактивной жизни и стремления эту жизнь сделать лучше для всех посильными и эффективными средствами. Цели тестировщика в отношении продукта наиболее близки к целям бизнеса и стратегической цели компании в отношении этого продукта, и в то же время глубоки внутри компании в роли исследователя. А раз так, то главные его качества - это энергия, знания и гибкость. Но в тоже время работа тестировщика – это не всеобщее знание и ответственность за качество продукта и качество услуг. У тестирования есть границы: с одной стороны ограниченные проектом и требованиями в нём (менеджмент проекта и установленный жизненный цикл программы), и с другой – процессами, за которые отвечает QA. Но о различия QA от тестирования совсем другой разговор.

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

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

Каковы главные человеческие качества тестировщика

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

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

Мы собрали перечень ключевых навыков и умений тестировщиков ПО. Итак, тестировщик должен:

  • владеть английским на уровне чтения;
  • обладать терпением, внимательностью и способностью смотреть на одно и то же с разных точек зрения. Это самое важное;
  • знать, что такое юзер-стори , чек-лист и тест-кейс , уметь правильно их составить;
  • понимать, какие виды и типы тестирования бывают и когда надо их применять. Поможет разобраться: «Тестирование программного обеспечения — основные понятия и определения» ;
  • знать, как пользоваться баг-трекером. В это YouTrack , но если научился пользоваться одним — считай, что научился пользоваться всеми;
  • владеть техниками тест-дизайна, как минимум анализом классов эквивалентности и граничных значений и диаграммами переходов состояний ;
  • иметь общее представление о гайдлайнах iOS и Android ;
  • быть опытным пользователем как минимум одной из ОС;
  • понимать принципы клиент-серверного взаимодействия ;
  • тестировщик ПО должен уметь разобраться с продуктом при отсутствии документации;
  • работать с IDE (Xcode /Android Studio);
  • снифферить и модифицировать трафик через Fiddler /Charles ;
  • конструировать запросы в Postman ;
  • знать, для чего нужен browserstack ;
  • создавать эмуляторы в Genymotion, Android Studio, Xcode;
  • иметь или развивать чувство прекрасного. Тут может помочь бюро Горбунова ;
  • понимать, что такое кроссплатформенные приложения и чем они отличаются от нативных. Поможет разобраться: ;
  • работать с виртуальным окружением VirtualBox и Vagrant ;
  • понимать принцип работы и знать основные команды Git. Поможет разобраться: «Основы Git» ;
  • уметь пользоваться инструментом для разработки тестовых сценариев Selenium IDE ;
  • понимать как работает инструмент нагрузочного тестирования Yandex Tank и уметь его настроить.

Приятный плюс, если вы:

  • обладаете навыками автоматизации при помощи Appium , Katalon studio ;
  • имеете глубокие знания Selenium WebDriver ;
  • умеете организовать нагрузочное тестирование при помощи Apache jMeter ;
  • знаете, как провести тестирование безопасности для мобильного или веб-приложения.

C чего может начать новичок

Разберёмся, как стать тестестировщиком программного обеспечения с нуля и что требуется знать начинающему тестестировщику. Перечень книг и полезные статьи, которые стоит почитать:

  • «Тестирование дот ком» Романа Савина. Книга не новая, но даст базовые представления о специализации;
  • Tap into mobile application testing , Jonathan Kohl. Книга о специфике тестирования мобильных приложений;
  • гайдлайны