Понимание [закрытой] толпы

14
задан River 19 October 2017 в 04:10
поделиться

7 ответов

В идеальной команде Scrum тестировщики и разработчики являются частью команды, и тестирование должно происходить параллельно разработки, фазы перекрываются, а не последовательно (выполняются последовательно внутри спринта есть анти-паттерн, известный как Scrumerfall). И, кстати, вопреки некоторым мнениям, выраженным здесь, окончательная реализация Scrum создает истории DONE DONE, поэтому тестирование - включая IST, UAT - следует проводить во время спринта.

И нет, тестировщикам не нужно ждать, пока элементы невыполненной работы продукта (PBI) будут полностью реализованы, чтобы начать выполнять свою работу, они могут начать писать сценарии приемочных тестов, автоматизировать их (например, с помощью FitNess). ), настроить набор тестовых данных и т. д. (это займет некоторое время, особенно если бизнес сложный), как только начнется спринт.

Конечно, это требует очень тесного сотрудничества, и ранний выпуск интерфейсов или скелетов пользовательского интерфейса облегчит работу тестировщиков, но, тем не менее, тестировщикам не нужно ждать полной реализации PBI. И на самом деле приемочные тесты должны использоваться разработчиками как индикатор СОВЕРШЕННОСТИ («Я знаю, что я закончил, когда приемочные тесты пройдены») 1 .

Я не говорю, что это легко, но именно этим и занимаются зрелые (то есть бережливые) реализации Scrum и зрелые команды Scrum.

Я предлагаю прочитать Scrum And XP from the Trenches Хенрика Книберга, это очень хорошее практическое руководство.

1 Как пишет Мэри Поппендик, работа тестировщиков должна заключаться в предотвращении дефектов (существенно), а не в обнаружении дефектов (потерь).

14
ответ дан 1 December 2019 в 06:35
поделиться

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

Кроме того, разработчики сами могут (и обычно делают) писать модульные тесты, поэтому все, что доставляется в спринте, должно быть в довольно стабильном рабочем состоянии. Если новая функция наполовину готова, команда просто не должна ее предоставлять. Предполагается, что большие функции должны быть разделены на достаточно маленькие части, чтобы уместиться в одном спринте.

4
ответ дан 1 December 2019 в 06:35
поделиться

Вы определенно не хотите делать всю разработку в первой половине спринта и все тестирование во второй половине. Это просто меньший водопад.

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

Конец спринта может показаться немного суматошным, пока вы привыкаете к методологии. Разработчики будут чувствовать себя обремененными, поскольку они работают над остальным кодом и в то же время получают ошибки, которые должны исправить тестировщики. Тестировщики будут испытывать нетерпение, потому что видят, что конец спринта приближается, а код все еще не протестирован. Существует кривая обучения, и к ней нужно привыкнуть, бизнес должен знать об этом.

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

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

7
ответ дан 1 December 2019 в 06:35
поделиться

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

6
ответ дан 1 December 2019 в 06:35
поделиться

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

Только в конце концов, когда вы определили скорость работы команды (то есть, сколько историй можно разумно выполнить за спринт), вы можете начать оценивать даты и вещи для более крупных проектов

6
ответ дан 1 December 2019 в 06:35
поделиться

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

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

3
ответ дан 1 December 2019 в 06:35
поделиться

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

4
ответ дан 1 December 2019 в 06:35
поделиться