Комментарии 4
Если ты написал код, ты понимаешь, как он должен работать, можешь быстро проверить базовые сценарии и выявить очевидные ошибки.
Нет.
Ну, не совсем.
Тестировать код и тестировать приложение — это разное тестирование, их природно невозможно смешивать. В одном человеке преобладает или одно умение, или второе, поэтому у нас есть в принципе разные професии.
Хорошо протестированный программистом код вообще не означает, что приложение будет работать как надо. Это природное ограничение, оно связано с тем, что программист решает отдельные задачи, а не весь проект — условно делает отдельные колёса, а не весь транспорт. Можно исключительно хорошо протестировать отдельное колесо, можно протестировать его базово, но много ли в этом смысла, если нам надо, чтобы вся машина ехала и выполняла общие задачи этого еханья?
Вы правильно подразумеваете, что сделанное надо протестировать хотя бы в общем, но для этого у программиста заранее должно быть установлено более общее, широкое видение проекта и ответственность «за проект», а не за «отдельное колесо». Обычно такое видение есть у менеджеров (СТО по-вашему) и не всегда, но бывает у тестировщиков, которые воспринимают проект более общее, потому что обобщающе воспринимают требования, тогда как простой «установщик колёс» от такой ответственности прячется. Логично же.
Многие люди, кто даже давно работают в ИТ, действительно иногда считают, что тестировщики — это такие странные программисты, которые не пишут код сами, а только тестируют чужой.
Средний программист а) живет в мифологии того, что всё то, что шаблонизировано — управляемо, и б) слабо понимает, что значит «тестировать приложение» и чем/как занимаются тестировщики. Он видит только репорты о дефектах и логично подразумевает, что это смысл их работы (простая логика же, уровня «пчела → мёд»), а могли бы заниматься тем, что интересно самим программистам — тестировать их интересный код…
Если сильно обобщать, то упомянутые тестировщики тестируют приложение, а не чужой код. Уразуметь эту разницу большинство программистов начального или среднего уровня неспособны и (усредненно) обстоятельства их к этому не принуждают. Большинство тестировщиков действуют так же тупо, но это эффективное поведение, поэтому таким оно будет всегда.
Так что я решил собрать аргументы и объяснить, почему самотестирование – важная часть рутины разработчика.
разработчик говорит вам: "Я все протестировал! Багов нет.". Что дальше?
Отвечают за это QA, потому что именно они знают, какие задачи готовы, где нет проблем и что можно безопасно выкатывать
Вы задачи разрабатываете на коленке? Все что готово к релизу, а что нет видно в соответствующих программах, например, Jira и подобных. Решение о том, что выкатывать, а что нет, так то принимается ДО регрессионных тестов, до релиза.
Сомнительные у вас QA процессы
А зарплата у тестировщика то соответствует уровню возложенных на них задач, которые не относятся к их сфере никаким образом?

Сам свой код и тестируй: кто [на самом деле] должен искать баги