что лучше тестировщик или программист
Война миров: программисты vs. тестировщики!
Эти вечные сомнительные доводы «это не баг, это фича» или «если это и баг, то незначительный, пусть остается».
Да как же остается, если система колом встает!?
То им это не нравится, то тут не работает! Да нафига было вообще в этом окне контекстное меню вызывать и вставлять нечитабельные символы!? Как они вообще до этого додумались!? Бред же, в боевом режиме так ни один пользователь не сделает!
Не буду править, пусть остается!
В общем, классика – вражда программистов и тестировщиков.
А потом я стал менеджером. И понял, что вражда эта губительна для общего дела. К счастью, я хорошо помнил себя и программистом и тестировщиком, что и помогло мне осознать истинную суть проблемы и изменить ситуацию.
Процесс
В те времена у нас был очень простой и понятный процесс разработки:
Но ведь у этого процесса есть вполне конкретная конечная цель – выпускать качественное ПО с нужным функционалом в срок.
Собственно, в этот момент и начинаются проблемы.
Проблемы
Однажды приходит менеджер и начинает напоминать о конечной цели.
Менеджер приходит к программистам и спрашивает «когда?», а они отвечают «не знаем, мы все сделали, спроси у тестировщиков».
Менеджер идет к тестировщикам с тем же вопросом «когда?», а они ему отвечают «разработка только утром выдала сборку, мы только приступили к тестированию, и точно будет возврат – тут багов уже много вылезло, поэтому мы не знаем когда будет выпуск – спроси у программистов».
И менеджер начинает ходить по кругу туда-сюда, а релиза все нет и нет.
В итоге, терпение менеджера кончается, он собирает программистов и тестировщиков вместе и пытается как-то решить вопрос. Собственно, все решения сводятся к выработке правил взаимодействия между программистами и тестировщиками. И все дальнейшие усилия менеджера направлены на контроль за соблюдением этих правил.
Например, как только менеджер расслаблялся – почти сразу все договоренности между программистами и тестировщиками забывались, и все возвращалось к исходному состоянию.
Более того, взаимоотношения между программистами и тестировщиками не улучшались – как была вражда, так она и осталась.
Осознание
Прошло ещё немало дней и ночей, когда я много думал о причинах происходящего, о поведении людей, об их эмоциях, потребностях и мотивах.
А потом вдруг всё стало ясно!
Да ведь сама структура такого подхода, когда «одни программируют – другие тестируют» порождает конфликт между программистами и тестировщиками.
И вся суть этого конфликта в том, что У НИХ РАЗНЫЕ ЦЕЛИ!
У тестировщиков цель «протестировать».
У разработчиков цель «разработать», т.е. «передать в тестирование».
А цель «выпустить релиз» только у менеджера. И только пока он прикладывает к этому усилия – она достигается.
А когда у людей разные цели – им не по пути, они не интересны друг другу. Как их не притягивай, они все равно будут идти своей дорогой, в разные стороны.
Решение
Собственно, решение проблемы и заключается в том, чтобы поставить и перед программистами и перед тестировщиками одну общую цель.
Причем цель очевидную – выпуск качественного релиза в срок.
Ведь не достигая эту цель, локальные цели «разработать» и «протестировать» теряют всякий смысл.
Это как то знаменитое высказывание, что для кого-то деньги – это цель, а для кого-то средство.
Т.е. программирование и тестирование – это средства, пусть и приятные – это даже хорошо, но все же средства. А цель – это релиз.
Ясно, что изменить цели оказалось делом не простым. Но поскольку я полностью проникся логикой своих мыслей – то был готов сломить любое сопротивление изменениям!
Тестировщик vs разработчик
Сегодня я бы хотел затронуть тему процесса разработки программного обеспечения. Если точнее, эта статья о том «Как не превратить офис в поле битвы тестировщиков и разработчиков».
Полгода назад я погрузился в тестирование ПО, мне было интересно и я понял, что это действительно моё. Часами залипал на форумах тестировщиков, читал литературу и изучал процесс разработки ПО. На форумах, в группах и беседах я частенько замечал приколы про взаимодействие тестировщиков и разработчиков, но я не понимал этих шуток и не обращал на это внимание. По крайней мере, пока не попал на стажировку в одну компанию по разработке ПО.
Через пару месяцев я начал догонять смысл этих приколов и активных обсуждений «Tester vs Developer». Так как я был первым тестировщиком в этой компании, освоиться было сложно. Задачам с пустым описанием, но с названиями «протестируй и отпишись», «проверь сайт», «не работает приложение» не было конца, а разработчики и проджект менеджер вообще не знали понятие QA. Всем знакома эта фраза «Без ТЗ – результат ХЗ», так вот там было тоже самое. Плюс ко всему этому, никого не волновало то, что продукт мягко говоря «кривоват». В большинство случаев было так: ты получаешь задание «протестируй» — тестируешь, делаешь отчет о найденных дефектах и передаешь их разработчику, ну а у разработчика эта задача могла висеть месяцами. В итоге шеф посчитал, что тестировщик в штате лишний и для меня этот кошмар закончился, ну а продукт так и остался «кривым».
Бывают разные споры, разногласия, но мне кажется, что уже давно пора придумать какой-нибудь простой подход, чтобы избежать подобных случаев.
Скриншот из беседы тестировщиков ПО:
Найти дефект — задокументировать — передать разработчику для исправления. Но опять-таки, вроде бы всё просто, если бы не реакция разработчика на свои ошибки. Наверное он просто забыл о том, что задача тестировщика это поиск ошибок и сбоев в функционировании объекта. В итоге мы как дружное сообщество начали давать разные советы бедной даме. Многие предлагали решать вопрос через тимлида, а некоторые даже предлагали набить лицо за такое отношение. Ну а я предложил свой вариант, но многим он показался странным.
Через некоторое время я попал на один интересный проект, в котором проджект менеджер был мостом между тестировщиком и разработчиками. Я не знаю, насколько эта концепция эффективна, но мы за всё время ни разу не поругались. Как баг трекинговую систему мы использовали Trello. Эта система удобна тем, что она вся построена на основе доски и все, что в ней есть, находится на одном экране: и задачи, и история изменений, и любые комментарии. Но это же и главный минус программы. Она слишком простая и не предназначена для больших команд.
От проджект менеджера прилетала задача, во время тестирования каждый баг оформлялся в отдельную карточку и прикреплялся в блок «Баги» с меткой «Недочёт» и с подробным описанием. Затем проджект менеджер задавал приоритет карточке и закидывал одному из разработчиков. Иногда такое бывает, что сроки горят и до встречи с заказчиком нужно проверить самые важные моменты. В таком случае проджект менеджер задавал высокий приоритет багам связанных с бизнес логикой, а баги связанные с UI откладывались на потом. У многих возникнет вопрос » Кто тогда будет отвечать за упущенные баги в прод? «, к сожалению мы сам не в курсе.
Самое важное в таком процессе, это то, что тестировщик не взаимодействует с командой разработчиков, следовательно, нет криков, ссор и споров:
Если в вашей команде адекватный project manager или product owner, попробуйте протестировать такой подход. Я думаю, что многим понравится.
Конечно же, есть компании, в которых отношение разработчиков и тестировщиков идеальное. Например, в которых за упущенные баги в продакшн и жалобы пользователей отвечает разработчик. В таком случае разработчик сам будет заинтересован в хороших отношениях с тестировщиком. Но опять-таки возникает вопрос » А сколько компании работают по по такому принципу? «
Программист или тестировщик: что лучше выбрать?
Многие люди, желающие сделать карьеру в ИТ, выбирают между этими профессиями. Мы решили их сравнить и объяснить, кому больше подойдет разработка, а кому – тестирование. И с чего начать в каждом случае. В статье собрано много полезной информации, обязательно прочитайте ее до конца.
Содержание статьи:
Кем проще стать, программистом или тестировщиком?
Чтобы ответить на вопрос, сравним обе профессии по основным критериям, которые могут повлиять на выбор:
Чем нужно заниматься
Писать код. Создавать программы, приложения, скрипты для сайтов.
Проверять работу программ, приложений, сайтов. Выявлять и описывать ошибки (баги).
Выше. Требуется решать нестандартные задачи.
Работа по четким инструкциям и алгоритмам.
У новичков на 20-30% выше, чем в тестировании. Быстро растет по мере накопления опыта.
Ниже, чем у программистов. Со временем разрыв по деньгам может увеличиваться.
Сколько времени требуется на обучение
От 1 года и больше.
От 6 месяцев, при этом можно найти курсы со стажировками.
Людям с логическим складом ума, усидчивым, способным придумывать новое, находить нестандартные решения.
Спокойным и размеренным людям, усидчивым, способным работать по инструкциям, не устающим от стандартных задач.
Что в итоге выбрать, профессию тестировщика или программиста?
По общему мнению, освоить профессию тестировщика можно быстрее и проще. Многие люди, которые хотят работать в ИТ, но не желают учиться программировать, идут в тестирование. Эта работа востребована. Получить необходимые знания и навыки можно за полгода.
Есть курсы, которые проводятся совместно с работодателями и лучших выпускников приглашают на собеседования. Например, такая программа сделана в Нетологии. Она идет совместно с Альфа-Банком, который приглашает выпускников к себе.
Стать востребованным разработчиком сложнее. На это может уйти и год, и два, и три. Требуется освоить больший объем знаний и навыков, а также иметь способности для занятия программированием.
Кому больше платят? Сравниваем зарплаты
Тестировщики обычно получают до 80 тыс. рублей в месяц. Исключение – QA Lead, то есть руководитель отдела тестирования. Его доход может превышать 200 тыс. рублей в месяц.
Хороший разработчик может зарабатывать от 100-120 до 150-200 тыс. рублей в месяц в зависимости от языков и технологий, которыми он владеет. Доходы мобильных разработчиков могут превышать 200 тыс. рублей в месяц.
Для примера приведем данные по зарплатам у разных специалистов. Первая цифра – это зарплата новичка, вторая – специалиста с большим опытом:
Средняя зарплата на рынке, руб.
Как видите, на старте зарплаты в тестировании и программировании могут отличаться несильно. По мере роста опыта и квалификации доходы разработчиков становятся больше. Но и требований к ним предъявляется тоже много.
В какой профессии легче найти работу?
Говоря о том, что выбрать – стать программистом или тестировщиком – нельзя обойти вопрос поиска работы. Легче его решить тестировщику. Многие идут в программирование, так как там меньше рутины и выше зарплаты. Поэтому в отделы тестирования, особенно в небольших компаниях, часто готовы брать новичков без опыта. Сами научат и покажут, что делать. Платят там обычно немного, зато помогают набраться опыта.
Другие компании сотрудничают с курсами, где учат тестировщиков, и лучших выпускников берут к себе. Например, такая программа есть в Нетологии. Она проводится совместно с Альфа-Банком, который заинтересован в новых сотрудниках.
Программистом стать сложнее, но и тут есть свои лайфхаки. Часто толковых тестировщиков, которые освоили языки программирования, переводят в разработчики. Не имя опыта, можно вначале устроиться в отдел тестирования, а затем перейти в разработку в рамках карьерного роста внутри одной компании.
Что выбрать: стать тестировщиком или программистом?
Ответ на этот вопрос зависит от ваших задач, интересов и желаний:
Кому лучше стать тестировщиком?
Кому лучше выбрать программирование?
С чего начать и где учиться?
Можно пройти онлайн-курсы, на которых освоить теорию, получить практику и подготовиться к поиску работы. В таблице собраны примеры программ, которые подходят новичкам:
Название курса и ссылка на него
Курс в Нетологии, выпускники которого могут получить приглашение на собеседование в Альфа-Банк. Обучение включает вебинары, лекции и практику. Выдают диплом о профессиональной переподготовке.
Подойдет людям, которые хотят заниматься разработкой сайтов и интернет-сервисов. Включает много практики, что является плюсом. Лучших выпускников приглашают на стажировку в Affinage.
Эта программа ведется совместно с Альфа-Банком. Лучшие выпускники могут получить работу. Программисты на Java востребованы и хорошо зарабатывают. На этом языке пишут приложения, сайты, игры и многое другое.
Курс в университете Skillbox. Подойдет людям, которые хотят заниматься разработкой мобильных приложений на Android и iOS. Для прохождения курса потребуется MacBook.
В области программирования есть и другие специализации. Выбрать подходящую профессию в ИТ можно в нашем каталоге. Там собрана подробная информация по каждому направлению, с чего начать тестировщику или программисту, советы для новичков.
На нашем сайте также есть другие полезные материалы:
Мы рассказали о профессиях программиста и тестировщика и что выбрать в зависимости от ваших желаний и задач. Сейчас ИТ на подъеме и специалисты востребованы. В одной сфере легче найти работу, в другой можно больше заработать.
В программисты или в тестировщики (идти)?
Приветствую всех! Может быть кому-то мои вопросы покажутся странными, но я и в самом деле озадачен. Ознакомился с требованиями к вакансии тестировщика ПО (QA), почитал про эту профессию и пришёл к выводу что:
— выучится на тестировщика гораздо проще;
— довольно часто на это место берут даже людей с улицы, достаточно знать лишь общие теоретические вопросы в сфере IT (как в том анекдоте про цвет учебника на экзамене), обучают прям на месте, а бывшего программиста вообще оторвут с руками;
— знание ООП, алгоритмов, синтаксиса ЯП является бонусом, но не всегда это обязательно;
— тестировщики постоянно востребованы, почти так же как и программисты;
Может быть я ошибаюсь, если это так, то с готовностью выслушаю критику.
И в связи с этим у меня возникло несколько вопросов:
— почему тогда все не идут в тестировщики, вместо программистов? Из-за любви к программированию? Или лишь потому что программистам платят немного больше?
— можно ли устроится тестировщиком после 34 лет (в вакансиях конечно требования к возрасту не пишут, по понятным причинам)? Слышал, что это в основном для молодёжи..
— правда ли то что тестировщики с опытом работы так же востребованы за рубежом как и программисты?
— если кандидат пройдёт онлайн курсы тестировщиков, это повысит его шансы при приёме на работу в IT компанию?
— и верно ли то что раньше (лет 10 тому назад) тестировщиком легче было устроится без опыта, «с улицы»? В России, по крайней мере.
Оценить 2 комментария
Да
Берут только по блату и за деньги
Если забашлять и иметь связи, то можно сразу ПМ стать
почему тогда все не идут в тестировщики, вместо программистов?
Действительно, в тестировщики более чем реально попасть не умея программировать. Некоторые, поработав какое-то время, учатся программировать и становятся программистами. В целом, это неплохой старт карьеры в IT без опыта.
Слышал, что это в основном для молодёжи..
К нам приходят тестировщики и за 40 (в основном по знакомствам). Вцелом, не вижу здесь какого-то возрастного барьера. Другое дело, хотите ли вы в 34 за небольшую зарплату целый день кликать и, в случае незамеченного бага получать по голове за то что плохо кликали. (: Но, так как я написал выше, сможете хорошо себя проявить и вырасти выше.
правда ли то что тестировщики с опытом работы так же востребованы за рубежом как и программисты
если кандидат пройдёт онлайн курсы тестировщиков, это повысит его шансы при приёме на работу в IT компанию?
и верно ли то что раньше (лет 10 тому назад) тестировщиком легче было устроится без опыта, «с улицы»?
В эпоху всеобъемлющего DevOps функции разработчиков админов и тестировщиков совмещаются. Так быстрее и эффективнее развивается софт.
А отдельные выделенные тестировщики присутствуют только на больших проектах.
Всё зависит от Ваших способностей погрузиться в глубины обработки информации: от банальной реакции приложения на экране до регистров процессора/ячеек памяти/отслеживания системных вызовов.
Программист vs тестировщик: «Некоторые думают, что главное — найти в программе как можно больше ошибок»
Программист vs тестировщик: кто смотрит на программу шире, а кто — глубже? Как сделать карьеру в отделе тестирования? Является ли эта профессия творческой? На эти и другие вопросы отвечают специалисты компании «Топ Софт» (белорусский офис корпорации «Галактика»).
В беседе участвуют: начальник отдела интегрального тестирования Наталья Горавская, руководитель экспертной группы ОИТ Александр Ализарчик, начальник отдела тестирования Xafari Владимир Курганович и начальник отдела тестирования департамента «Управление персоналом» Дмитрий Яковцев.
Говорят, основной продукт тестировщика — ошибка (точнее, описание найденных ошибок, которое передается программистам). Согласны?
Наталья Горавская: Понятно, что любая программа содержит ошибки и возможности улучшения, и тестирование — бесконечный процесс. Система «Галактика ERP» развивается и сопровождается уже 23 года — и все это время тестировщики постоянно в этом участвуют. Однако наша работа только к поиску ошибок не сводится.
Один из основоположников современного тестирования ПО Борис Бейзер описал пять стадий становления тестировщика. Нулевую, низшую стадию он определял так: цель тестирования — помощь в поиске и исправлении ошибок.
Мы тоже поначалу считали, что цель тестирования — поиск и исправление ошибок. Но, по мере того, как менялись требования к ПО, запросы наших заказчиков — эволюционировали и наши взгляды. Мы стали рассматривать тестирование как один из ключевых элементов обеспечения качества ПО.
Ещё говорят, что программисты относятся к тестировщикам снисходительно, считая их младшим обслуживающим персоналом.
Наталья Горавская: Многие коллеги из других служб признают, что тестировщики лучше знают функционал системы в целом. Конечно, тот же программист глубже знает конкретные процессы, над автоматизацией которых работает. Зато тестировщик — знает процессы шире. Ведь мы находимся в постоянном цикле «разработка — проверка» для разных модулей, продуктов и заказных проектов. Мы отслеживаем изменения программных продуктов на протяжении многих лет. Мы лучше видим взаимосвязи между программными компонентами и пользовательскими функциями.
Например, начинающий программист может не знать, что данная информация в данном модуле будет использоваться еще в четырех или пяти модулях. А опытный тестировщик — знает. И обязательно проверит все эти взаимосвязи. Поэтому представители всех служб, в т. ч. разработчики, часто обращаются к нам за консультациями.
Добавлю, что, если у сотрудника достаточный уровень знаний в предметной области и общих вопросах, если человек умеет находить решения сложных проблем, делать оценки, прогнозировать поведение системы, искать потенциально узкие места в работе программы — на него в «Топ Софте» вряд ли кто-то посмотрит свысока.
Ещё одно распространенное мнение: тестировщики и программисты часто конфликтуют.
Наталья Горавская: Может быть, в первые годы существования отдела тестирования, когда мы были молоды, бескомпромиссны и стремились настоять на своем — искры конфликтов и мелькали. Но сейчас авторитет тестировщика в компании вырос. Программисты сами заинтересованы поскорее передать продукт, чтобы мы его посмотрели. Они охотно используют наши знания и свежий взгляд со стороны.
Это не значит, что споров, дискуссий совсем не бывает. Никто не любит признавать свои ошибки — и это характерно не только для IT-среды. Иногда разработчикам трудно понять, каково приходится пользователям, осваивающим сложный продукт.
И тогда задача тестировщика — убедить разработчика, что, если предлагаемые изменения не будут внедрены — неизбежен конфликт нашей компании с заказчиком. Программу пишет не тестировщик, но ответ за ее работу приходится держать и нам. Наш отдел — выпускающая служба, которая отвечает за качество конечного решения.
Технологии
Какие требования к качеству бизнес-приложений предъявляют сегодня белорусские пользователи?
Наталья Горавская: В первую очередь, их интересует функциональная полнота программных продуктов. Заказчик хочет, чтобы ему помогли автоматизировать востребованные у него бизнес-процессы и сделали это сегодня. Но при этом важно, чтобы в первую очередь решались наиболее актуальные задачи. А задача тестировщиков — проверить полноту и корректность реализации требований на разработку.
Для многих предприятий критически важна скорость обработки больших объемов данных. Контроль быстродействия системы — постоянная работа подразделений тестирования. Также для пользователей важна своевременная поддержка изменений в законодательстве, функциональная преемственность информационной системы в ходе сопровождения, эргономичность, совместимость с новыми операционными системами и версиями СУБД. Контроль соответствия программных продуктов по всем перечисленным параметрам — и есть наша главная задача.
Какие технологии вы для этого используете?
Александр Ализарчик: Хорошее познается в сравнении. Поэтому позволю себе начать издалека. В середине 1990-х к тестированию новых релизов Галактики ERP приходилось привлекать сотрудников других служб «Топ Софта», вплоть до отдела продаж. Но все равно весь процесс занимал, как минимум, 2–3 месяца. Пользователи подолгу ждали исправления ошибок, появления запрошенных функций, поддержки изменений законодательства и т. д.
По мере развития функциональности системы рос и объем необходимых работ по тестированию. Все отчетливее вырисовывалась проблема обеспечения устойчивости системы, сохранения функциональной преемственности, которая решается только регрессионным тестированием.
В конце 90-х годов нашей корпорацией была разработана и силами отделов тестирования Москвы и Минска внедрена система автоматизированного тестирования AQA.
Известно, что каждое изменение программного продукта имеет определенную вероятность внести ошибку. Самые трудноуловимые ошибки — те, что появляются в уже многократно проверенных компонентах. Только автоматизированное тестирование после модификации кода однозначно позволяет обнаружить эти ошибки там, где тестировщик с большой вероятностью мог бы их пропустить.
Эта возможность особенно важна при выпуске релизов, а затем — и обновлений. Сжатые сроки требуют специальной методики обеспечения надежности. Никакая команда тестировщиков не может вручную за несколько дней пройти хотя бы типовые бизнес-процессы и гарантировать полное сохранение работоспособности, поэтому основной объем проверки функциональности стал возлагаться на автоматизированную систему. Новые и модифицированные функции могут быть проверены только вручную, однако при этом производится запись сценариев для их автоматизированного тестирования в дальнейшем.
— Не проще ли было приобрести аналогичный продукт у одной из компаний, которые специализируются на их разработке?
Александр Ализарчик. Увы, ни одна из присутствующих на рынке систем тестирования не учитывала специфику нашего ПО. Например, ERP-системы работают с базами данных — но ни в одной системе не было возможности начинать каждый тест с восстановления исходной базы данных.
С помощью AQA мы воспроизводим условия эксплуатации системы на крупных предприятиях и в распараллеленном режиме проводим глубокое тестирование ее функциональности, функциональной преемственности, производительности, масштабируемости, устойчивости системы под нагрузкой и др.
Сильно ускоряет процесс использование ранее созданных библиотек тестов. Тестировщик может в одиночку, не отвлекая коллег, провести большой комплекс работ. И обращается к автору библиотеки только в случае ошибок, которые не может сам диагностировать.
Дмитрий Яковцев: Самое ценное в AQA — простота использования. Кроме того, когда для тестирования новых задач нам нужны доработки самой системы AQA — мы довольно быстро их получаем. Мы сами формулируем новые требования к ее функционалу и предлагаем решения. Со сторонними системами это было бы невозможно.
AQA встроена в систему «Галактика ERP», имеет тот же интерфейс, хорошо документирована, так что любой заказчик может ее легко освоить и использовать, как для обеспечения эксплуатации развернутой у него конфигурации, так и для тестирования собственных разработок.
Наталья Горавская: Немаловажно, что сторонние системы тестирования — недешевы, особенно в пересчете на количество рабочих мест. Если бы мы ими пользовались, корпорации «Галактика» пришлось бы существенно повысить стоимость своих программных продуктов.
Владимир Курганович. AQA используется для автоматизации тестирования «Галактики ERP» и других продуктов, созданных корпорацией «Галактика» на собственной платформе разработки «Атлантис». А такие решения, как система управления производственными процессами предприятия «Галактика AMM», система управления активами предприятия «Галактика EAM» и другие, разрабатываются на нашей новой бизнес-платформе Xafari — которая, в свою очередь, развивает возможности Open Source платформы XAF компании DevExpress. Специалисты нашего отдела изучили возможности множества инструментов — и в итоге выбрали для автоматизации тестирования решений на Xafari систему EasyTest той же DevExpress. Ее плюс — платформонезависимость и простота использования EasyTest. А также, что немаловажно, возможность самостоятельной (силами собственных разработчиков) доработки, развития функционала этого инструмента под свои нужды.
— Наталья Васильевна, вы отмечали, что процесс совершенствования системы должен быть нацелен прежде всего на наиболее актуальные для заказчиков задачи. Как это удаётся?
Наталья Горавская: В этом помогает корпоративная система «Проблемы и решения». Мы и наши коллеги — программисты, внедренцы, специалисты техподдержки и других служб — фиксируем в ней все виды проблем, возникающих в ходе разработки и эксплуатации программных продуктов, предложения по их развитию, заявки на доработку и др.
ПИР помогает координировать работу служб, вовремя решать проблемы заказчиков. Информация из ПИРа подсказывает разработчикам, в каких новых функциях действительно нуждаются пользователи. А тестировщику — помогает писать тесты, позволяющие в сжатый срок проверить функциональность программы по заданным бизнес-процессам.
— Роль хороших инструментов нельзя переоценить. А каков вклад самого тестировщика, его опыта, профессионализма в решение проблем пользователей?
Наталья Горавская: Разумеется, роль интеллектуального труда тестировщика — основная. Ведь автоматизировать можно только то, в чем хорошо разобрался. Поэтому процесс тестирования начинается с анализа проектной документации. К слову, ключевые сотрудники отдела тестирования, учитывая их опыт и знания, часто привлекаются к согласованию технических заданий, технических проектов и аналитических записок, вносят свои предложения по разработке, развитию продуктов и т. д.
— Как бы вы оценили вклад службы тестирования в создание конечного программного продукта?
Владимир Курганович: Нужно учесть, что функционал разных решений различается степенью сложности, востребованности, проблемности. Соответственно, отличается и вклад тестировщика.
Наталья Горавская: Можно, оценивать, например, по соотношения ресурсных затрат, но это не всегда отражает общую картину. Для нас, во-первых, важно, что разработчики всегда стараются как можно быстрее передать нам на тестирование свои продукты. А во-вторых, мы подписываем «путевку в жизнь» каждой новой функциональности, каждому новому продукту.
— А если ошибка просочилась в программу?
Дмитрий Яковцев: Проводим анализ: почему ошибку допустили разработчики и пропустили тестировщики — и стараемся избегать подобных ситуаций в будущем. Регламент предусматривает, что по критичным — т. е. важным для пользователя — ошибкам обязательно пишутся тесты.
— Какие качества нужны тестировщику для успешной карьеры?
Владимир Курганович: Аналитический склад ума, знание предметной области, уравновешенность, стрессоустойчивость, внимательность, скрупулезность, ответственность, коммуникативность, умение аргументированно настоять на своем.
— Нужно ли быть программистом?
Наталья Горавская: Не обязательно. К нам приходят и люди без программистского образования — и через некоторое время успешно осваивают AQA и справляются со своими обязанностями.
Александр Ализарчик: Я заметил, что некоторые, кто приходил к нам, например, из бухгалтерской профессии — склонны ограничиваться констатацией найденных ошибок. Люди, прежде связанные с программированием и другими техническими специальностями, чаще стараются разобраться в причинах ошибки.
Дмитрий Яковцев: Но мы в каждом стремимся разбудить желание разобраться в причинах.
Наталья Горавская: Недавно в вузах появилась новая специальность — «Тестирование ПО». Но с выпускниками пока побеседовать не довелось. Как правило, к нам приходят те, кто окончил двухмесячные курсы тестирования программного обеспечения. Их слушателей обычно обучают на примере тестирования калькулятора. Многие выносят из этого опыта мнение: мол, главное — найти в программе как можно больше ошибок. И видят в этом суть будущей профессии. Приходится их переучивать.
Александр Ализарчик: Я всегда стараюсь максимально «запугать» кандидата на собеседовании, чтобы к нам не попадали случайные люди, которые уйдут уже через полгода.
— Сколько времени обычно занимает подъем на очередную ступень карьеры?
Наталья Горавская: Перейти с должности эксперта второй категории на первую — 2 года. Стать ведущим экспертом — 2–3 года, руководителем группы — 3–4 года. Если вы хорошо знаете предметную область — сразу идете на позицию эксперта первой категории. Ведущие специалисты получают право проводить обучение молодых сотрудников, разрабатывать планы отдела.
— Как распределяются обязанности в отделах?
Наталья Горавская: Согласно ресурсной схеме. В ОИТ за каждым тестировщиком закреплено несколько модулей продукта «Галактика ERP» по направлениям. Например: бухгалтерский контур, логистика, производство.
Также при распределении обязанностей стараемся учитывать способности, склонности специалистов. Кто-то преуспевает в умении скрупулезно проанализировать бизнес-процесс клиента, кто-то — в «быстром» тестировании новых решений (и находит при этом большое количество ошибок) и т. д.
— Регламентирован ли ваш рабочий день?
Наталья Горавская: В целом — да, потому что постоянно идет поток программных обновлений. Каждый тестировщик начинает день с мониторинга входящего потока в системе «Проблемы и решения». Идет подпитка знаний, анализ: какие ошибки возникли, по чьей вине, насколько они критичны, какие проблемы ставят пользователи, к каким обновлениям нужно готовиться и т. д.
В течение дня тестировщиков могут привлекать к совещаниям, связанным с развитием того или иного продукта, к анализу отчетов руководителей проектов разработки, к консультациям специалистов техподдержки и службы внедрения.
Дмитрий Яковцев: А наши повседневные задачи — это тестирование обновлений, написание и прогон тестов, выполнение различных регламентных работ и т. д.
— Вы можете назвать свою профессию творческой?
Наталья Горавская: Конечно. Например, бывает непросто подобрать правильную конфигурацию для тестов — программные компоненты, которые на реальном предприятии могут взаимодействовать с тестируемым компонентом. Или ответить на вопрос: почему на вашем компьютере система работает, а на компьютере пользователя — нет? Таких вопросов в течение дня может возникнуть немало.
— Вы можете назвать свою профессию творческой?
Дмитрий Яковцев: Довольно интересным и творческим получился проект по расчету заработной платы на 2 миллиона сотрудников, в котором мы участвовали с Александром Ализарчиком. Основной целью нагрузочного тестирования была оценка перспектив использования технологии распараллеливания процессов для обеспечения масштабируемости системы «Галактика ERP». Разработку технологии распараллеливания проводили в Департаменте разработки «Управление персоналом», поэтому для ее апробации был выбран один из самых ресурсоемких и затратных процессов в контуре «Управление персоналом» — расчет заработной платы. Результат расчета в системе «Галактика ERP на стенде компании Intel 2 миллионов лицевых счетов составил 8 часов 8 минут. Расчет на 1 миллион счетов прошел за 4 часа 1 минуту, на 100 тысяч — за 26 минут, на 10 тысяч — за 6 минут. В ходе проекта мы применили целый ряд нестандартных решений. Например, придумали и реализовали подход, когда для распараллеливания расчетов могут быть задействованы простаивающие мощности рабочих станций заказчика (в случае отсутствия или дефицита в это время достаточного объема вычислительных мощностей). При создании тестовых баз на 1 и 2 миллиона сотрудников также были придуманы и использованы оригинальные решения.
Александр Ализарчик: У нас любой проект — творческий. Например, мы нашли множество нетривиальных решений, когда создавали собственное средство обработки результатов тестов. Важно было получить наглядную картину уже протестированного функционала. Ведь у нас в службе работает около 30 человек, и нужен был инструмент координации командной работы.
Другой пример. По требованию одного заказчика я проводил тесты, имитирующие работу большого количества пользователей с использованием системы нагрузочного тестирования компании HP. Пришлось осваивать ее с нуля. Но основная проблема заключалась в том, что система HP больше ориентирована на тестирование веб-приложений. Писал специальные скрипты, подбирал режим работы системы для совместимости с desktop-приложениями, выезжал в командировку, настраивал оборудование и проводил измерения.
В итоге мы успешно продемонстрировали заказчику, что наше решение по нагрузочному тестированию показывает достоверные результаты. Что заказчика вполне устроило.
Текст: Юрий Смирнов
Фото: Андрей Давыдчик
Эта публикация подготовлена в партнёрстве с «Топ Софт»
Унитарное предприятие «Топ Софт» УНП 100314702