Автор: Пользователь скрыл имя, 13 Декабря 2011 в 17:19, доклад
Еще совсем недавно тестирование программ проводилось вручную либо самими программистами, либо пользователями, что вряд ли можно было назвать системным подходом и к тому же не позволяло оценивать качество кода. Чуть позже тестирование выделилось в отдельную область знаний в составе разработки программного обеспечения, но быстро пришло понимание того, что тестирование вручную неэффективно, поскольку требует больших трудовых ресурсов и много времени.
Еще совсем недавно тестирование программ проводилось вручную либо самими программистами, либо пользователями, что вряд ли можно было назвать системным подходом и к тому же не позволяло оценивать качество кода. Чуть позже тестирование выделилось в отдельную область знаний в составе разработки программного обеспечения, но быстро пришло понимание того, что тестирование вручную неэффективно, поскольку требует больших трудовых ресурсов и много времени. Первые средства автоматизации тестирования практически представляли собой библиотеки, которые можно было использовать для написания тестов, что требовало от тестировщика умения программировать на уровне разработчика. Современные средства автоматизированного тестирования позволяют создавать автоматизированные тесты с минимальным участием человека.
Если провести поверхностную классификацию, то средства автоматизации тестирования можно поделить на две группы: инструменты функционального и инструменты нагрузочного тестирования. К первой группе относятся инструменты, предназначенные для проверки соответствия приложения предъявляемым бизнес-требованиям, а вторую группу образуют инструменты для проверки и оценки производительности приложений.
На рынке средств функционального тестирования сегодня представлены главным образом продукты следующих компаний: HP (QuickTest Professional, WinRunner), IBM (Robot, Functional Tester), Borland (SilkTest) и AutomatedQA (TestComplete), представляющие собой средства разработки приложений. Причем часть из них использует «промышленные» языки программирования (например, QTP используется в качестве языка разработки скриптов VB, а Functional Tester реализован в среде Eclipse и позволяет создавать скрипты на Java), а часть применяет «диалекты» или свои собственные специальные языки (например, Robot использует язык SQABasic, а TestComplete – язык 4Test). Большинство инструментов ориентировано на работу с Web-приложениями либо с обычными приложениями, написанными на .Net или Java. При этом поддержку «старых» платформ, таких как Centura или PowerBuilder, обеспечивают в основном крупнейшие разработчики средств тестирования, HP и IBM.
Разработчики средств
автоматизированного
Инструменты нагрузочного тестирования являются более сложными – они фактически «перехватывают» трафик между тестируемым приложением и сервером и представляют его в виде, удобном для работы. Практически все производители продуктов для автоматизированного тестирования предлагают средства нагрузочного тестирования, поскольку в современном виде функциональное тестирование в чистом виде мало кого интересует. Лидерами на рынке средств автоматизированного нагрузочного тестирования являются HP с продуктом LoadRunner и IBM с продуктами Robot и Performance Tester, поддерживающими множество протоколов (включая терминальные протоколы). Большинство средств нагрузочного тестирования работают лишь с Web-приложениями.
Помимо собственно средств тестирования существуют так называемые средства поддержки процесса тестирования, позволяющие вести учет требования и тест-кейсов, проводить анализы покрытия требования тестами, управлять ходом выполнения тестирования, вести учет обнаруженных дефектов и т.п. Лидирует в данной области Web-приложение HP Quality Center – единый инструмент управления процессом тестирования (включая управление требованиями и дефект-менеджмент), интегрируемый со средствами функционального и нагрузочного тестирования HP QuickTest Professional и LoadRunner. С данным инструментом конкурирует продукт Rational Quality Manager (RQM) от IBM, представляющий собой Web-приложение на платформе Jazz.
Исторически сложилось
так, что Россия отстает от остального
компьютерного мира по применению средств
автоматизации тестирования, и для этого,
на мой взгляд, есть несколько причин.
Во-первых, неправильное отношение к тестированию
как таковому – многие руководители до
сих пор считают, что разработчик может
написать программу, которая не содержит
ошибок. Во-вторых, высокая стоимость инструментов
автоматизации тестирования. В-третьих,
желание сэкономить на квалифицированных
кадрах – работа специалиста по средствам
автоматизации тестирования обходится
дороже, чем труд обычного тестировщика,
поэтому многие компании предпочитают
пригласить трех студентов, которые будут
вручную тестировать программное обеспечение
(в большинстве случае к тому же бессистемно),
чем нанять одного специалиста-автоматизатора.
В-четвертых, ограничение по срокам –
автоматизация тестирования требует значительных
временных затрат и имеет смысл только
в том случае, если проект как минимум
среднесрочный (от полугода и более). И
наконец, в-пятых, неудачный опыт применения
таких средств и ожидание мгновенного
эффекта от их внедрения. А ведь результаты
внедрения таких продуктов заметны далеко
не сразу и затраты на автоматизацию окупаются
за длительный период времени, что не позволяет
полностью отказаться от тестирования
вручную.
Автоматизация тестирования
Автоматизация не сокращает этап подготовки к тестированию, а, наоборот, увеличивает его, что может напугать неискушенного руководителя проекта, однако, как только будет выпущена первая стабильная версия приложения и станет возможным проведение регрессионного тестирования, преимущества автотестирования станут очевидны. На моем опыте средства автоматизации тестирования позволили сократить сроки проверки версии с пяти рабочих дней до двух – автотесты прогонялись ночью, а на следующий день анализировался лог и выполнялось ручное тестирование функционала, проверка которого по ряду причин не автоматизировалась.
Автоматизация тестирования позволяет если не избежать, то значительно уменьшить синдром «замыленного глаза», когда тестировщик перестает замечать ошибки при выходе новых версий. Благодаря автоматизации можно не просто ускорить процесс тестирования, но и увеличить тестовое покрытие за счет большего количества перебираемых комбинаций входных данных, что в свою очередь позволяет снизить требования к квалификации разработчиков – с большей вероятностью их ошибки будут обнаружены на этапе тестирования. Если раньше для того, чтобы гарантировать, что с вероятностью 99% в программе не будет критических ошибок, мы должны были использовать команду из 10 высококлассных разработчиков, то теперь мы обходимся командой из 10 разработчиков, среди которых только 2-3 высококлассных специалиста.
Продукты
А зачем компаниям,
оказывающим услуги по тестированию
и разработке программного обеспечения,
пропагандировать использование средств
автоматизации? Затраты на средства
автоматизации несопоставимы с
возможными потерями от сбоев системы,
вызванных как функциональными
ошибками, так и неудовлетворительной
производительностью, – экономия на
тестировании приведет к потерям
на этапе эксплуатации подобного программного
обеспечения. Центр тестирования компании
«Аплана» уже давно занимается аутсорсингом
функционального и нагрузочного тестирования,
и, выполнив множество проектов с использованием
различных средств автоматизации, мы можем
с уверенностью сказать, что сегодня нет
одного инструмента, который полностью
удовлетворил бы всех заказчиков. Однако
можно выбрать инструмент, максимально
соответствующий предъявляемым требованиям.
Выбор инструмента
Для функционального тестирования важна поддержка конкретной среды разработки, возможность построения отчетов о тестировании, автоматическая регистрация обнаруженных дефектов, наличие сценариев восстановления (recovery-сценариев). Для инструментов нагрузочного тестирования требуется поддержка протокола, который используется тестируемым приложением, наличие встроенных средств мониторинга параметров серверов, возможность гибкой настройки сценариев нагрузочного тестирования, наличие средств анализа результатов и построения отчетов о нагрузочном тестировании.
Важную роль при выборе инструментов тестирования играет наличие документации и линии технической поддержки – современные инструменты тестирования не менее сложны, чем средства разработки. Следует обратить внимание и на наличие специализированных форумов, посвященных средствам тестирования, – существование форума по конкретному инструменту и, главное, многочисленной группы активных пользователей говорит о широкой распространенности данного инструмента, что в дальнейшем поможет быстрее получить ответ на интересующий вопрос. Кроме того, нужно обращать внимание на возможность интеграции инструментов тестирования с программным обеспечением, которое используется в компании. К примеру, если в компании уже выстроен процесс разработки программного обеспечения и в качестве средств автоматизации используются продукты IBM, то выбирать в качестве инструмента тестирования TestComplete, возможно, не самая удачная идея.
Следует руководствоваться также стоимостью инструментов тестирования – если вы планируете одноразовое тестирование, то покупать дорогостоящие инструменты нецелесообразно. В качестве альтернативы приобретению лицензий на инструментальные средства тестирования является аренда лицензий (покупка временных лицензий), что обычно значительно дешевле.
Мы предпочитаем
работать со средствами тестирования
компаний HP и IBM, хотя у нас есть опыт
использования инструментов других
производителей и собственные средства
автоматизированного
Министерство образования и науки Российской Федерации
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
«ДАЛЬНЕВОСТОЧНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
(ДВФУ)
Школа естественных
наук
Кафедра
информационных систем управления
ДОКЛАД
по дисциплине:
«Проектирование АСОИУ»
на тему:
«Средства тестирования»
Выполнил:
студент гр. С-8527б
Нусс В.А.
Проверил преподаватель:
Березкина
Г.Л.
Владивосток 2011г.