Автотестирование и разработчики

Я разработчик и у нас есть JUnit тестирование, пишем тесты и тд. Вопрос: Зачем нам те же автотестировщики, если я к примеру могу сам написать тесты с помощью того же JUnit? Как я догадываюсь, у авто-тестировщиков более умный софт, который проверяет лучше либо там не 1 программа или библиотечка, а к примеру 5-7 с которыми нужно уметь работать. Либо есть конкретные ситуации, где например JUnit не проверит так же качественно, как написанная программа тестировщиком, которую он писал/создал для определенной ситуации, чтобы к примеру проверить детально.


Ответы (1 шт):

Автор решения: Roman Konoval

Причин несколько.

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

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

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

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

→ Ссылка