Человек несовершенен. Не исключено, что придётся столкнуться с людьми, которые не желают верить в существование проблем или дают рекомендации на основе неполной информации. Спесь, как и застенчивость, утомление, истощение сил или личные проблемы могут стать причиной разных трудностей. Поддерживая работу над проектом в нужном русле, приходится иметь дело не только с технологиями, но и с человеческими недостатками. Изучите сильные и слабые черты характера каждого участника группы и обязательно руководствуйтесь этими сведениями, принимая решения.
Глава 13
Бета-тестирование
Бета-тестирование — это процесс проверки ПО внешними силами. В начале программы бета-тестирования новое ПО рассылается реальным или потенциальным заказчикам (бета-тестерам) для изучения, оценки и предоставления отзыва о его работе. Задача — получить от бета-тестеров объективную оценку возможностей и качества ПО.
Бета-тестирование позволяет получить ценные сведения о готовности ПО, прежде чем оно попадает к заказчикам. Программы бета-тестирования являются решающим фактором успеха в начале развития компаний, когда объём ресурсов, выделенных под проекты, ограничен. Бета-тестирование, как никакой другой способ, позволяет эффективно организовать тестирование программы. Оно не только расширяет возможности группы разработчиков в сфере контроля качества, но и обеспечивает поступление из внешнего мира объективных и достоверных отзывов о возможностях вашего ПО.
С другой стороны, плохо проведённое бета-тестирование означает, что не только разработчики, но и бета-тестеры лишь зря потратили на него своё время. В этой главе мы обсудим ключевые аспекты проведения хорошей программы бета-тестирования и способы улучшения программных продуктов с помощью бета-тестирования.
Ценность бета-тестирования
Прежде чем говорить о способах проведения хорошего бета-тестирования, обсудим, в чём вообще его польза. Не понимая ценности бета-тестирования или не веря в её существование, вы никогда не выделите достаточно времени и средств, чтобы провести его на должном уровне. Вот самые значительные аспекты пользы от бета-тестирования:
• Проверка ПО в условиях реального мира
Независимо от того, насколько хорошо проведено внутреннее тестирование, воспроизвести в полном объёме все испытания, проводимые многочисленными бета-тестерами, было бы чрезвычайно сложно (если такая задача вообще выполнима). Если вы не ошиблись с подбором бета-тестеров, они помогут проверить работу новой программы на широком спектре вычислительных платформ и в самых разных ситуациях, все разнообразие которых вы скорее всего никогда не смогли бы охватить. Поскольку бета-тестирование выполняется реальными пользователями в реальных условиях, они часто обнаруживают такие ошибки, которые никогда бы не были найдены без их помощи.
Хорошие бета-тестеры позволяют проверить готовность ПО к использованию прежде, чем оно будет отправлено заказчику. Эта информация сама по себе уже стоит усилий, затраченных на проведение бета-тестирования;
• Оценка работы ПО
Второй аспект пользы бета-тестирования — это получение отзывов о качестве функций, о производительности и о качестве пользовательского интерфейса ПО. Поскольку бета-тестеры работают с программой в самых разных условиях, они лучше всего смогут обеспечить вас информацией о пользовательских потребностях, симпатиях и антипатиях. Кроме того, они подскажут вам массу новых идей. Хотя на данном этапе вносить существенные изменения в программу не желательно, эти идеи послужат превосходной отправной точкой для работы над следующим выпуском;
• Помощь в маркетинге
Бета-тестирование позволяет сделать программу более заметной на рынке и повысить доверие к ней, что будет вовсе не лишним для маркетинговой политики нового продукта. Бета-тестеры, получившие положительное впечатление от работы с новой программой, — отличный источник материалов для пресс-релизов и рекламных каталогов. Они также пропагандируют вашу программу в данной отрасли, поскольку склонны обсуждать, рекомендовать и высказываться за использование программы как в своих фирмах, так и публично. Бета-тестеры также распространяют слухи о новой программе, что особенно ценно для её презентации и при выходе на рынок.
Однако от плохо организованной программы бета-тестирования вряд ли стоит ожидать помощи в маркетинге и раскрутке новой программы. Нужно тесно взаимодействовать с бета-тестерами, идти навстречу их нуждам и оказывать им всестороннюю поддержку. Кроме того, необходимо дать бета-тестерам почувствовать, что вместе с разработчиками они являются единой командой. Чем больше усилий вложено в бета-тестирование, тем больше шансов получить от него пользу.
• Дополнительная рабочая сила
Один из главных аспектов бета-тестирования — возможность увеличить число работающих над проектом. При реализации как начальных, так и крупномасштабных проектов, программы бета-тестирования обеспечивают изрядное количество дополнительной рабочей силы, которая обошлась бы в сотни тысяч или даже миллионы долларов при найме по контракту или иным способом. В следующий раз, когда вы задумаетесь над вопросом, нужна ли вам программа бета-тестирования, проведите нехитрый расчёт. Умножьте число бета-тестеров на время, которое тратит каждый из них на испытания ПО, умножьте результат на размер почасовой оплаты труда наёмных тестировщиков и получите денежное выражение ценности бета-тестирования.
Самая распространённая ошибка при проведении бета-тестирования
В том, что результаты бета-тестирования становятся определяющими при формулировании основных требований к программе. Не следует использовать программу бета-тестирования для поиска функций, которые должны быть реализованы в программе, чтобы обеспечить её успех. Так подбирать функции уже слишком поздно, их нужно было определить на этапе формулирования требований и коммерческого анализа программы (см. главу 9). Если стало ясно, что программа обречена на провал на рынке, не старайтесь впихнуть новые функции в продукт, который вот-вот будет закончен. Возьмите тайм-аут и обсудите возможные альтернативы: может, лучше начать всё с самого начала, составив новый набор требований и план?
Помните: цель программы бета-тестирования — испытание и усовершенствование продукта, поиск идей на будущее и помощь в продвижении продукта на рынке. Во время работы с бета-версией идёт сбор отзывов о реализации функций, возможных улучшениях, практичности и качестве программы. Кое-что из этого ещё можно изменить, но для добавления новых сложных функций этот период совершенно не годится.
Типы программ бета-тестирования
Программа бета-тестирования обычно состоит из нескольких фаз. Каждая последующая фаза включает в себя все большую группу пользователей, и результатом её является все более сложный и стабильный продукт. Несмотря на отсутствие формального определения фаз программы бета-тестирования, принятого в отрасли, приведённое ниже описание поможет составить общее представление о каждой фазе.
• Фаза 1
К началу этой фазы должно быть написано 60-80% кода. Задача этой фазы — как можно скорее передать основные функции программы для испытаний лучшим бета-тестерам.
Допустим, первую фазу решено начать уже после завершения основных функции. В программе пока нет поддержки печати, реализована лишь малая часть справочной системы, нет сложных алгоритмов сортировки, фильтрации и функций пользовательского интерфейса. Однако продукт уже пригоден для работы, и отзывы окажут существенную помощь при тестировании и доводке его функций.
На этом этапе ещё есть время для внесения небольших, но важных изменений. Это вполне обычная практика, в ней нет ничего неожиданного. Необходим подходящий момент для улучшения ПО на основе отзывов клиентов и углублённого понимания продукта. Однако нужно быть уверенным, что изменения не нарушат плана и не снизят качества продукта. Если такой уверенности нет, подумайте, перевесит ли выгода от реализации новых функций затраты на расширение плана.