Тестирование программного обеспечения

  Данный вид ИТ-аутсорсинга оформился в самостоятельное направление и получил развитие главным образом благодаря рассмотренному выше офшорному программированию. Именно возросший интерес к офшорному программированию, как со стороны контракторов, так и со стороны разработчиков, побудил последних получать сертификаты ISO 9001 и др., дающие возможность полноценного выхода на мировой рынок.

При этом следует отметить, что вопросы качества программных средств всегда были актуальны в отечественном бизнесе и лишь в постперестроечное время отодвинулись на второй план из- за наличия более насущных проблем экономического характера. В настоящее время, с наступлением зрелости ИТ-отрасли, приоритеты меняются. Качество программного продукта снова начинает играть ключевую роль в обеспечении роста производства и реализации, что заставляет руководителей уделять ему пристальное внимание.
Представляется очевидным, что на формирование новых бизнес-процессов, соответствующих требованиям международных стандартов качества, может понадобиться от нескольких месяцев до нескольких лет непрерывной работы. Большинство стандартов говорят о том, что должно быть получено, но не описывают, как это сделать. Учитывая, что тестирование программной продукции является одним из ключевых составляющих соответствующих стандартов качества, при становлении и развитии процессов производства и реализации качественного программного обеспечения (ПО) закономерен вопрос организации услуг подобного рода квалифицированными сторонними организациями. Таким образом, возникает и формируется самостоятельный вид ИТ-аутсорсинга — тестирование ПО. На Западе этот вид ИТ-услуг идентифицируется как Software Testing amp; Quality Assurance, что на русский язык принято переводить как «тестирование и обеспечение качества ПО».
В этой связи закономерным представляется ряд вопросов, среди которых определяющими являются следующие: в чем специфика аутсорсинга тестирования ПО и как получить от него наибольший эффект?
Исторический экскурс в семантику соответствующей терминологии позволяет сделать вывод о том, что сам термин «аутсорсинг тестирования ПО» появился в нашем лексиконе не так давно, заменив более привычное для нас выражение «независимое тестирование». Последнее предполагает, что тестирование проводится силами дополнительно привлеченной компании или группы людей, не участвующих непосредственно в разработке ПО. Еще не так давно (до середины 80-х гг. XX в.) независимое тестирование считалось единственным объективным способом оценки качества программного продукта. В книге Глендфорда Майерса «Искусство тестирования ПО» приводится следующий пример: ВВС США при разработке ПО ввели в практику заключение отдельных контрактов с компанией-разработчиком и компанией-тестером. Впоследствии ВВС создали отдельную компанию для проведения тестирования и испытаний ПО. Такой подход получил высокую оценку и был признан единственно верным при разработке критически важных программных приложений.
Ситуация стала меняться в начале 90-х гг. XX в. Именно в это время получил развитие объектно-ориентированный подход к разработке программных средств. Стали создаваться и получили популярность стандарты ISO и СММ. У разработчиков возникает иллюзия, что можно обойтись без независимых тестовых агентств, что передовые средства разработки и методы управления сами по себе дадут необходимый прирост качества. К концу 1990-х гг. эйфория проходит, несмотря на то что качество ПО действительно удалось повысить.
Устойчивые тенденции развития аутсорсинга тестирования ПО, имеющие место в настоящее время, обусловлены следующими причинами:
высокими темпами разработки программных средств;
часто изменяемыми требованиями к ПО;
работой в Интернете;
дефицитом основных видов ресурсов.
Сложность программных систем возрастает многократно. Стандарты и методики разработки отстают от требований рынка. В этих условиях возникает необходимость поиска новых нетрадиционных решений. Благодаря Интернету набирает силу глобализация разработки ПО, активно используется аутсорсинг. В настоящее время независимое тестирование приняло новые формы, адаптировалось к реалиям нового века.
Аутсорсерами данного вида ИТ-услуг являются так называемые тестовые агентства. На североамериканском и европейском рынках работают десятки компаний, предоставляющих услуги подобного рода. Решение отдельных проблем развило эту отрасль также в Индии, Китае, Сингапуре и других странах Восточного региона. Есть также ряд известных тестовых агентств в России и странах ближнего зарубежья (Белоруссии, Украине, Армении, Балтии).
Следует отметить, что каждое тестовое агентство специализируется на том или ином виде услуг. Как правило, небольшие фирмы осваивают достаточно узкую область, например, проверку эргономических характеристик ПО, в то время как более крупные компании предлагают полный набор тестовых исследований. Таким образом, область обеспечения качества ПО и тестирования, в частности, очень обширна. В самом общем виде все тестовые исследования имеет смысл разделить на две большие группы (рис. 2.12).
К первой относятся функциональные тесты, т.е. имеющие отношение к рабочей функциональности ПО, заложенной в техническом задании. Одной из разновидностей функционального тестирования является приемочное тестирование, или приемо-сда-

Рис. 2.12. Виды тестовых исследований ПО


точные испытания. Функциональные тесты имеют первоочередное значение для обеспечения качества продукта, поэтому разработчики ПО уделяют им особое внимание. Как правило, отделы тестирования компаний проводят именно такие тесты, поэтому аутсорсинг функционального тестирования не является в настоящий момент самым популярным.
Однако статистика показывает, что проведение дополнительного независимого тестирования позволяет уменьшить количество дефектов в 3—30 раз в зависимости от качества исходной системы.
Ко второй группе относятся тесты на качественные показатели ПО или, другими словами, все, что не входит в основные функции ПО: эргономичность, производительность, безопасность, надежность и т.д. Ни для кого не секрет, что на этапе разработки технического задания многие аспекты работы программы упускаются из виду, подразумеваются неявно или же требования меняются в процессе разработки, но не документируются. При этом чем больше программная система, тем больше таких упущений. Например, программа проектировалась для работы в локальной сети, а затем к ней добавили модуль доступа в Интернет. К первоначальной системе не предъявлялось высоких требований по безопасности и отказоустойчивости, но в результате расширения функциональности эти требования стали критически важными.
В результате наиболее популярной услугой при аутсорсинге тестирования является исследование производительности, надежности и нагрузочных характеристик ПО. Причина заключается в развитии клиент-серверных систем и интернет-приложений. Системы, построенные в данной архитектуре, имеют несколько узких мест; как правило, это серверы баз данных и приложений, а также средства коммуникаций. Клиент-серверные системы работают в многопользовательском режиме, поэтому вопросы надежности и нагрузочной способности для них приобретают особое значение. Стоимость сбоя серверной программы несоизмеримо выше стоимости сбоя клиентского приложения, поэтому дополнительное проведение тестирования такой системы на надежность экономически оправдано.
С тестированием на надежность тесно связано тестирование на производительность. Обычно разработчики пытаются вложить в программу максимум возможностей, что не так уж и плохо, пока не возникает необходимость подключить к системе несколько сотен или тысяч пользователей. В этом случае программа может оказаться неработоспособной, и потребуется как минимум оптимизация ее работы, а как максимум — перепроектирование системы в целом. Поэтому проведение тестов на производительность имеет исключительную важность как на этапе разработки требований и архитектуры системы, так и во время приемочных испытаний. Как правило, разработчики не обладают достаточной квалификацией и ресурсами для проведения полномасштабного нагрузочного тестирования, и в этом случае аутсорсинг тестирования является не только экономически более эффективным, но зачастую и единственно возможным способом проверки программных средств.
С учетом устойчивого роста объема услуг по аутсорсингу тестирования ПО, а также большого количества тестовых агентств или аутсорсеров, наиболее важной становится проблема правильной организации всего комплекса процедур тестирования. При этом единственно верным методологическим решением при организации аутсорсинга тестирования ПО, на наш взгляд, является соблюдение взаимообусловленных и взаимосвязанных действий как со стороны аутсорсера (при приеме заказа на тестирование), так и со стороны заказчика (при выборе аутсорсера) (рис. 2.13).
Руководитель, собирающийся провести независимое тестирование программного продукта, должен осознавать, что наиболее успешных результатов можно достичь только при выполнении определенных условий. Качество проводимого тестирования напрямую зависит от того объема информации о продукте, который разработчик может передать тестовому агентству. Чем больше будет предоставлено информации, тем качественнее можно подготовить требования к тестированию, тем большее число дефектов удастся выявить. Понятно, что организации с хорошо налаженным процессом производства, соответствующим, например, ISO 9001, получат максимальную выгоду.
Однако к аутсорсингу тестирования часто прибегают именно те компании, где формализация требований к программным продуктам либо отсутствует, либо требования задокументированы в

Рис. 2.13. Элементы процедуры эффективного управления аутсорсингом тестирования ПО


очень общем виде. Следует помнить, что в этом случае от тестового агентства потребуются дополнительные усилия и время на знакомство с продуктом, поэтому планировать начало работы с тестерами нужно заблаговременно, не дожидаясь окончания кодирования последней функции в программе. По этой причине целесообразно выяснить, какую методику намерены использовать тестеры, какие требования будут предъявляться к функциональности продукта. Невнятный ответ на данный вопрос поставит под сомнение качество тестирования.
Еще одним важным моментом работы с тестовым агентством является установление процедуры взаимодействия и обмена информацией. Необходимо определить, каковы должны быть способы передачи информации, формат описания обнаруженных дефектов, способы импорта/экспорта данных между информационными системами с учетом ошибок и требований к программным продуктам, обеспечение конфиденциальности и пр. Существенное значение имеет и процедура управления проведением тестирования, регулярная отчетность о выполнении работ.
Вопросы для контроля и обсуждения Чем обусловлены устойчивые тенденции развития аутсорсинга тестирования программного обеспечения? Как позиционируются тестовые агентства на мировом рынке? Перечислите виды тестовых исследований программного обеспечения. В чем заключаются особенности функционального тестирования программного обеспечения? В чем состоят особенности тестирования качественных характеристик программного обеспечения? Назовите элементы процедуры эффективного управления аутсорсингом тестирования программного обеспечения со стороны заказчика, аутсорсера и в процессе их взаимодействия. 
<< | >>
Источник: Аникин Б.А.. Аутсорсинг: создание высокоэффективных и конкурентоспособных организаций.. 2003

Еще по теме Тестирование программного обеспечения:

  1. Программное обеспечение
  2. Программное обеспечение
  3. 20.5. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КАЛЕНДАРНОГО ПЛАНИРОВАНИЯ
  4. 20.5.1. ФУНКЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
  5. 20.6.2. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ГРУППОВОГО ВЗАИМОДЕЙСТВИЯ
  6. «Общественное программное обеспечение» результативного управления
  7. Программное обеспечение для интернет-банкинга в России
  8. 8.1. Основные задачи, решаемые программным обеспечением, и используемые при этом методы
  9. Программное обеспечение ЛВС Классификация ЛВС
  10. Методологии разработки программных продуктов
  11. ПРОГРАММНАЯ ТОРГОВЛЯ
  12. Программные продукты управления предприятием
  13. 13.6. ОСНОВНЫЕ ПРОГРАММНЫЕ СРЕДСТВА
  14. Тестирование в школах
  15. Аппаратно-программная система казначейства
  16. 7.2.2. Задача оптимального программного управления динамической системой
  17. Программные средства финансового анализа
- Антикризисное управление - Документоведение и делопроизводство - Инвестиционный менеджмент - Инновационный менеджмент - Информационный менеджмент - Исследование систем управления - Корпоративное управление - Лидерство - Маркетинг в отраслях - Маркетинг, реклама, PR - Маркетинговые исследования - Менеджмент организаций - Менеджмент персонала - Менеджмент-консалтинг - Моделирование бизнес-процессов - Моделирование бизнес-процессов - Организационное поведение - Основы менеджмента - Поведение потребителей - Производственный менеджмент - Риск-менеджмент - Самосовершенствование - Сбалансированная система показателей - Сравнительный менеджмент - Стратегический маркетинг - Стратегическое управление - Тайм-менеджмент - Теория организации - Теория управления - Управление качеством - Управление конкурентоспособностью - Управление продажами - Управление проектами - Управленческие решения - Финансовый менеджмент - ЭКОНОМИКА ДЛЯ МЕНЕДЖЕРОВ -