Это просто шикарно! Спасибо!
От себя добавлю, что упираемся в достаточно распространенные проблемы всех новичков:
- тестирование - лучшее для входа в IT;
- тестирование - это просто;
- тестирование - это не про технические знания;
- тестирование - это ... *добавить своё*
Идеальное вхождение в тестирование как мне кажется, может выглядеть так: (при условии большого количества времени и серьезного подхода к обучению)
- Информатика (что такое информация, сообщение, язык, зачем и что это нужно);
- Архитектура вычислительных систем/компьютера ( надо знать как работает инструмент внутри);
- Компьютерные сети (то, что поможет в понимании работы не монолитных приложений);
- Web-технологии( устройство браузера, работа с html/css/js/dom/ etc.)
- Операционные системы и оболочки ( важные знания по windows/*nix и остальным, если нужно будет)
- Технологии разработки ПО (понимание ЖЦПО и процессов)
- Тестирование. Фундаментальные теории.
- Программирование. Теория + практика.
Практика программирования должна быть от 1 года для того, чтобы:
- понимать разработку ПО;
- понимать "язык" разработки;
- тестирование - деструктивный процесс. И он значительно сложнее, чем разработка - процесс созидания;
Таким образом, после такого набора теории и хорошей практики идет выбор:
- Автоматизация;
- Мануал (я бы больше сказал, работа с процессами, коллективом, менеджерские моменты)
Деление настолько глупое, что так нельзя. Однако для новичков пусть будет.
Моё конечное мнение: тестирование систем стоит после разработки систем. И в тестировщики должны выходить люди с хорошим техническим бэкграундом.
Это целая пачка очень интересных вопросов. Которые, сразу должен признать, больше по тестированию, а не автоматизации.
- Времена меняются. Программы без UI "со входом и выходом", алфавитно-цифровым, — классика программ и целая куча до сих пор существующих систем, — это совсем не то что современные программы для планшетов. Большинство книг по тестированию и техник формального тестирования были сделаны для первых.
- 6-12 лет назад "войти в тестирование" правда было куда как проще. Я видел, я знаю.
- Зная сколько того чего знают синьор разработчики не надо знать тестировщикам, легко поверить, и даже обосновать, что войти в тестирование попроще.
- Penetration testing это совсем не то что UI автоматизация. И database testing. И ещё и ещё.
- UX testing или User A/B testing это не REST API автоматизация. Про последнюю Иван Катунов правильно рассказывал что она как раз ближе к формальным техникам. А вот для UX/User testing нужны другие знания, навыки, и умения в вопросы и ответы.
- User testing проводится как раз потому что люди обученные действуют с программами не так как необученные, а необученных пользователей огромные массы. Одно из исследований, к которому я был краем причастен, показало что на экране, который у обученных никаких вопросов и проблем не вызывал, "люди со стороны" могли тупить минуту или больше.
- Классик тестирования Канер делал доклад о том что тестирование это "социальная наука" (кто сталкивался с тем насколько причудливы бывают пожелания клиентов, и как сложно им бывает объяснить реалии проекта, или хотя бы слышал такие истории, может понять).
- Ко мне недавно обращалась практикантка по поводу тестового задания с веб-формой. Формальные техники ей рассказали, про классы эквивалентности и пр. — но чего применять к веб-форме это уже другой вопрос.
- Докладчик Гейзенбага 2019 Питер и инструктор по тестированию с мировой известностью Майкл Болтон может много рассказать что тестирование это не обязательно программирование и технические навыки. Он вообще начинает с того что программирование и тестирование это разные способы думать: "как заставить это работать" и "как это может не работать" + "что может пойти не так",
- Тестирование не деструктивный процесс. Тестировщик тоже, со всей командой, получает денег "от удовлетворения заказчика", а не просто за то что что-то там поломал. Не все мои проекты дошли до релизов, но мне никогда не платили за то "чтобы оно вообще не вышло".
- Тестирование может начинаться со спецификации, оно не обязательно идёт после разработки.
- Если у вас попался очень специфический домен, какая-то сложная аппаратура для специфической области, то человек, разбирающийся в домене, может быть значительно полезнее человека, разбирающегося в формальных техниках тестирования.
_______
Пишу не спора ради, а представления известных мне реалий и точек зрения для. В тестировании специализированных embedded систем и приложений с высокой математикой, высоконагруженных, высокоточных и пр. — действительно нужны люди с хорошим техническим багажом. Но давление сэкономить и нанять людей без такого багажа на рынке очень даже есть, вопросы типа "мне сказали учить ЯП и автоматизировать, что мне делать?" я вижу не только у нас, я их из США в некоторых местах вижу, и не "войти в айти" ради, а "босс решил".
_______
Возвращаясь к автоматизации:
- всего ею не охватишь, в том числе и всего тестирования, про это тоже спрашивают на собеседованиях
- знания, подходы— всё имеет свои ограничения. Хорошо понимать ограничения того чем занимаешься
- у массы явлений есть обратная сторона, Не забывайте что пользователи живые люди, часто нетехнические. Намедни читал историю о том что был низкий conversion rate емнип в Индонезии. Провели исследование. Поле Surname / Фамилия было обязательным, а у них там у значительной части населения не было фамилий. Ну вот "так можно". Для расширения кругозора по похожим темам рекомендуется поиск по Falsehoods programmers believe ...