Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 22(66)

Рубрика журнала: Технические науки

Секция: Технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5

Библиографическое описание:
Варсоцкий А.А. НЕОБХОДИМОСТЬ АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ ПРИ ПРОИЗВОДСТВЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ // Студенческий: электрон. научн. журн. 2019. № 22(66). URL: https://sibac.info/journal/student/66/145916 (дата обращения: 31.10.2024).

НЕОБХОДИМОСТЬ АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ ПРИ ПРОИЗВОДСТВЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Варсоцкий Андрей Александрович

магистрант, кафедра менеджмента БГУИР,

РБ, г. Минск

«Нам необходимо поскорее получить это программное приложение». «Мне срочно нужны эти новые функции продукта». Звучит знакомо?

Современных менеджеров и разработчиков программного обеспечения просят осуществлять подготовку своих продуктов в минимальные сроки с минимальными ресурсами. Более 90% разработчиков срывают сроки поставки. Нарушение сроков носит регулярный характер для 67% разработчиков. Кроме того, в 91% случаев приходилось удалять в цикле разработки ключевую функциональность, чтобы уложиться в срок. Сроки поставки продукта на рынок определяют выживание или смерть продукта – и, следовательно, выживание или смерть компании [1, c. 44].

Автоматизированное тестирование программного обеспечения — часть процесса тестирования на этапе контроля качества в процессе разработки программного обеспечения. Оно использует программные средства для выполнения тестов и проверки результатов выполнения, что помогает сократить время тестирования и упростить его процесс.

Автоматизированное тестирование ПО — процесс тестирования программного обеспечения, при котором основные функции и шаги теста, такие как запуск, инициализация, выполнение, анализ и выдача результата, производятся автоматически с помощью инструментов для автоматизированного тестирования [3, c. 2].

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

Что ж, из самого названия ясно, что в автоматизированном тестировании нет «кустарного промысла». По сути, все, что делается людьми при ручном тестировании, выполняется программными средствами и скриптами при автоматическом тестировании. Например, в автоматических тестах пользовательского интерфейса сценарий полностью имитирует способ взаимодействия обычного пользователя с приложением, чтобы проверить, реагирует ли интерфейс на действия пользователя, как следует.

Тем не менее, люди все еще играют большую роль в автоматизированном тестировании, когда дело доходит до разработки сред тестирования и сценариев, а также поддержания их в актуальном состоянии. Это делают инженеры автоматизированного тестирования - первоклассные специалисты, которые хорошо разбираются как в разработке, так и в тестировании. Что касается инструментов и сценариев, они используются в основном для повторяющихся задач, которые можно легко запрограммировать, таких как обнаружение ошибок, сообщение о них в системе отслеживания ошибок и уведомление ответственных инженеров. Ключевая цель автоматизации в повышении тестового покрытия, но не снижения стоимости. Единственный сбой в промышленной эксплуатации, может стоить десяти бюджетов тестирования на следующие итерации. Цель состоит не в том, чтобы сократить персонал, а в том, чтобы снизить риск и стоимость сбоя программного обеспечения за счет расширения охвата [2, с. 13].

Основным преимуществом автоматизации тестирования является то, что она может освободить ручных инженеров по обеспечению качества от утомительной и трудоемкой работы, такой как регрессионные тесты. В отличие от людей, сценарии не могут устать и потерять фокус от однообразных и повторяющихся задач, поэтому они могут быть намного более производительными и экономящими время, чем ручные тесты.

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

Наконец, очевидно, что автоматизированные тесты могут просто работать быстрее, чем любой человек, поэтому итерация автоматического тестирования намного дешевле, чем ручное тестирование. В качестве бонуса, после завершения цикла тестирования, любой в команде проекта может получить доступ к отчету и просмотреть все обнаруженные ошибки. Более того, процесс обнаружения и исправления ошибок может быть еще более автоматизирован; например, когда при обнаружении ошибки сценарий создает заявку в системе отслеживания ошибок, а затем отправляет уведомление ответственному инженеру.

Автоматизированные тесты не могут заменить ручного инженера. Прежде всего, это всего лишь сценарии, которые запрограммированы для проверки определенных вещей определенным образом, но, в отличие от людей, им не хватает импровизации. Например, если скрипт запрограммирован проверять, есть ли в форме регистрации только «две» кнопки, он не сообщит об ошибке. Если вдруг появляется «третья» кнопка, просто потому, что она не запрограммирована для этого.

Автоматизация тестирования требует значительных инвестиций и подготовки к запуску. Хотя для начала работы инженерам по ручному контролю качества требуется только документация, с автоматизированными тестами все не так просто.

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

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

Наконец, не все типы тестов могут быть автоматизированы. Например, автоматизация - не лучший вариант для тестов удобства использования, потому что скрипт никогда не сможет определить, удобно ли использовать приложение.

В целом, хорошо, если 90% повторяющихся задач ваших продуктов, таких как регрессионное тестирование и нагрузочное тестирование, выполняются автоматическими тестами, а остальные 10% (которые не могут быть автоматизированы) выполняются инженерами по обеспечению качества вручную.

Если вы планируете долгосрочный проект с частыми обновлениями, начните как можно раньше. Помните, автоматизация тестирования — это больше чем просто запись экрана и последующее его воспроизведение. Вам следует одновременно нанять инженера по автоматизации тестирования и инженера по обеспечению качества вручную.

Хотя автоматизация тестирования намного дороже, чем ручное обеспечение качества в начале проекта, она может быть дешевле в долгосрочном проекте, поскольку по мере роста проекта вам придется нанимать больше «ручных» инженеров контроля качества для тестирования новых функций, следовательно, стоимость ручного тестирования значительно возрастет. В то же время стоимость автоматизации тестирования будет оставаться относительно низкой и стабильной, поскольку вам не придется нанимать больше специалистов, чтобы поддерживать актуальность сценариев.

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

Опять же, не думайте, что автоматическое тестирование решит все ваши проблемы, хотя хорошо сочетаемое сочетание ручных и автоматических тестов может это сделать. Автоматизированные тесты испытывают недостаток интеллекта, по крайней мере, в настоящее время, но, когда человеческий интеллект объединяет скорость и точность машин, они создадут динамический дуэт. Не стесняйтесь извлечь из этого пользу.

 

Список литературы:

  1. Дастин Э., Рэшка Д., Пол Д.. Автоматизированное тестирование программного обеспечения: Внедрение, управление и эксплуатация; [Пер. Е. Молодцова, М. Павлов]. - М.: ЛОРИ, 2003 - 567 с.
  2. Linda G. Hayes. Automated Testing Handbook Paperback – March 1, 2004 – 100с.
  3. Автоматизация тестирования программных систем, URL: https://habr.com/ru/post/160257/ (Дата обращения: 23.05.2019)

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.