Когда программисты и тестеры объединяются
(В оригинале - When Programmers and Testers Collaborate)
Когда программисты и тестеры объединяются, происходит что-то волшебное. Меньше времени тратится на пинание баг-репортов по системе трекинга ошибок. Меньше времени убивается на выяснение того, ошибка это или новая функциональность. И при этом больше времени уходит на разработку качественного софта, удовлетворяющего требованиям заказчика. Для начала такого сотрудничества еще до начала кодирования есть много причин.
Тестеры могут помочь заказчику написать и автоматизировать приемочные тесты на языке их предметной области с использованием инструментов вроде FIT (Framework for Intergrated Tests, платформа для интегрированных тестов). Когда эти тесты программисты получат еще до начала написания кода, они могут попрактиковаться в разработке, ведомой тестами (Test Driven Development). Программисты запускают тесты, после чего пишут код так, чтобы тесты успешно проходили. Эти тесты могут стать частью набора регрессионных тестов. В случае подобного сотрудничества функциональные тесты оказываются написанными достаточно рано, оставляя время на тестирование граничных условий или же тестирование основных сценариев работы.
Можно пойти еще дальше. У меня как у тестера обычно есть много идей еще до того, как программисты начнут писать код. И когда я спрашиваю программистов о том, нет ли у них каких-нибудь идей, обычно они дают мне информацию, позволяющую лучше покрыть тестируемую функциональность или же избежать траты времени на ненужные тесты. Часто в ходе такого диалога удается предотвратить проблемы, потому что тестирование проясняет многое еще на этапе идей. Например, однажды мои тесты, отданные программисту, подразумевали, что должен работать нечеткий поиск. Однако программист был твердо уверен, что нужно реализовывать только поиск по целым словам. Нам пришлось встречаться с заказчиком и прояснять требования еще до начала кодирования. В результате дефект был предотвращен, что привело к значительной экономии времени.
Программисты могут помогать тестерам автоматизировать тесты. Программисты лучше знают практики кодирования и могут помочь написать стабильные тестовые сценарии, работающие для всей команды. Я часто видел, как автоматизация тестирования проваливалась лишь потому, что она была неудачно спроектирована. Тесты писались с целью протестировать слишком много, или же тестеры не до конца понимали технологию, чтобы писать тесты независимыми. Тестеры часто являются узким местом, поэтому в помощи от программистов есть смысл. Работа с тестерами с целью понять, что может быть протестировано на ранних стадиях, даст программистам возможность получить раннюю обратную связь, что в свою очередь поможет им написать более качественный и стабильный код.
Как только тестеры перестанут думать, что их задача – это лишь «сломать» ПО и найти ошибки в коде программистов, программисты перестанут думать, что тестеры здесь лишь чтобы доставить им проблемы. В результате все становятся более открытыми к сотрудничеству. Как только программисты осознают, что они отвечают за качество своего кода, тестирование станет естественным процессом, и команда вместе сможет автоматизировать больше регрессионных тестов. Так начинается магия успешной командной работы.
Автор оригинала - Janet Gregory