Как тестировщик должен взаимодействовать с программистом? Каковы их отношения?
Тестировщик с программистом должен общаться с самого начала процесса разработки продукта. Чем раньше они начинают взаимодействие, тем быстрее они продвигаются, тем лучше складывается их дальнейшая работа.
Но здесь надо учитывать то, что программист и тестировщик по-разному думают.
У программиста свой подход к восприятию программы – он, как правило, сосредотачивается на одном модуле программы, на ее куске. Очень часто одну программу пишут несколько кодеров, каждый из которых разрабатывает свой участок кода, свой модуль.
Тестировщик же, как правило, для одного продукта один. Он сосредотачивается на всей системе в целом. Он видит систему целиком лучше, чем отдельные куски и компоненты. Он видит систему как взаимосвязь между ее компонентами.
Обычно соотношение между количеством программистов и тестировщиков два к одному. Т.е. на двух программистов приходится один тестировщик.
Программист имеет своё представление о работе программы, и оно может быть неверным. Возможны ошибки в том, как он понимает работу, как понимает должное функционирование программы. Программист тратит много энергии на то, чтобы понять, как работает система.
Тестировщик систему в целом знает лучше, поэтому он может помочь программисту выявить ошибки, которые связаны с недопониманием программистом системы.
Особенность программиста еще в том, что он не любит рутину. Он всё пытается автоматизировать. Ему не нравится ручная работа, он пытается написать свой доморощенный кусок кода, который автоматизирует проверку. Но автоматизация далеко не всегда хороша!
Тестировщик же таким комплексом не обременен.
В начале процесса тестирования и взаимодействия с программистом, тестировщику следует обращать внимание только на важные, действительно серьезные баги. Не надо обращать внимание на мелкие дефекты, они могут изменяться от версии к версии. Для начала система должна работать стабильно на своих основных функциях, т.е. в первую очередь надо обеспечить работоспособность
ключевых функций.
Тестировщику не советуют быть друзьями с программистом. Дело вот в чем – когда программист твой друг, твой знакомый, то ты ему доверяешь, как правило. Возникает такой соблазн – спросить у программиста исправил ли он дефект, не проверяя, или менее критично проверяя его работу.
Это может сильно мешать работе. Поэтому дружить с программистами можно, но чтобы это не мешало вашей работе. Надо отвлечься от персоны программиста, а сосредоточиться на продукте. При регистрации дефектов также никогда не надо переходить на личности, не надо концентрироваться на людях, надо сосредоточиться на коде программы, на ошибках.
Важная ошибка, которая часто допускается в небольших компаниях – когда программиста берут на должность тестировщика.
Возможно, программист не слишком опытен, или только закончил институт. Этого программиста для испытания сначала берут на должность тестировщика.
«Для начала побудешь тестировщиком, а потом посмотрим, как будешь работать – сделаем тебя программистом».
Программист идёт в надежде вырасти до должности своей специальности. Но это оченьбольшая ошибка, т.к. тестировщик из него вряд ли получится, а программист будет загублен.
Тестировщик из него не получится, т.к. программист и тестировщик – это психологически 2 разных типажа людей. Когда таких программистов берут на должность тестировщика, и возникают мифы, что «тестировщик – это недоделанный программист». На самом деле, это не так. Это два разных типажа, это две разных должности, которые работают в различных
отделах.
Психологически тестировщик мыслит критически. Он сосредоточен на том, чтобы найти ошибки, чтобы покритиковать, поломать систему, разрушить, свалить программу. Для него – это задача №1. Он доволен и радуется, когда ему удалось сломать программу.
Программист же мыслит созидательно. Его задача – создать рабочеспособный вариант программы. Если не работает какая-то мелкая функция или есть ошибка, он мало внимания на это обращает – «главное чтобы программа работала». Поэтому тестировщик, как правило, из программиста
получается плохой.
Хороший тестировщик должен мыслить:
1)Критически – для того, чтобы обнаружить ошибки.
2)Технически – понимать технологии, понимать, как функционирует программа на техническом уровне.