|
| ||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||
|
2006 г.
Качественный успехАртём Ваулин,Руководитель группы тестирования, КОРУС Консалтинг Рано или поздно (лучше рано, конечно) руководители всех уровней задумываются о том, как сделать их проект, направление, бизнес лучшим из лучших; как работать без авралов и выходных, но успевать все вовремя; как сократить затраты и увеличить прибыль; как повысить лояльность клиентов и сделать так, чтобы они рекомендовали вас своим друзьям, знакомым и коллегам. Существует множество различных способов для достижения этих целей. В рамках же данного монолога хотелось бы немного поговорить о КАЧЕСТВЕ. Не о каком-то абстрактном качестве из Большой Советской Энциклопедии (или из Модных Западных Стандартов), а о том реальном КАЧЕСТВЕ производимых, разрабатываемых и внедряемых нами продуктов и услуг, которое позволяет сделать эти самые продукты и услуги лучшими и, как следствие, приближает нас к заветным целям. Я попытаюсь рассмотреть два аспекта:
Но сначала буквально несколько слов о КАЧЕСТВЕ. Что же это собственно такое, какова цена качества и с помощью чего оно достигается? В области IT нет четкого определения качества. Каждая компания должна сама определить для себя, что понимается под качеством производимых ей продуктов или услуг. Вот, пожалуй, самые удачные определения качества, от которых можно отталкиваться.
Из чего же складывается цена этого самого КАЧЕСТВА?
То, с помощью чего достигается достойное качество, видно из перечисленных выше составляющих: превентивные меры и тестирование. Так что же выгоднее компании и Заказчику? Ошибки до отправки (когда они еще не приносят никаких убытков) или после (когда низкое качество продукта негативно влияет на бизнес Заказчика — и он несет убытки)? Об этом ниже. Как качественный продукт сможет помочь в достижении обозначенных выше целейИтак, каким же образом разработка качественного продукта сделает жизнь наших Заказчиков и, как следствие, нашу жизнь лучше?В качестве ответа на этот вопрос я вижу следующие возможности:
Как сделать продукт качественнымКак же нам добиться того, чтобы разрабатываемые и внедряемые продукты и услуги были качественными?Только формализованный, прозрачный, повторяемый и управляемый процесс тестирования на проектах позволит добиться всего того, о чем написано выше. Ниже лишь тезисно обозначу основные моменты такого процесса тестирования. I Необходимые изменения процесса тестирования на проектах (если они еще не реализованы)1. Персонал
Это чисто психологический момент — человек, создавший что-то (в нашем случае разработчики и консультанты) не склонен специально разрушать свои творения. А у тестировщиков работа такая! «Тестерам платят за то, что они приносят дурные вести»
2. Организация процесса тестирования
3. Документирование Процесс тестирования, как и любой другой процесс, обязательно должен быть документирован. Для этого должны выполняться:
4. Управление ошибками
II Виды проводимого тестирования1. Тестирование требований (документации) В целях экономии времени тестирование документации необходимо осуществлять еще на этапе ее разработки или сразу же после его завершения. При тестировании и анализе документации следует уделять внимание на следующие критерии качества требований:
Тестировщик, работающий с документацией, отвечает за техническую точность каждого ее слова. Он обязан произвести самую тщательную проверку ее соответствия реальной структуре и поведению программы. Необходимо обращать внимание на сложные и запутанные места текста. Они могут отражать неудачно спроектированные элементы самой программы. 2. Приемочное тестирование При разработке ТС исключительно важно включить в ТС приемочные тесты. Набор этих тестов заранее согласовывается с Заказчиком и выполняется им по завершении разработки, т.е после выкладки очередной версии (или после завершения очередного этапа). Если программа проходит приемочные тесты, значит работы по ТС выполнены и все дальнейшие изменения будут включаться только в следующий этап. Разработка и выполнение приемочных тестов позволит, во-первых, более глубоко понять требования Заказчика, во-вторых, улучшить качество разрабатываемых систем, в-третьих, формализовать отношения с Заказчиком на этапе сдачи и, в-четвертых, убедить Заказчика в полноте и качестве выполненных работ. Приемочные тесты также необходимо проводить и при передаче очередной версии программы разработчиками группе тестирования. При поступлении каждой новой версии тестировщики прежде всего проверяют, достаточно ли она стабильна. Если она «обрушивается» при малейшей провокации, то возиться с ней не стоит. Копии приемочных тестов можно передавать программистам, чтобы те проводили их сами и не сдавали программы раньше времени. Это позволит избежать возвратов тестировщиками неработающих программ — моментов, психологически не приятных для обеих сторон. Приемочные тесты должны быть короткими. В них должны проверяться только основные функции и основные данные. Если программа не пройдет даже такой тест, то с полной уверенностью можно утверждать, что эта версия никуда не годится. Ряд приемочных тестов можно автоматизировать. 3. Функциональное (ручное) тестирование Основной вид тестирования, направленный на проверку всех требований Заказчика. 4. Регрессионное (автоматизированное) тестирование Данный вид тестирования направлен на проверку общей стабильности программы при внесении в какие-либо ее компоненты изменений, исправлений, доработок и т.п. Один раз тщательно протестировать каждую область программы еще не достаточно — ее тестирование необходимо регулярно повторять. Программа постоянно меняется, возникают новые проблемы, повторно появляются новые ошибки. Регрессионное тестирование должно охватывать программу так же полно, как и первоначальное, однако, не требовать так же много времени. Поэтому все регрессионные тесты должны (по возможности) автоматизироваться. Прежде всего в набор регрессионных тестов включаются проверки всех недавних исправлений программы. Этот набор непостоянен, тесты включаются в него, затем какое-то время спустя удаляются, уступая место новым. Регрессионных тестов не должно быть слишком много — только необходимый минимум, полностью покрывающий выбранную область программы. Ими должны по возможности охватываться все аспекты выбранной области (подпрограммы, граничные условия и т.п.) и ситуации, чреватые сбоями и ошибками. 5. Тестирование производительности (нагрузочное тестирование, стрессовое тестирование) Тестирование производительности (Performance testing) — любое тестирование, при котором производится оценка характеристик производительности (таких как скорость работы, использование ресурсов и т.п.) и сравнение их с ожидаемыми. Нагрузочное тестирование (Load testing) — испытание системы под большой нагрузкой. При этом могут проверяться как функциональные характеристики (корректность работы под большой нагрузкой), так и характеристики производительности. Стресс-тестирование (Stress testing) — разновидность нагрузочного тестирования, испытание системы под большой пиковой нагрузкой (в противоположность большой продолжительной загрузке). III Возможная схема этапов разработки и тестированияВозможная схема этапов разработки и тестирования [ открыть крупнее ] IV Обязательные документы1. Регламент тестирования Целью регламента тестирования является:
2. План тестирования План тестирования разрабатывается один раз для каждого проекта (обычно его разработка начинается на ранних стадиях проекта). Во время выполнения проекта план тестирования корректируется, дополняется и углубляется по мере необходимости. Цель плана тестирования — обеспечить полноту процесса тестирования. План тестирования разрабатывается на основе технического задания — требований к продукту. В плане тестирования описываются способы, виды и критерии тестирования для всех требований, необходимые ресурсы и порядок выполнения тестирования. План тестирования согласуется со всеми ключевыми членами рабочей группы и утверждается менеджером проекта. 3. Спецификация проектирования тестов Этот документ определяет, как будет тестироваться каждая функция или группа функций программы. Разрабатывается каждый раз перед тестированием той или иной функциональности. Цель – усовершенствование и углубление подхода к тестированию функциональности, описание связи с конкретными тестами. Спецификации разрабатываются на основе следующих документов: план тестирования, техническое задание — требования к продукту. 4. Спецификация тестов Разрабатывается отдельно для тестирования каждой функциональности. Цель — дать полное определение тестов, определяемых спецификацией проектирования тестов. Спецификации тестов разрабатываются на основе следующих документов: план тестирования, техническое задание — требования к продукту, спецификация проектирования тестов. 5. Спецификация проектирования процедуры тестирования Цель — определить набор последовательных действий для полного тестирования определенного набора требований для определенного тестируемого элемента. Тестовая процедура определяет действия для выполнения набора тестовых спецификаций. Спецификация процедуры тестирования разрабатывается, если последовательность действий имеет какие-либо специфичные особенности, не описанные в плане тестирования. Спецификации процедуры тестирования разрабатываются на основе следующих документов: план тестирования, техническое задание — требования к продукту, спецификация проектирования тестов, спецификации тестов. 6. Отчеты тестирования Отчеты тестирования заполняются в процессе проведения тестирования. Целью отчетов тестирования является отслеживание состояния качества тестируемого программного продукта. V Количественная оценка процесса тестированияВ процессе тестирования собираются так называемые метрики, т.е. количественные оценки, позволяющие определить как качество разрабатываемого продукта, так и состояние выполнения работ. Вот лишь некоторые из них:
2. Тестирование производительности — стандартные метрики
— метрики аппаратного обеспечения
VI Возможности при использовании системы отслеживания проблем
VII Преимущества централизованной группы тестирования перед локальными группами тестирования (или специально назначенными для этого людьми) из числа проектной команды.Положительные стороны
Отрицательные стороны
|
|
CITForum © 1997–2025