Обновить
Комментарии 46
Спасибо. ИМХО, полезный пост. Настоящий тестировщик — это летчик-испытатель.
Настоящий тестировщик — это летчик-испытатель.

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

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

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

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

При этом есть категория юниоров, готовых впитывать знания. Так что если искать, то через институт интернатуры или тех людей, которые энергичные и интересные на собеседованиях. При этом, в зависимости от ваших требований, не факт, что вам нужен perfect grade of ISTQB тестировщик, вполне возможно «компьютерных дел мастер», «системный администратор» или программист из НИИ вам подойдёт, если вы ему развяжете руки.

Тут главное увидеть в человеке огонёк и жилку, карму и развязать ему руки в проекте. В случае если его не пугает ответственность (хотя, кончено её будет нести ПМ\ТМ в случае чего), если он хочет влиять на ход проекта — это только на руку будет.
с чего на Ваш взгляд нужно начать, чтобы стать хорошим тестирощиком? понимаю, что вопрос банальный, но думаю, что Вы сможете дать хороший совет, так сказать определить направление движения. Дальше уже двигаться буду на силе желания…
С ответа на вопрос, кем вы хотите стать (и в каких условиях) через пять лет и что вам интересно. Чтобы стать хорошим тестировщиком нужно хорошее понимание жизненного цикла разработки по, жизненного цикла дефекта, а так же личная гибкость и готовность постоянно обучаться и не привязываться к тому или иному инструменту или техники решения проблем\поиска уязвимостей. По большому счёту всё, что нужно — это гибкость ума, много терпения, готовности к рутине (как у старателей), и системный, несколько смещённый взгляд на вещи… что-то вроде анализа FMEA.

По поводу базы — замечательный курс есть на Intuit.

Подробнее ответил в личку.
Тестировщик это карма. Лично у меня всегда все не так. То ни с того не с сего Visual Studio упадет, то именно у меня Google Chrome закроется. То стул всегда был хорошим, но именно у меня он сломается. Меня уже порою из показов в команде выгоняют, дабы «бозоны» не принес
Эффект Паули же.
Однажды Паули решили разыграть, соединив настенные часы в зале, где он должен был читать лекцию, с входной дверью с помощью реле, чтобы при открытии двери часы остановились. Однако этого не произошло — когда Паули вошёл, неожиданно отказало реле.
График затрат на ручное и автоматизированное тестирование не корректен и создает ложное впечатление.
Первоначальная разработка автоматических скриптов для тестирования в разы дороже ручного тестирования — до пересечения со стоимостью ручного тестирования там ой как не близко.
И ровной полки там не может быть в принципе — поддержка эти скриптов тоже обходится не дешево.
Сама статья очень хорошо написана — мне только этот график не понравился.
Справедливо. График я брал из интернета.
1) Там не ровная полка, а растущая кривая, если приглядеться
2) По поводу «в разы» я с вами не соглашусь, т.к. всё зависит от специфики. На одном из моих проектов, основывающемся на регрессионном и перфоманс-тестировании для 20+ конфигураций в ежедневном режиме автоматизированное тестирование окупило себя через 2,5 месяца. При проекте длиной в 2а года — это большие деньги и сэкономленное время.
Естественно, для поддержания скриптов и вообще автоматической CIT системы нужны люди с хорошей квалификацией, но, в целом, это посыл моей статьи — на больших интервалах, в стратегическом плане для IT компании-собственника это работает в разы лучше, чем держать и стаффировать десятками кликеров (зачастую не знающих и теории покрытии и методологий тестирования).
Согласен насчет регрессионного автоматического тестирования на Х конфигурациях — я тоже работал в компании с такой ситуацией, и там это было безусловно оправдано (хотя разработка и наладка всего этого хозяйства стоила кучу денег, но там все было сложно — разные юниксы и даже майнфреймы).

В случае типового веб-проекта, в котором UI на продакшене меняется быстрее, чем его успевают проектировать :-) поддержка авто-скриптов превратится в непрерывную параллельную разработку. Разве что если возложить ответственность за скрипты на самих разработчиков.
Перекладывать на разработчиков в условиях постоянно меняющегося UI — это просто издевательство над ними будет :)
Критерии автоматизации — самый частый вопрос на собеседованиях и на пресейлах. На всякий случай ещё раз напишу тут:
1) Повторяемость тестов
2) Изменяемость требований
3) Затраты на разработку и поддержание теста, инструменты
4) Размер данных
5) Время выполнения
6) Время внедрения (не слишком раннее и не слишком позднее)
7) Вариативность (нечеткость критерия успеха)
Опять эти тестировщики поют себе гимны… Дворник — это больше, чем дворник… Сантехник — это больше, чем сантехник… Пылесос — это больше, чем пылесос. Да так вообще про всё сказать можно )
У Вас не правильное понимание роли тестирования.
* Разработчик создает то что продается;
* Тестировщик создает ситуации при которых пользователь не потребует денег обратно и вполне возможно придет за покупкой update;

Пользователю глубоко фиалетово какие паттерны знает разработчики и какие были применены в продукте, который он купил. Ему наплевать как много и упорно оптимизировал\рефакторил разработчик свой продукт. Но стоит пользователю увидеть багу, которая мешает ему выполнять его задачи, то разработчику очень сильно повезет если на рынке нет конкурентов, иначе он потерял пользователя.
Да, теоретически всё верно ) Только на практике всё обстоит несколько иначе. Вот например я, как пользовался глючным твиттером, глючной виндой, глючным линуксом, глючным скайпом, глючным андройдом, так и пользуюсь ) Если хотите продвинуть продукт — не нанимайте тестировщиков, нанимайте маркетологов ;)
Понимаете, есть продукты-монополисты или без которых нельзя обойтись, а есть те что имеют конкурентов или без которых в принципе можно обойтись.
Приведу пример, недавно в Android-версии сервиса LingvaLeo нашел багу «Очень тихо, почти не слышно озвучиваются слова, даже если громкость телефона на самый максимум». После обращения в саппорт получил ответ через 2 дня на уровне «А вы телефон включили?». После моего второго письма ответа так и нет, прошла неделя! Как Вы думаете буду ли я покупать второй раз ихний «Золотой статус»? Нет, не факт! Проблема не в том что саппорт молчит, хотя и это плохо, а в том что проверить громкость озвучки не больше 1 мин. Видимо они проверили у себя в офисе и им наверное в голову не пришло что люди могут ездить в электричках, метро и боже упаси в тролейбусах.

Т.е. разработчик не до тестировал, что привело к тому что пользователь врядли еще раз заплатит ему денег
Обратите внимание, что в данной ситуации раздражение вызывает некачественная поддержка, а не недостаточное тестирование ;) Так что, поддержка — больше чем профессия?
Это не теоретически — это практически!
Приведу ситуацию в которой я не до тестировал. Наша компания выпускает софт full-версию которого мы посылаем в виде ссылки пользователю. Где-то год назад произошла ситуация когда на один из наших билдов ругался антивирус от Symantec. Некоторые пользователи не только отказались ставить наш продукт, но и потребовали денег обратно! Наш продукт стоит 995$.

Да, разработчики сделали продукт, его можно продавать. Но, я не протестировал на Symantec и понадеялся что хватит Dr.Web и Kaspersky. А ведь несколько раз умножить на 995 это 2-3 зарплаты тем же разработчикам!
это психология русскоговорящих пользователей, остальные чуть что — сразу звонят в поддержку, если они заплатили хотя бы 5 долларов
Обеспечение качества продукта — всегда командная задача, иначе быть беде. Каждый делает свою часть работы, которую не могут сделать другие. Крутые тестировщики продукту, который пишут посредственные программисты, не сильно помогут.
Где-то недавно пробегала фраза (по памяти цитирую): отсутствие или неумелое тестирование может загубить хороший проект, но супер-отличное тестирование не спасет изначально плохой проект.
Не совсем правильное видение процесса тестирования. Изначально плохой проект может и не появиться! Дело в том что многие тестируют ПОСЛЕ создания, а надо ДО создания уже включаться. Другими словами, как начали с командой обсуждать задачу от Product-owner, то тестировщик уже может начать задавать свои «глупые вопросы»:
* А как должна работать прога в demo-версии?
* А что если я подам неправильный серийный номер?
* А если пользователь уже имеет аккаунт?
и др.

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

Могу порекомендовать пару софтверных лавок, где вам за ваши вопросы похлопают, покивают, а потом забьют на них и на вас. Да ещё и поговорят в духе «Ко мне опять этот умник приходил, парил про неправильные серийные номера».
А дальше хоть утестируйтесь. Даю волю вашей фантазии и «правильному видению процесса тестирования».

И ещё подумайте на тему работы над приложением, которое никому не нужно.
Сразу вижу, разработчик, который далее своей IDE ни разу не выглядывал :))) По некоторым багам, которые открывал на своей работе я не мало раз откладывал релиз на 1-2 дня. Было и не раз, когда был в отпуске и выдавали релиз, а потом в последствии во внутренней переписке Product-owner на чуть более культурном языке чем матерный выражал свое мнение по поводу пропущенных баг. Очень, очень радует Product-owner-ов слова вида «А никто и не задавался подобным вопросом?» или вида «А никто и не проверял». Хотя Разработчику, который далее своей IDE никуда не заглядывал врядли это возможно понять.
Также скажу что у меня есть опыт ведения проектов, за свои собственные деньги, так сказать «домашние проекты», на которых зарабатываю пусть не на BMW, но на хлеб хватает. Скажу что Вы даже не представляете какое бывает ощущение, осознать что половину работы можно было бы и не делать, если Бы во время кто-то обратил внимание на один из нюансов!

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

А то, что вы напридумывали про меня. Вы ошиблись во всём. Ну что ж. Живите в мире своих иллюзий, но меня, пожалуйста туда не тащите.

На сём закончу непродуктивный разговор.
Сосуществование трёх разных тест инженеров, пишущих на трёх разных языках вполне допустимо


Не ради спора пишу, а чтобы своим опытом поделиться. Работал в компании ||, занимался автоматизацией. Я единственный писал автоматизацию на C#, остальные в общей массе писали на РНР, был кусок на Java, где-то использовался LISP и еще куча всего уже и не вспомню.

Когда был 2008 год (кризисный) многих сотрудников просили покинуть компанию. Мне предложили закрыть весь мой C# проект и написать все заново на РНР. Причем codebase был взят с другого продукта, codebase был написан на РНР. Объяснялось это так — основная масса програмистов в компании пишет на РНР. Тесты на C# ты пишешь один. Если нужно будт тебя заменить (сам уволюсь, уволят, камень на голову упадет), то придется искать человека на мое место со знанием C#. Во-первых, такого тестировщика будет трудно искать. Во-вторых, наверняка он будет с непомерными амбициями :) Ну т.е. для комании это невыгодно. Выгодно было иметь единый codebase для тестов и продукта, чтобы человека если что можно было заменить. И, например, при желании программиста могли не уволить, а перевести в отдел тестирования, где бы он писал тесты.
Мне было грустно и печально расставаться со своим проектом, в который я вложил 2 года трудов. Но в дальнейшем я понял, что решение принятое менеджментом было верным и правильным. Наконец-то удалось к моему проекту подключить и других людей, мы смогли за пол года все переделать на РНР, покрыть тестами и другие области продукта, не только мою ответственность, интегрироваться с другими внутрикорпоративными системами, работать одной РНР командой, делать ревью кода и прокачать скилы.

И через 2 года я смог со спокойной душой уволиться :)

P.S. Статья понравилась, вспомнил свою тестерскую молодость :)
«И, например, при желании программиста могли не уволить, а перевести в отдел тестирования, где бы он писал тесты.»

Вот одна из причин из-за которой о тестировщиках плохое мнение или суждение как о людях непрофессиональных. Программиста, которого отторгли другие программисты ни в коем случае нельзя пускать в тестирование. Скорее всего это человек некомпетентный, не склонный к развитию и безотвественный. Более того он уже не умеет тестировать.
Лично я не вижу тут связи с тем, что сказал автор предыдущего коммента.
Дело в выгоде для компании, что бы не увольнять человека из-за кризисной ситуации, не сажать его сидеть бездельничать. А вовсе не потому, что он не профессионал. Другое дело, что писать тесты может быть для разработчика скучно, но опять-таки как для бизнес-потребностей, так и для компании, где программист не только кодер, и где тестировщик не просто обезьяна — это вполне нормальное и хорошее для всех решение.
Автор brutalko всё верно написал про единый code base.

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

Я работал с людьми переведенными из программистов в тестровщики. Думаю, что в 100% случаев это было нежелание уходить с насиженного места и страх не найти новой работы в хорошей компании.

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

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

Как мне кажется, это связано больше с незрелостью области и нечёткому пониманию руководства места тестирования в процессе разработки ПО. Особенно в России\СНГ. Как минимум мой опыт собеседований в компаниях и русские и зарубежные говорит об этом.
Я видел только удачные переходы из программистов в QA manager. Это были действительно достойные люди. Про переход в тестеры я с вами согласен. Ниже я упомянул про найм в компанию Microsoft. Люди с желанием шли в крутую контору на позицию SDET, хотя раньше кодили. Но опять же как дальше у них судьба складывалась — я уже не слышал. Думаю дальнейшее зависит от человека, от его упорства и амбиций :)
Все верно, дело было в выгоде для компании. На самом деле и работу тогда найти новую сложно было, у меня тогда не получилось. Везде шли сокращения, так что можно сказать, что программистам компания пошла на встречу, ну а слабых тестировщиков немного кинули :)

Были програмеры, которых перевели в тестинг, кто вскоре ушел из компании. Я начинал карьеру в тестировании и сам ушел по своему желанию, чтобы начать кодить, но уже после кризиса. Я часто встречаюсь с парнями кто так же как и я начинал в той же компании тестировщиком и кто в ней остался до сих пор. Многие из них давно программируют. Можно сказать выросли внутри компании. 2 архитектора продуктов как минимум вышли из тестирования, один ПМ — это кого я лично хорошо помню.

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

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

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

Но обычно «подготовленный тест план» либо вообще отсутствует, либо пишется тестировщиками, а не спускается откуда-то сверху. А вот его подготовить, знать как проверять границы, покрытие — это уже несколько сложнее. Во всяком случае на всех проектах, где я работал программисты наступали всегда на одни и те же грабли, считая многие условия «невозможными» и тратить время на написание какого-то гварда бессмысленным. Поэтому несколько опасно, во всяком случае без всеобщего чеклиста и стандартов отдавать программистам тестирование, во всяком случае без VoV.

Ну и по поводу квалификации в Вашем примере, возможно, это тоже перегиб небольшой :) А то в таком случае получается не разработчик уже, а кодер :) Нужен баланс в команде, на самом деле. Программист круто знает алгоритмы и знает как рефакторить и оптимизировать, а тестировщик смотрит сквозь это, даже на распрекрасный алгоритм, доставая корявое преобразование типов, например.
Первая часть — согласен, уметь составить качественный тест-план не всякий сможет.

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

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

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

С одной стороны правильные слова про HR и глупый поиск на соотвествие и знание инструмента. С другой — никому не нужные сравнения/противопоставления QA и тестирования, свойственные начинающим тестировщикам. Кто-нибудь где-нибудь в своей жизни видел отдел QA (или SEPG) который бы занимался только процессами и при этом, в лучшем случае, не мешал бы работать людям? Утопия.

С одной стороны совершенно точное замечание про несовершенные, неумелые отделы тестирования, которые дискредитируют сами себя. С другой — какой-то мифический QA Director, который должен «взять отвественность за качество» на себя, отобрав его у простого руководителя отдела тестирования. Где вы таких директоров видели? Если такой есть — то имхо, это должен быть первый кандидат на увольнение. В худшем случае он будет мешать процессу «деливери», стоя во главе банды обезъян и не давая поставить главную печать на продукт. Ну а в лучшем случае на него все забьют.

Ну а вообще статья занятная. Было бы любопытно по всей этой тематике круглый стол устроить где-нить на SQA Days или другой конференции.
Спасибо. Я ждал этого комментария.
Давайте по порядку.
1) Сравнение QA/SEPG и тестирования — это тема, пожалуй, следующей статьи. Но отвечая на ваш вопрос — да, существует. Есть критерий применимости, где в небольших компаниях или в рамках одного-единственного проекта вряд ли нужен такой отдел. С другой стороны, в больших, зачастую распределённых компаниях, выпускающих мощный или критически важный софт наличие такого механизма необходимо. Да и Ваше замечание о том, что такой отдел «мешает» людям — это странно, т.к. деятельность его как раз таки направлена на то, чтобы эту жизнь улучшать.
2) QA менеджер, во-первых в мире существует, во вторых руководитель отдела тестирования и он — это два совершенно разных человека, которые занимаются совершенно разными вещами. Грубо говоря, только наличие QA и процессов, качество которых он курирует является залогом качества. А вовсе не хаотичная деятельность тестировщиков и разработчиков. Ради любопытства, если не читали, то почитайте мои первые статьи о том, как разрабатывается софт для авионики. Приплетать такого человека для тестирования сайта-визитки в рамках камерной «студии веб-дизайна», конечно же глупо.
3) Право вето среди отдела тестирования и у QA в мире существует, и оно не просто «мешает процессу деливери», а обеспечивает качество. Лучше затянуть поставку на два года (как в случае Boeing 787), чем выпустить потенциально опасный продукт на рынок. Но, опять-таки, все в рамках и масштабах проектов и установленных критериев качества (qulity gates), чтобы никто в проекте не стрелял по воробьям из пушки.
Сравнение QA/SEPG и тестирования — это тема, пожалуй, следующей статьи.

Позвольте дать совет. Сохраните свое время. Напишите лучше о чём-нибудь другом.

Да и Ваше замечание о том, что такой отдел «мешает» людям — это странно, т.к. деятельность его как раз таки направлена на то, чтобы эту жизнь улучшать.

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

Это конечно холиварная тема, именно поэтому и было бы интересно сделать круглый стол на эту тему на конференции.
Я не против, приглашайте, наверняка смогу найти время :)

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

Опять-таки, их моего опыта:
1) В области авионики люди, занимающие должности в QA проходили путь в десяток лет от через SW Engineer, и то, что они курировали, они обычно знали изнутри, и вполне могли дать совет, выходящий за рамки их должностных обязанностей. Вывод: качеством должны управлять эксперты, а не блюстители бюрократии и процессов.
2) Блюстители бюрократии и процессов так же могут приносить пользу. Так, например в моём опыте аутсорса это прекрасно работало для медицинских проектов (например било по рукам и направляло новые команды в новых проектов, используя как требования к процессам так и опыт предыдущих шишек, набитых за 20 лет работы), но совершенно не работало для всех остальных проектов и либо приносило головную боль, либо делалось для галочки, т.к. будучи несколько не самыми большими экспертами даже в абстрактных и высокоуровневых вещах, совершенно не адаптировалось.
По поводу (2) и (3) думаю что спорить бесполезно. Наверное вы правы.
Я не работал над авиоционным или медицинским софтом, не знаю как там устроено.

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

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

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

Право «вето» звучит, конечно, круто, но я ни разу в своей практике не встречал, чтобы инженер по тестированию мог не дать руководителю проекта выпустить релиз. Убедить, наверное, можно, но не запретить.
Я, если честно, не совсем понимаю, что такое «центром разработки должно быть как раз ПО», т.к. это самое ПО пишут и поддерживают реальные люди. Людям же свойственно ошибаться — на этапе оценок, составления требований, дизайна, кодирования, тестирования и развёртывания. Для обеспечения установленного качества и проверки критериев соответствия требованиям, стандартам, процессу и привлекаются тестировщики + QA, если он есть. В какой момент привлекать тестирование — по V-модели, по которой тестирование производится для всех этапов, либо по водопаду, где лишь после написания кода, либо использовать Agile/TDD — это дело выбора менеджера проекта.

О «вето»:
Право вето среди отдела тестирования и у QA в мире существует, и оно не просто «мешает процессу деливери», а обеспечивает качество. Лучше затянуть поставку на два года (как в случае Boeing 787), чем выпустить потенциально опасный продукт на рынок. Но, опять-таки, все в рамках и масштабах проектов и установленных критериев качества (qulity gates), чтобы никто в проекте не стрелял по воробьям из пушки.

Для того, чтобы оно работало, PM и QA должны установить «правила игры», в которых будет прописано, какией критерии будут блокирующими и mitigation plan для них.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.