Быстрая разработка vs классический QA. |
29.09.2008 19:03 |
Перевод: консультант проекта Ольга Захаренко (Агладзе) Статья была переведена из интереса к вопросу — как же должен действовать менеджер отдела тестирования, работающий по уже устоявшемуся процессу тестирования с полным объемом документации, когда он сталкивается на большой дороге с XP проектом. Я встретилась с этой проблемой в качестве менеджера отдела тестирования, и первым моим намерением было — категорически отказаться тестировать такой проект. Тем не менее я верю, что компромисс вполне может быть найден, поэтому мне хотелось сделать эту статью доступной для обсуждения на форуме. Better Software Lightweight Development. Heavyweight QA.Быстрая разработка vs классический QA.Элизабет Хендриксон (Elisabeth Hendrickson) Элизабет является основателем и президентом фирмы Quality Tree Software, Inc. Вместе со своей компанией она предлагает тренинги, консультантирование и услуги в области контроля качества программного обеспечения и тестирования программ. За 15 лет работы в ведущих компаниях, разрабатывающих программное обеспечение, Элизабет видела программы — и в том числе качественные программы — в огромном количестве. Она работала тестировщиком, инженером автоматизации тестирования, техническим писателем, программистом, инженером службы поддержки, системным администратором, и менеджером (иногда одновременно). Как обладатель многих наград за свои статьи и работы, Элизабет имеет большое число публикаций и часто выступает на конференциях по управлению разработкой программного обеспечения. Вы можете узнать больше о ее идеях в области качества и тестирования, посетив сайт www.qualitytree.com. http://www.qualitytree.com/services/resume.html Сценарий.Вы — менеджер команды разработчиков в организации, которая практикует XP. Вы пытаетесь убедить QA менеджера использовать для вашего проекта облегченную процедуру тестирования по методологии Agile, в то время, как он настаивает на выполнении работы с использованием все той же классической документации. По его мнению, тесты должны планироваться на основе спецификации, а также должны детально и точно документироваться. Для регрессионного тестирования должны использоваться все те же привычные ему скрипты, записанные через пользовательский интерфейс. Что еще хуже, QA менеджер утверждает, что ему совершенно необходима детальная спецификация еще до того, как он начнет хотя бы думать о тестировании. Он не делится с вами информацией о видах тестов, которые он намерен выполнять на вашем проекте, и он не желает, чтобы сотрудники его отдела участвовали в раннем тестировании продукта наравне с разработчиками. В результате тестировщики QA отдела больше мешают, чем помогают гибкой работе всей команды проекта. Как вы можете его убедить, что XP методология — это новый стиль работы для всех, не только для разработчиков, но и для тестировщиков? Решение.XP — облегченная и четко организованная методология производства программ. Команды разработчиков, принявшие XP в качестве методологии разработки, наблюдают резкие изменения в качестве кода, который отправляется в отдел тестирования. В результате, многие из практик, которые тестировщики применяют для достижения уверенности в качестве продукта, оказываются лишними по отношению к коду, произведенному в XP команде. Однако стоит отметить здесь, что не все команды разработчиков, которые утверждают, что они работают по XP методологии, в самом деле ей следуют. К примеру, команда использует неформальные и не такие технологичные методы сбора информации, но не практикует модульное тестирование или частую сборку продукта, на самом деле не следует правилам XP. (Обратитесь на сайт www.stickyminds.com/bettersoftware для дополнительной информации по XP). Так что будьте честны перед собой. Вы и в самом деле практикуете XP методологию? Предположим, что вы действительно работаете по XP методологии и ясно видите пользу от парного программирования, от разработки, управляемой тестами, и от частых сборок продукта. Вероятно, ваш отдел QA также видит разницу в качестве продукта. Это и есть исходный пункт для начала разговора с вашим упрямым менеджером: «В последнее время в нашей команде мы ведем разработку иначе. Вы заметили какие-либо изменения?» Теперь, когда вы начали разговор, вы можете попробовать повлиять на образ действий QA менеджера. И первым шагом в этом будет попытка понять, почему он работает так, а не иначе. Осмыслите проблемы, на решение которых направлены практики отдела QA. Почему же отдел тестирования работает так, как он работает? Не предполагайте, что ответ известен заранее. Спросите. Рассмотрите каждую из практик отдела, которую вы хотели бы изменить и открыто обсудите ее с QA менеджером. Поднимите вопрос о том, почему отдел нуждается в той или иной практике. «Открыто» означает — задавайте вопросы типа: «Расскажите мне больше о регрессионном тестировании. Что является триггером, сигналом к выполнению всего комплекта регрессионных тестов в вашем отделе? Какие проблемы вы пытаетесь найти, применяя регрессионное тестирование?». Старайтесь избегать формулировки вопросов в стиле: «Зачем нам вообще регрессионное тестирование? Мы же практикуем XP!» Ваша задача — открытое обсуждение проблемы, а не желание заставить QA менеджера занять круговую оборону. Когда вы поймете, почему в отделе практикуется тот или иной подход, вы сможете сместить акцент разговора:
Каковы затраты? А прибыли? Определитесь с цифрами.Если в фирме исторически закрепилась методология, за которую воюет QA менеджер, одной дискуссии будет недостаточно, чтобы наступили перемены. Чтобы пойти дальше, рассмотрите расходы и прибыли от каждой практики, которую вы считаете более не нужной в вашем проекте. Для наглядности сделайте график. Подсчет расходов относительно прост — отследите, сколько часов тратится на выполнение задач, сопровождающих тестирование — на документацию тестов, на сопровождение пакета GUI скриптов для регрессионных тестов, и так далее. Можно провести расчеты в часах, или привести все к стоимости человеко-часа. Затем подсчитайте прибыли. Некоторые из прибылей будут неосязаемыми в денежном или временном выражении — например, улучшение отношений между отделами. Другие могут оказаться измеримыми в большей степени, выраженными, например, в терминах статистики дефектов или сэкономленных часах рабочего времени. Для получения дополнительных данных вы можете поинтересоваться:
Поощряйте коллективное обсуждение.Идея «независимой» команды тестировщиков в том, чтобы иметь беспристрастную группу для контроля качества продукта, поставляемого разработчиками. К сожалению, это противоречит стилю совместной работы группы XP разработчиков. Найдите пути, где ваши команды смогут работать вместе. Например, если тестировщики независимой группы все еще находят много проблем в переданном им продукте, поинтересуйтесь у каждого — у тестировщиков, программистов, менеджеров, группы поддержки продукта — как они себе представляют, что нужно сделать для идентификации проблем на возможно более ранней стадии разработки: «Это прекрасно, что мы нашли эту проблему до того, как мы отправили нашу программу клиенту. Что мы можем предпринять теперь, чтобы обнаруживать подобные ошибки как можно раньше?». Осторожно — эта тема может стать хорошим поводом, чтобы припомнить старые ошибки. Старайтесь держать обсуждение сфокусированным на будущих проблемах, а не на том, что должно было произойти в прошлом. Итак, работайте с командой, извлекая уроки из полученного опыта, и используйте этот опыт в будущем. Вы легко можете это сделать — что может быть проще, чем набор стикеров, помещенных на доску в доступном месте или же общедоступная система wiki. Отметим, что название для обсуждаемой темы вроде текста «Тестировщики обязаны проверять NULL значения» будет разделять программистов и тестировщиков, потому что содержит в себе подспудный упрек. Замените его на что-нибудь вроде «Проверки NULL значений» — программисты и тестеры могут работать над такими тестами совместно. Дополнительное преимущество создания списка таких обсуждений — если он используется чаще, чем полная тестовая документация, то может в конечном итоге заменить ее в качестве источника тестов. Измеряйте изменения.Если QA менеджер сопротивляется изменениям, потому что он мыслит по-другому, нежели программисты при написании кода, проверьте метрики. Если у вас есть данные из системы учета проблем, вы могли бы посчитать степень воздействия XP методики. Сравните степень тяжести количества багов, найденных тестировщиками в XP и в не-XP проектах. Обратитесь к другим метрикам, таким, как время на сборку продукта, число выпущенных версий с исправлениями, или патчей, число жалоб заказчиков. Если вы можете показать, что есть измеримая разница между качеством кода до и после применения XP, это наглядно продемонстрирует, что в вашем процессе создания программного продукта действительно есть фундаментальные изменения. Это поможет вам аргументированно показать, что необходимы не менее серьезные изменения в процессе тестирования программного продукта. Будьте открыты в обсуждении того, каким этот сдвиг мог бы быть. Вместо того, чтобы говорить QA менеджеру, как ему следует делать свою работу, задавайте ему вопросы типа: «Что это будет означать для тестеров, если разработчики будут находить и, более того, предупреждать появление ошибок до того, как тестеры даже увидят продукт?» Будьте готовы к компромиссу.Увы... ваш упрямый QA менеджер по-прежнему не уверен. Он все так же предпочитает делать работу его способом, в то время, как вы хотите, чтобы он выполнял ее вашим способом. Тогда — ищите компромис. Возможно, вы сможете договориться об объеме документации, который подходил бы вам обоим. Возможно, вы сможете подсчитать, как облегчить тестирование пользовательского интерфейса, используя промышленное средство автоматического тестирования, так что QA менеджер сможет сохранить стиль автоматизации, который он предпочитает, без необходимости тратить слишком много времени на поддержку скриптов в актуальном состоянии. И помните - точно так же, как вы хотели бы, чтобы ваш QA менеджер действовал в большей степени в вашем стиле, так и он оценит, если вы будете проявлять больше гибкости. Примечания.1. Перевод терминов «QA Manager» и «QA Department». Как любезно пояснила Элизабет, в США большинство фирм-производителей программного 2. Русская терминология, касающаяся разработки программного обеспечения по правилам экстремального программирования (далее в тексте — XP), взята с сайта http://xprogramming.ru/. 3. Термин «Agile». 4. Wiki — общедоступная web-ориентированная система для общения группы людей, которая позволяет каждому внести свой вклад в обсуждение той или иной проблемы. Подробности могут быть найдены на сайте http://www.wiki.org. Ссылки на Интернет-ресурсы, использованные при переводе: http://stickyminds.com/bettersoftware Tags: |