В дуэли между багами и разработчиками последние имеют право на выбор оружия. Как правило, у доброго молодца (красной девицы) есть три базовых варианта:
- коммерческий продукт (WinRunner, Rational Robot, SilkTest, TestComplete и др.)
- бесплатные и условно-бесплатные инструменты (freeware, shareware)
- собственные утилиты (написанные в ходе работы над проектом)
Рассмотрим недостатки и преимущества этих подходов.
Коммерческие продукты
Преимущества:
1. в автотестах можно использовать функциональность (модули, процедуры, куски кода), которая идет в поставке продукта. В случае, если для тестирования приложения необходимо задействовать подобные методы, этот код не придется писать самому.
2. как правило, такие инструменты поставляются со своей собственной средой разработки, которая предоставляет хорошие возможности для написания и отладки автотестов.
Недостатки:
1. стоимость таких продуктов зачастую превышает разумные пределы.
2. нет доступа к исходному коду. Если в инструменте обнаруживается баг, то его исправление силами вендора может занять существенное время. Нет возможности оперативно кастомизировать продукт под свои нужды.
3. зачастую коммерческие продукты навязывают свои подходы к тестированию приложений - в соответствии с той моделью, по которой построен данный инструмент. Такой подход не всегда приемлем для отдельно взятых приложений в силу их специфики, устоявшихся практик, человеческих и машинных ресурсов.
Собственные инструменты:
Преимущества:
1. иногда такие инструменты являются побочным результатом создания приложения, особенно в случае TDD.
2. о них известно “от и до”, их достаточно легко использовать.
3. доступен исходный код.
Недостатки:
1. функциональность таких утилит может быть недостаточной для организации автотестов.
2. создание и поддержка подобных инструментов может быть дорогостоящей.
3. результаты таких автотестов могут вызывать сомнения (этакая “вещь в себе”).
Бесплатные и условно-бесплатные инструменты:
Преимущества:
1. разумная стоимость владения. Цена shareware-продукта зачастую невысока. В случае freeware продукт предлагается бесплатно.
2. просьбы об исправлении багов и расширении функциональности, как правило, находят понимание и оперативный отклик - порой все так же бесплатно либо за скромную плату. В последнем случае выделенные деньги напрямую расходуются на решение тех задач, с которыми столкнулся пользователь инструмента, а не на “фишки”, которые ему не нужны.
3. зачастую у подобных утилит доступен исходный код.
Недостатки:
1. функциональность таких продуктов бывает недостаточной для решения поставленных задач.
2. риск остаться без поддержки со стороны разработчика продукта.
Безусловно, список преимуществ и недостатков представленных подходов далеко не полный и допускает исключения. Скажем, коммерческие продукты могут иметь разумную цену и быть достаточно гибкими, а собственные инструменты могут оказаться достаточно надежными. У коммерческого продукта может быть неприемлемо продолжительный период освоения, а условно-бесплатный продукт может навязывать свой язык программирования. Бывает и так, что бесплатный продукт оказывается настолько эффективным и удобным в использовании, что разводишь руками и думаешь, за что вендоры коммерческих продуктов хотят получить свои деньги.
В общем и целом, при выборе инструмента стоит принять во внимание все существующие факторы: специфику приложения и поставленные задачи, возможность и обоснованность интеграции различных инструментов в одной системе, квалификацию разработчиков и тестировщиков, планы на будущее, технические и денежные ресурсы, риски. Выбор в соответствии с контекстом будет наиболее эффективным.
Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.
Pingback : OpenQuality.ru | Expect.pm, Pexpect, empty | September 20, 2008
[…] удобнее воспользоваться perl-модулем Net::FTP. Выбор инструмента определяется той задачей, которая стоит перед […]