Автоматизированное тестирование

Программный комплекс после сборки вполне может содержать ошибки, неувязки, ведущие к сбоям. И у лучшего программиста, эксперты отмечают не менее одной ошибки на тысячу кода программы (ПО), на устранение которой потребуется временные, вычислительные и, главное, – интеллектуальные усилия. Специалисту по тестированию («тестировщику») необходимо отработать множество тестов, чтобы обнаружить все ошибки – как сами тестировщики говорят, до «предпоследней». Задача, становящаяся почти невыполнимой при росте сложности и объема кода ПО. А таковыми являются практически все комплексные бизнес-приложения.

Выручает автоматизация, интеллектуализация, верификация. Автоматизированное тестирование (автотестирование) – процесс автоматизированной генерации (креативного подбора) данных по всем логическим ветвям программы («на все тестируемые случаи»), прогона программ, анализа результатов и реакции ПО, всего комплекса. Особенно важны экстремальные ситуации и случаи, когда невозможно выделить компоненты, уровни для автономной проверки корректности всего комплекса.

Востребованное современное направление

Грамотный «тестер» всегда был востребован. Почему так востребованы курсы тестирования программного обеспечения сегодня? – Для конкурентоспособного бизнеса актуальны оперативность, мобильность, непрерывное опережение конкурентов ниши. Здесь потребуются гибкие, креативные разработки, практики, методики. А необходимость комплекса методик, методологии приводит нас к автоматизированному тестированию.

Регулярное автотестирование дает уверенность в работе приложения согласно спецификациям (ТЗ), как предполагает бизнес, самоуправление бизнес-процессов. Обо всех возникающих проблемах будете узнавать оперативно. Всеми процессами сможете адаптивно управлять. Владельцам быстро откликающегося бизнеса стоит «вложиться» серьёзно в хорошо продуманные и структурированные решения от квалифицированных специалистов.

Цели, задачи и принципы автоматизации

Цель тестирования – проверка работоспособности комплекса, поиск латентных (скрытых) ошибок навигации, дизайна, обеспечение результативности и устойчивости.

Цели автоматизации тестирования:

  • снижение затратности и длительности ручного тестирования;
  • уменьшение времени отладки и генерации релизов;
  • снижение количества дефектов и рисков, уязвимостей;
  • оптимизация (улучшение) архитектуры.

Бизнес-логика тестируется обычно посредством пользовательского интерфейса. Это логически верно отражает бизнес-взаимодействия, но сама бизнес-логика реализуется же уровнями ниже. Неплохо, если можно будет обращаться напрямую на нужный уровень (а не последовательно иерархически), это даст тесты, более быстрые и надёжные.

Пользовательский интерфейс при этом проверим отдельными тестами. В небольшом количестве, но минимально достаточном. Основная надежда разработчиков «коробочных решений (программ, сервисов)» – автоматизация «за вас», в несколько «кликов», например, как в MachineLearning, DataMining, AI.

Тестировщики – аудиторы с расширенными правами и доступами, чем рядовой пользователя.

Большие преимущества и небольшие недостатки

Интеграционное автоматизированное тестирование, часто и невозможно реализовать по многим причинам, например, из-за упущений в требованиях заказчиков или необходимости добавления жизненно необходимого для бизнеса нового функционала (мобильной версии магазина онлайн, в частности).

Небольшой «недостаток» – потребуется мотивация, быстрая обучаемость, командная работа (team lead), совмещение задач (технических, управления), стратегическое прототипирование, мышление и др.

«Плюсы» автотестирования:

  • «человеческий фактор» – исключен;
  • скорость;
    малозатратность;
  • автоматическая отчетность;
  • вмешательство исключено и др.

«Минусы» таковы:

  • повторяемость, однообразность;
  • затратная поддержка при частой изменяемости приложений;
  • дорогой инструментарий «автоматизатора»;
  • мелкие ошибки могут «ускользнуть» и др.

Технологии автотестирования

Что должно обеспечивать автотестирование? Из многообразия выделим ключевые моменты современного развития технологии для бизнес-приложений – тестирование:

  • производительности (стресс-устойчивое, нагрузочное);
  • регрессионное (функциональность для бизнеса, заказчика);
  • конфигурационное (для различных условий, архитектур, например, различных браузеров);
  • функциональное (функциональность для технологии, приложений, комплекса);
  • установочное (инсталляционное, для настройки продукта по требованиям бизнеса, заказчика).

Инструментарий автотестирования – разнообразен. Отметим лишь такие средства:

  • QuickTestProfessional (от Hewlett-Packard) – платный, записывающий действия тестирующего пользователя (скрипты или скринкастинг);
  • RationalFunctionalTester (от IBM) – платный, управляющий данными;
  • Selenium (от OpenQA.org) – бесплатный.

Чем проект «долгосрочней», тем выгодней его автотестирование. Можно просчитать ROI (возвращаемость инвестиций). Учитывают и карьерный аспект – многие проходят курсы тестирования программного обеспечения, автоматизированного тестирования. Они дают компетенции в «баг-трекинге» («отслеживании ошибок»), во взаимодействиях с заказчиками/разработчиками.