Калайда В.Т., Романенко В.В. Технология разработки программного обеспечения (2007) (1095890), страница 38
Текст из файла (страница 38)
Группа испытаний в этом смысле должнабыть органом контроля деятельности других функциональныхгрупп, особенно групп разработки и выпуска документации, ипотому следует принять меры, предотвращающие причины разногласий между ними. Наиболее рациональная схема взаимодействия представлена на рис. 8.9, где группа испытаний входит в состав сектора компоновки и выпуска.245Организуя испытания программного изделия, необходимоиметь четкий ответ на вопрос: «где кончается процесс оценки иначинается процесс отладки программного изделия»? Преждевсего, следует ограничить деятельность испытателей, возложивна них только обязанность фиксировать факт наличия ошибки.Им нельзя разрешать диагностировать причины ошибок, и, более того, указывать точное место их возникновения.
Если непроводить в жизнь такое распределение труда, то никогда неудастся отделить задачи от обязанностей испытателей и разработчики будут уповать на то, что группа испытаний сама завершит отладку программ.Вице-президент отделаисследований и разработокПроектированиесистемыПериферийноеоборудованиеПрограммированиеизделияАппаратныесредстваКомпоновка ивыпускВыпуск документации;Обеспечение целостностипроекта;Анализ эксплуатационныххарактеристик;Испытание изделия;Проверка документации;Разработкастандартныхпроцедур;Рис. 8.9 — Организация взаимосвязи при проведении испытанийНеобходимо продумать вопрос, на кого следует возложить ответственность за компоновку программ в систему, особенно в условиях, когда в проекте участвует несколько фирмподрядчиков. Объединение функций компоновки и испытанийуменьшает число подразделений-участников проекта и не приводит к утрате объективности оценок.
При этом должно четковыполняться требование — на группе разработки лежит полнаяответственность за устранение обнаруживаемых ошибок.Типичный путь эволюции испытаний можно представитьследующим образом:246 Испытания не проводятся, разработчики сами отлажи-вают программные средства и выпускают их для распространения. Пользователи присылают много замечаний, указывающих на обилие ошибок, в организации выделяется автономная группа испытаний, которая не оказываетвлияние на проектирование. Деятельность группы испытаний становится столь активной, что руководитель группы разработки протестует, заявляя: «Как я могу уложиться в плановые сроки, если группа испытаний придирается к любой мелочи и не соглашается рекомендовать изделие квыпуску»? Тогда группа испытаний становится частьюгруппы разработки, и их совместная деятельность продолжается успешнее, т.к.
испытатели утвердили «независимый» стиль работы и не склонны допускать нарушения этой традиции. Руководители проекта и руководство фирмы осознают,что проблема испытаний требует профессиональногоподхода и что сотрудники группы испытаний могутиграть важную роль в процессах планирования ипроектирования изделий. Эта группа начинает постоянно участвовать в составлении планов и спецификаций. В результате вновь возникают трения, т.к. руководитель группы разработки часто нейтрализует предложения испытателей. «Если мы все будем делать так,как требуют испытатели, мы не выполним календарный план, и нам не хватит отпущенных ресурсов».Поэтому группа испытаний выделяется из группы разработки и становится самостоятельной организационной единицей.Независимо от места, которое занимает группа испытанийв проектной организации, следует не упускать из виду необходимость стимулирования работы ее сотрудников.
Ошибочножелание укомплектовать группу испытаний стажерами илилюдьми, не проявившими себя как разработчики. Испытания,проведенные этими людьми, несут больше вреда, чем простоотсутствие испытаний. Будет затрачена масса времени и сил наотладку самих тестов, общение между испытателями и разра-247ботчиками будет происходить на крайне низком уровне взаимодействия, и программный продукт получит крайне плохую репутацию среди потребителей. Только из хороших проектировщиков и программистов получаются хорошие испытатели. Особенно удачно использование системных программистов и специалистов по системному прикладному анализу.
Должны бытьпредусмотрены пути самостоятельного служебного роста длятаких людей.8.6.3 Организация испытаний в фазах исследованийи анализа осуществимостиВ фазе исследований деятельность группы испытанийдолжна предусматривать интенсивное общение с другими группами для решения вопросов о том, какие режимы испытанийследует установить, когда начнутся испытания класса B, какиеновые методики или средства должны быть привлечены дляэтих испытаний. Необходимо провести анализ, какие ресурсыпотребуются на каждой стадии испытаний, и дать оценку срокам выполнения и предполагаемым затратам.На этой стадии составляется предварительный бюджет,обычно этот документ составляет кто-либо из сотрудниковгруппы разработки на основании данных, поступивших отостальных групп.
Роль группы испытаний на этом этапе — наиболее объективно оценить свои предполагаемые затраты (бюджет). Основной алгоритм, лежащий в этой оценке, — стоимостьиспытаний пропорциональна стоимости разработки.В стадии анализа осуществимости группа обработки готовит соглашение о требованиях. В этот период группа испытаний имеет первую возможность повлиять на качество изделия,предъявляя свои материалы для выработки соглашения о требованиях. В процессе поиска компромиссных решений, пересмотра и утверждения этого документа утверждаются и необходимые уровни испытаний. Группа испытаний здесь играет активную роль, побуждая разработчиков к введению количественныххарактеристик в требования и цели.Соглашения о требованиях являются одновременно и планом разработки, они содержат довольно много сведений о путяхреализации проекта.
В этих соглашениях предусматривается248специальный раздел, в котором группа испытаний описываетсвой план проверок.В этой фазе группа испытаний особое внимание уделяеттем разделам соглашения о требованиях, где речь идет о внешних условиях, в которых должно работать программное изделие, об эргономических характеристиках и действующих ограничениях.На протяжении всей фазы анализа осуществимости группа испытаний изучает соглашение о требованиях и на основеэтого анализа составляет собственные планы (план разработкиспецификаций испытаний, установление начальных дат испытаний класса B и каждого цикла и др.).8.6.4 Организация испытаний в фазахконструирования и программированияСоставление плана испытаний является основной работой, которую выполняет группа испытаний в этой фазе.
Обязательным условием завершения этой работы является утверждение соглашения о требованиях, и поэтому ее окончание намечается на период фазового обзора.При составлении плана испытаний используется принципдекомпозиции планов. План испытаний является детализациейсоглашения о требованиях и содержит подробную информацию, достаточную для того, чтобы рецензенты смогли уловитьстепень соответствия программы испытаний класса B этому испытанию.
Создавая план испытаний, группа испытаний принимает все меры к тому, чтобы спланировать все виды работ —оборудование, программное обеспечение, расходные материалыи др.Фаза программирования начинается с момента появлениявнешней спецификации. Сразу после получения этого документа группа испытаний начинает анализировать его на соответствие соглашению о требованиях, сообщая группе разработкисвои замечания.После завершения работ над внешней спецификациейгруппа испытаний начинает готовить спецификацию испытаний.
Спецификация испытаний представляет собой декомпозицию плана испытаний и подробно описывает все тесты, кото-249рые предстоит выполнить, включая описание ожидаемых результатов. Поскольку спецификация испытаний в значительноймере зависит от содержания внешних спецификаций, то онаутверждается после утверждения последних.Основную часть работы группы в этой фазе составляетразработка тестовых (контрольных) примеров. При этом все тестовые примеры должны быть приготовлены до окончанияфазы программирования. Контрольные примеры становятся известны группе разработки перед самым началом фазы оценки.Успешное проведение приемочных испытаний позволяетруководству сделать пробный выпуск изделия для передачи вруки критически настроенного заказчика. Для этого группа испытаний должна определить набор контрольных примеров, составляющих программу приемных испытаний, как можно раньше.
Разработчики должны иметь возможность ознакомиться сэтими примерами.Ущерб от плохой организации работ, предшествующихиспытаниям класса B, может быть сравним с затратами (временными) на программирование.8.6.5 Организация испытаний в фазе оценкиНа этапе оценки уровень трудозатрат группы испытанийдостигает максимума. Первая обязанность группы состоит втом, чтобы установить готовность изделия к испытаниям классаB. Группа разработки нередко усваивает местнический взглядна свою роль, планируя сжатые сроки работ перед началом испытаний класса B.