Горькие слёзы QA-эксперта, или "Здравствуйте, а не хотите ли вы переписать это г..."
Привет.
Давненько уже задумывался над тем, что бы написать о своей работе, да и попутно разогнать туман в голове многих людей, которые не знают, кто такие тестировщики, и чем они занимаются в рамках QA. (да, @HappyMe, это текст для тебя, хоть и очень запоздавший :) )
Итак, что же такое QA? Номинально, это далёкая цель, которая недостижима сложна и опасна, ведь многие разработчики считают тестирование мартышками с мышками. И отчасти они правы, ведь даже сами ответственные за качество слабо понимают, чем они заняты. Что бы понять это более комплексно, нужно заглянуть на самое дно такой страшной среды, как IT.
Однажды, меня спросили, почему именно тестирование? Мне было сложно ответить на этот вопрос, ведь я действительно не знал ответа. Я был и сисадмином, и разработчиком, и SQL-саппортом, и обычным саппортом, но всегда на нас сгружали тестирование нового функционала, ведь "у них на это есть время, всё равно сидят ничо не делают". А потом мне позвонили, и предложили должность тестировщика. Хотя, я слабо представлял, что же это за зверь такой. Первый мой руководитель в рамках тестирования был дуб-дубом, и не мог мне объяснить, что такое тест-кейсы, как правильно составлять и заводить тикеты на баги, почему моки это не то же самое, что тестовые базы, и почему НЕ надо сидеть на QA форумах. Пришлось осваиваться самому.
И сейчас я хочу поговорить о тестировании.
Тестирование, кстати, бывает несколько типов.
1 тип - ручное тестирование:
Самый распространённый тип тестирования, когда ты просто протыкиваешь весь ресурс руками, ищешь кривое поведение приложения и пишешь об этом. Кажется простым, верно? Как бы не так!
Помимо развитой интуиции, ручному тестировщику нужно уметь думать, и принимать нестандартные решения. Например, отличать позитивные тесты, от негативных. Это, кстати, сложно, ведь негативный тест - это не тот, который "вот тут надо вводить числа, а мы введём буквы". Равно, как и надо отличать моки от инфраструктурной заглушки. Нужно знать сети, (возьмём к примеру web сегмет), как работает браузер/ОС, почему нужно чистить куки, как работают куки, быть в теме фреймворков, быть очень надоедливым, уметь отстаивать своё мнение, убеждать программистов переделать тот или иной сегмент приложения, если он вам категорически не нравится, хотя и работает правильно на первый взгляд. Нужно быть внимательным, быстрым, подкованным в среде последних тенденций развития вашего направления, желательно уметь читать код, разбираться в БД (ну хоть на уровне отличий реляционной от no-sql БД)...
Что, господа программеры, всё ещё считаете тестирование обезьянами? Ну окей, вот вам второй тип, с которым уже надо считаться.
2 тип - автотесты:
Самый интересный тип тестирования. Это недоразработчик, перетестировщик. Человек, который творит с кодом такую хрень, которую вам и не снилось. Сделать заглушку, убить, казалось бы, верный код, реверснуть то, что понаписал программист и свалил в туман без документации к коду... А самое главное, это тот, кто ковыряется в вашем говне коде, и жутко матерится, когда не находит комментариев, или пытается отделить костыль от велосипеда, ведь надо это покрыть тестами...
Самое интересное, что этот спец должен уметь читать код на любом языке, понимать, как это работает, осознавать ограничения и заставлять разработчиков быть заинтересованными на благо качества и сокращения затрат на тестирование/разработку. А ещё, это повелитель селениума, мастер багтрекеров, разработчик фреймворков и обёрток, скорее всего неплохой разработчик в python и java и не знает элементарных вещей. Страшное существо, правда? :)
3 тип - тестировщики в безопасности:
Это страшные люди. Воистину страшные. Может быть - это венец эволюции тестирования. Это люди, которые знают очень много, а ещё больше хотят вас унизить. Найти самые обидные баги в ваших программах, заставить вас просыпаться среди ночи, и заново шептать коды и пароли, которые они могут стянуть прям с вашего рабочего стола. Они смогут в три шага сломать труд многих лет... XSS уязвимости, SQL-инъекции, косяки в вёрстке, мемори-лики... Это страшный сон одминов и прочих эксплуатационщиков, люди, которые заставляют вас использовать обфускаторы и прочий бред, мешающий "творить в высших потоках"...
Но, я увлёкся описанием ролей в тестировании, а надо бы описать QA... И я не знаю, что написать об этом...
Наверное, это недостижимый абсолют, ведь QA - это когда ВЕСЬ коллектив разработки стремится к качеству своего продукта. Когда тестировщик и разработчик знают работу друг друга, когда экспертное мнение не повисает в воздухе, когда бизнес четко может определить, что он хочет, а аналитик почему это невозможно, почему это не будет работать правильно... Когда... Когда каждый знает, что он ответственный за то, что сделал. До самого последнего уборщика помещения... О, как же часто разработчик не понимает, что его "уникальное видение решения проблемы" по факту оказывается неудобным дерьмищем, но как отец этого уродца, он будет до конца защищать творение рук своих... Когда аналитик собирает не все требования, и весь сквод начинает переделывать то, что уже было сделано... Когда админ забывает почистить место, или снять бекап... Зачастую, контроль этого возлагают на плечи тестирования.
Сейчас, я больше евангелист тестирования, чем исполнитель, и стараюсь привить всем окружающим любовь к качеству своей продукции... И всё реже и реже мне приходится говорить "Здравствуйте, а не хотите ли вы переписать это г.."
Наверное, для первой пасты этого будет достаточно... Множество нюансов есть в разработке ПО, о них можно очень долго говорить. Если вам это зашло, и вы хотите более детализированной информации - задавайте вопросы, и я опишу более детально :)
Засим откланиваюсь, прошу сильно не пинать, пост не технический а скорее поныть "насниктонелюбитнепонимаит" :)
Курсы
Наверное я еще не слишком всех достала своими "джава" и "тестированием". Нет на этот раз все масштабней и радостней хотя я так и не выбрала между этими двумя. Суть вопроса: какие есть хорошие курсы в городе для познания дел сих? Слышала про левел ап, какие еще хорошо обучают и желательно трудоустраивают? hi5? skill up? Интернет с его отзывами о курсах ничего не дал, только про hi5 два плохих нашла, и то не по джаве, тестированию или программированию на дроиде. Что скажете?
Город Днепропетровск.
Пожалуйста не топите минусами, комменты для минусов имеются.