Тестирование ПО чаще всего ассоциируется с разработкой программных продуктов, причем обычно в контексте поддержки полного жизненного цикла ПО, от постановки задачи по созданию до завершения его использования. Менее известны — но не менее важны — вопросы тестирования информационных систем в процессе их внедрения и эксплуатации у конкретных заказчиков. Их актуальность была, в частности, хорошо видна на прошедшей в конце мая в Подмосковье конференции Microsoft DevCon 2014 — доклады по данной теме вызвали большой интерес аудитории. Своим опытом работы там поделился директор по развитию бизнеса компании Logrocon Владимир Туровцев, который ответил на наши вопросы.
Есть ли различия в проведении тестирования при разработке программных продуктов и при исследовании внедряемых систем?
Конечно, между этими видами тестирования есть много общего, в частности, тут применяются примерного один и тот же класс инструментов, проводятся как функциональные, так и нагрузочные исследования, но есть и серьезные различия, причем в плане как технологических аспектов, так и в организации процесса. Например, если в первом случае обычно проверяются только сами программы, то во втором — зачастую весь программно-аппаратный комплекс, развернутый на предприятии. Другой важной особенностью является то, что с точки зрения заказчика такие работы носят непрофильный для него и в какой-то степени разовый характер (все же серьезные системы внедряются не каждый день), и этот момент определяет то, что в данной сфере широко используются методы аутсорсинга, привлечения внешних компаний, специализирующихся на такого рода деятельности.
Чем же занимается ваша компания?
Мы занимается разработкой ПО, его тестированием, а также консалтингом в области организации процессов разработки ПО. Logrocon ориентируется на использование в своей работы инструментов и технологий Microsoft, недавно мы получили сертификат Gold ALM Partner, это высший статус партнера корпорации в сфере разработки и управления жизненным циклом приложений (ALM), который в России имеют всего четыре компании, включая нас. Менеджмент компании занимается этим ИТ-направлением уже 15 лет, мы долгое время работали в телекоммуникационной отрасли, где ИТ-системы всегда были критически важными для бизнеса и требования по их надежности и производительности были очень высоки. При этом телеком отличается крайне высокими темпами модернизации и ввода в действие новых решений, внедрение и обновление там идет постоянно, и очень важно, чтобы это процесс никак не мешал функционированию действующих систем, работающих в непрерывном круглосуточном режиме и почти всегда в режиме реального времени. Понятно, что роль тестирования здесь очень велика, тем более что разработкой часто занимается большое число команд и нужно проверять работоспособность объединенных результатов их труда. Однако постепенно тестирование становится очень актуально и в других бизнес-отраслях, в том числе в банковском секторе — сейчас клиенты Logrocon это не только ИТ-компании, в том числе разработчики программных продуктов и системные интеграторы, но и банки.
Вы сказали об использовании инструментов Microsoft. Значит ли это, что вы тестируете только системы, построенные на базе технологий и решений корпорации?
Нет, это не так. Мы можем использовать инструменты Microsoft для исследования совершенно разных программных платформ. Но другое дело, что в случае применения заказчиком технологий Microsoft тестирование может быть более глубоким, а главное — появляется больше возможностей для выдачи рекомендаций по устранению выявленных проблем или по оптимизации изучаемых систем. Собственно, выбор ALM-инструментов Microsoft в свое время определялся именно тем, что платформа Microsoft очень широко используется на корпоративном рынке и, применяя инструментарий корпорации, мы получали конкурентные преимущества по сравнению с теми, кто задействует другие инструменты, за счет более глубокого анализа и высокого качества наших услуг.
Да, Microsoft сегодня один из признанных игроков ALM-рынка, но еще десять лет назад компания не была в числе фаворитов. Вы не опасались тогда, что ставите не на лидера?
Да, уже тогда рынок средств управления жизненным циклом приложений, в том числе и тестирования, был уже достаточно сформировавшимся, зрелым. Там были (и есть) другие вендоры и специализированные поставщики, а Microsoft только собиралась начать восхождение к этому Олимпу. Но ее инструментарий уже тогда в существенной степени отвечал нашим задачам. В результате получилось, что развитие ALM-средств Microsoft шло как бы параллельно с ростом наших профессиональных потребностей. Если посмотреть за динамикой этих инструментов, то можно точно сказать, что от версии к версии они становились все мощнее и функциональнее. Возможно, более поздний старт в этом направлении сыграл компании на руку: она могла сосредоточиться на наиболее актуальных проблемах, используя самые передовые технологии и опыт пользователей.
Еще очень позитивный момент: поддержка обратной связи пользователей инструментария с Microsoft и разработчиками. В частности, существует Клуб директоров по разработке ПО на базе технологий Microsoft (я и несколько моих коллег из Logrocon в него входим), который не только обсуждает собственные проблемы и обменивается опытом, но и формулирует свои пожелания корпорации, которые реально ею учитываются — это полезно и эффективно как для нас, так и для наших клиентов.
Какие именно ALM-средства Microsoft вы используете?
Одним из ключевых направлений развития средства разработки Microsoft Visual Studio является именно развитие инструментов управления жизненным циклом ПО, в том числе тестирования. Собственно Visual Studio — это уже не просто некий отдельный инструмент, а интегрированная платформа разработки, включающая большое число инструментов и средств. Фактически эта система поставляется и используется в виде нескольких наборов компонентов, ориентированных на широкий круг задач и соответствующие роли специалистов. Если говорить о решаемых наших задачах, то мы применяем в основном вариант Visual Studio Ultimate, который включает функциональность Test Manager для собственно тестирования (функционального, нагрузочного, регрессионного) и управления процессом тестирования (от планирования до анализа результатов).
Но ключевым, интегрирующим, компонентом всего этого комплекса является Team Foundation Server (TFS), который служит, с одной стороны, для поддержки коллективной работы, а с другой — информационным хранилищем, содержащим все данные о проекте (в том числе, техническое задание, сценарии тестирования и результаты). Мне кажется, что достоинством средств Microsoft является как раз их высокий уровень интеграции и возможность выбора и использования именно тех инструментов, которые наиболее оптимальны для решения той или иной задачи исследования и тестирования ПО.
Надо также отметить, что TFS является настраиваемым инструментом. Через имеющиеся у него механизмы настройки, в том числе набора API, мы создаем собственные панели управления, которые позволяют автоматизировать процессы тестирования. Всегда можно быстро и просто создать новую форму нужного нам отчета. Более того, мы используем TFS для задач управления нашей компанией, например, управляем операционными и стратегическими задачами с помощью TFS, контролируем расходование рабочего времени с детализацией по проектам и задачам, а также сделали специальный модуль, с помощью которого ведется подбор кадров. Причем в таком нестандартном " применении TFS мы не одиноки — практика его использования для таких «не ИТ» задач известна и в других компаниях, особенно в проектной модели управления организацией. Свои программные разработки для TFS мы сейчас оформляем в виде отдельного «коробочного» программного продукта (add-on для TFS), который предлагаем своим клиентам.
Вернемся к проблемам ИТ-заказчиков. Насколько тема тестирования программных систем актуальна и востребована рынком? Есть ли достаточно хорошее ее понимание со стороны заказчиков?
Поговорка «пока гром не грянет, мужик не перекрестится» относится даже к самым передовым сферам деятельности человечества. Определенное отставание в понимании, скажем там, профилактики проблем есть всегда, важно, чтобы оно не было значительным. И все познается в сравнении. Мне кажется, что у нас этот разрыв в недооценке важности тестирования заметно больше, чем на Западе. И понятно почему: мы с некоторым запозданием приходили к пониманию критической важности ИТ для функционирования предприятий и к осознанию того, насколько важно снижение затрат на эксплуатацию ИТ-системы. К тому же многие и сегодня не до конца представляют возможности современных средств тестирования, а некоторые до сих пор и не знают об их существовании.
В конце
Кто сегодня является основным заказчиком на услуги тестирования?
По нашему опыту, можно выделить две основные группы. Первая категория — это крупная компания из числа лидеров рынка, преимущественного телекоммуникационного или банковского, для которых надежность ИТ — это основа их бизнеса. Модернизация, а значит и тестирование ПО для них — это постоянный процесс, поэтому у них, как правило, есть свои внутренние команды тестировщиков, но они также широко привлекают внешние организации, в том числе Logrocon.
Вторая группа клиентов — это разработчики ПО, у которые тоже есть собственные тестировщики, но этих ресурсов им не хватает. Однако тут есть своя специфика: часто таким заказчикам нужна помощь не только собственно в тестировании, но и консалтинг по организации процессов разработки и тестирования. Мы умеем не просто консультировать по организации процессов тестирования, основываясь на многолетнем опыте наших специалистов, но и сопровождаем внедрение рекомендаций, что редкость на рынке тестирования. То есть довольно часто оба этих аспекта решаются в рамках проекта, а порой есть запросы только на консалтинг и передачу опыта.
Еще вопрос, с которого, наверное, надо было начать разговор — что является целью тестировании? Только проверка работоспособности программного решения?
Проверка работоспособности, а точнее — соответствия ПО его спецификациям, — это обязательная, но не единственная, а порой и даже не главная задача. Несколько утрируя, можно сказать, что проверить работоспособность может почти каждый, а вот провести анализ системы — далеко не все — у нас есть необходимые компетенции для решения таких задач. Чаще всего заказчика интересуют узкие места системы, которые создают потенциальные, не очень заметные угрозы для надежной работы ПО.
Например, нагрузочное тестирование позволяет выявить такие узкие места, которые «расшивает» команда разработчиков. Но проблема заключается в том, что на самом деле с первых попыток это узкое место чаще всего не ликвидируется, а просто перемещается на другой уровень системы. То есть для полного устранения проблемы нужно провести несколько итераций «тестирование — разработка».
Использование опыта специалистов Logrocon позволяет заказчикам сконцентрироваться на главных вопросах своего бизнеса и получить качественные процессы и стабильный результат, не совершая многих типовых ошибок и экономя самый ценный ресурс в мире — время.