Горькие слёзы QA-эксперта, или "Здравствуйте, а не хотите ли вы переписать это г..."

Привет.

Давненько уже задумывался над тем, что бы написать о своей работе, да и попутно разогнать туман в голове многих людей, которые не знают, кто такие тестировщики, и чем они занимаются в рамках QA. (да, @HappyMe, это текст для тебя, хоть и очень запоздавший :) )

Итак, что же такое QA? Номинально, это далёкая цель, которая недостижима сложна и опасна, ведь многие разработчики считают тестирование мартышками с мышками. И отчасти они правы, ведь даже сами ответственные за качество слабо понимают, чем они заняты. Что бы понять это более комплексно, нужно заглянуть на самое дно такой страшной среды, как IT.


Однажды, меня спросили, почему именно тестирование? Мне было сложно ответить на этот вопрос, ведь я действительно не знал ответа. Я был и сисадмином, и разработчиком, и SQL-саппортом, и обычным саппортом, но всегда на нас сгружали тестирование нового функционала, ведь "у них на это есть время, всё равно сидят ничо не делают". А потом мне позвонили, и предложили должность тестировщика. Хотя, я слабо представлял, что же это за зверь такой. Первый мой руководитель в рамках тестирования был дуб-дубом, и не мог мне объяснить, что такое тест-кейсы, как правильно составлять и заводить тикеты на баги, почему моки это не то же самое, что  тестовые базы, и почему НЕ надо сидеть на QA форумах. Пришлось осваиваться самому.


И сейчас я хочу поговорить о тестировании.

Тестирование, кстати, бывает несколько типов.

1 тип - ручное тестирование:
Самый распространённый тип тестирования, когда ты просто протыкиваешь весь ресурс руками, ищешь кривое поведение приложения и пишешь об этом. Кажется простым, верно? Как бы не так!
Помимо развитой интуиции, ручному тестировщику нужно уметь думать, и принимать нестандартные решения. Например, отличать позитивные тесты, от негативных. Это, кстати, сложно, ведь негативный тест - это не тот, который "вот тут надо вводить числа, а мы введём буквы". Равно, как и надо отличать моки от инфраструктурной заглушки. Нужно знать сети, (возьмём к примеру web сегмет), как работает браузер/ОС, почему нужно чистить куки, как работают куки, быть в теме фреймворков, быть очень надоедливым, уметь отстаивать своё мнение, убеждать программистов переделать тот или иной сегмент приложения, если он вам категорически не нравится, хотя и работает правильно на первый взгляд. Нужно быть внимательным, быстрым, подкованным в среде последних тенденций развития вашего направления, желательно уметь читать код, разбираться в БД (ну хоть на уровне отличий реляционной от no-sql БД)...
Что, господа программеры, всё ещё считаете тестирование обезьянами? Ну окей, вот вам второй тип, с которым уже надо считаться.

2 тип - автотесты:
Самый интересный тип тестирования. Это недоразработчик, перетестировщик. Человек, который творит с кодом такую хрень, которую вам и не снилось. Сделать заглушку, убить, казалось бы, верный код, реверснуть то, что понаписал программист и свалил в туман без документации к коду... А самое главное, это тот, кто ковыряется в вашем говне коде, и жутко матерится, когда не находит комментариев, или пытается отделить костыль от велосипеда, ведь надо это покрыть тестами...
Самое интересное, что этот спец должен уметь читать код на любом языке, понимать, как это работает, осознавать ограничения и заставлять разработчиков быть заинтересованными на благо качества и сокращения затрат на тестирование/разработку. А ещё, это повелитель селениума, мастер багтрекеров, разработчик фреймворков и обёрток, скорее всего неплохой разработчик в python и java и не знает элементарных вещей. Страшное существо, правда? :)

3 тип - тестировщики в безопасности:

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

Но, я увлёкся описанием ролей в тестировании, а надо бы описать QA... И я не знаю, что написать об этом...


Наверное, это недостижимый абсолют, ведь QA - это когда ВЕСЬ коллектив разработки стремится к качеству своего продукта. Когда тестировщик и разработчик знают работу друг друга, когда экспертное мнение не повисает в воздухе, когда бизнес четко может определить, что он хочет, а аналитик почему это невозможно, почему это не будет работать правильно... Когда... Когда каждый знает, что он ответственный за то, что сделал. До самого последнего уборщика помещения... О, как же часто разработчик не понимает, что его "уникальное видение решения проблемы" по факту оказывается неудобным дерьмищем, но как отец этого уродца, он будет до конца защищать творение рук своих... Когда аналитик собирает не все требования, и весь сквод начинает переделывать то, что уже было сделано... Когда админ забывает почистить место, или снять бекап... Зачастую, контроль этого возлагают на плечи тестирования.


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


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

Засим откланиваюсь, прошу сильно не пинать, пост не технический а скорее поныть "насниктонелюбитнепонимаит" :)

3
Автор поста оценил этот комментарий

Зачем ты тут это написал, евангелист? Обязьянка не может ничего кроме тыкать руками, но хочет потешить свое ЧСВ?

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Что ты тут забыл, умник? Никакого отношения к теме не имеешь, но без коммента никак?

2
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
мне как разработчику очень неприятен

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

показать ответы
1
Автор поста оценил этот комментарий
Ой спасибочки)
Так приятно) хоть с ролью qa разобралась уже, а все равно интересно)

Хотелось бы почитать еще о работе тестировщиков в разных компаниях. Без секретной информации, конечно)
А может, кто-нибудь напишет про тестирование в геймдев?
И тестирование безопасности тоже интересует.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
А может, кто-нибудь напишет про тестирование в геймдев?
И тестирование безопасности тоже интересует.

Спрашивай конкретно, а то геймдев это офигеть какая большая тема, например, уж о безопасности вообще молчу :)

показать ответы