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

История

править

Первые попытки «автоматизации» появились в эпоху операционных систем DOS и CP/M. Тогда она заключалась в выдаче приложению команд через командную строку и анализе результатов. Чуть позднее добавились удаленные вызовы через API для работы по сети. Впервые[источник не указан 4636 дней] автоматизированное тестирование упоминается в книге Фредерика Брукса «Мифический человеко-месяц», где говорится о перспективах использования модульного тестирования. Но по-настоящему автоматизация тестирования стала развиваться только в 1980-х годах.

Подходы

править

Существует два основных подхода к автоматизации тестирования: тестирование на уровне кода и тестирование пользовательского интерфейса (в частности, GUI-тестирование). К первому типу относится, в частности, модульное тестирование. Ко второму — имитация действий пользователя - функциональное тестирование (с помощью специальных тестовых фреймворков).

GUI-автоматизация

править

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

GUI-автоматизация развивалась в течение четырёх поколений инструментов и техник:

  • Утилиты записи и воспроизведения (англ. capture/playback tools) записывают действия тестировщика во время ручного тестирования. Они позволяют выполнять тесты без прямого участия человека в течение продолжительного времени, значительно увеличивая продуктивность и устраняя «тупое» повторение однообразных действий во время ручного тестирования. В то же время, любое малое изменение тестируемого ПО требует перезаписи ручных тестов. Поэтому это первое поколение инструментов не эффективно и не масштабируемо.
  • Написание сценария (англ. scripting) — форма программирования на языках, специально разработанных для автоматизации тестирования ПО — смягчает многие проблемы инструментов записи и воспроизведения. Но разработкой занимаются программисты высокого уровня, которые работают отдельно от тестировщиков, непосредственно запускающих тесты. К тому же скрипты более всего подходят для тестирования GUI и не могут быть внедрёнными, пакетными или вообще каким-либо образом объединены в систему. Наконец, изменения в тестируемом ПО требуют сложных изменений в соответствующих скриптах, и поддержка возрастающей библиотеки тестирующих скриптов в конце концов становится непреодолимой задачей.
  • Управляемое данными тестирование (англ. Data-driven testing) — методология, которая используется в автоматизации тестирования. Особенностью является то, что тестовые скрипты выполняются и верифицируются на основе данных, которые хранятся в центральном хранилище данных или базе данных. Роль базы данных могут выполнять ODBC-ресурсы, csv или xls файлы и т. д. Управляемое данными тестирование — это объединение нескольких взаимодействующих тестовых скриптов и их источников данных во фреймворк, используемый в методологии. В этом фреймворке переменные используются как для входных значений, так и для выходных проверочных значений: в тестовом скрипте обычно закодированы навигация по приложению, чтение источников данных, ведение логов тестирования. Таким образом, логика, которая будет выполнена в скрипте, также зависит от данных.
  • Тестирование по ключевым словам (англ. Keyword-based) автоматизация подразумевает разделение процесса создания кейсов на 2 этапа: этап планирования и этап реализации. В этом случае конечный тест представляет собой не программный код, а описание последовательности действий с их параметрами (например, «завести в базе данных пользователя с логином XXX и паролем YYY»). При этом фреймворк отвечает за непосредственную реализацию ключевых слов (действий), а дизайнеру тестов достаточно иметь представление о всём наборе действий, реализованных во фреймворке. Это даёт возможность создавать тесты людям, не имеющим навыков программирования.

Проблемы

править

Одной из главных проблем автоматизированного тестирования является его трудоемкость: несмотря на то, что оно позволяет устранить часть рутинных операций и ускорить выполнение тестов, большие ресурсы могут тратиться на обновление самих тестов. Это относится к обоим видам автоматизации. При рефакторинге часто бывает необходимо обновить и модульные тесты, а изменение кода тестов может занять столько же времени, сколько и изменение основного кода. С другой стороны, при изменении интерфейса приложения необходимо заново переписать все тесты, которые связаны с обновленными окнами, что при большом количестве тестов может отнять значительные ресурсы.

Приложения

править

Для автоматизации тестирования существует большое количество приложений. Наиболее популярные из них по итогам 2007 года:[1]

Использование этих инструментов помогает тестировщикам автоматизировать следующие задачи:

  • установка продукта
  • создание тестовых данных
  • GUI взаимодействие
  • определение проблемы

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

Инструментарий

править

См. также

править

Примечания

править
  1. SoftJournal 'Сентябрь 2007/ SoftJournal 'September 2007. Дата обращения: 12 апреля 2010. Архивировано из оригинала 23 марта 2010 года.

Ссылки

править

📚 Artikel Terkait di Wikipedia

Robot Framework

фреймворк для разработки приемочных автотестов (ATDD). Это keyword-driven testing фреймворк, который предоставляет табличное форматирование. Основные

Тестировщик

Bach and Bret Pettichord (2002). Lessons Learned in Software Testing: A Context-Driven Approach. John Wiley & Sons. p. 314. ISBN 9-780-47108112-8 Савин

JavaScript

22 августа 2011 года. Christian Johansen. Chapter 1. Automated Testing // Test Driven JavaScript Development. — Addison-Wesley Professional, 2010. — P

Our World in Data

ноября 2021. Архивировано 4 декабря 2021 года. Jeffrey Rothfeder. The Data-Driven Optimist . Strategy + Business (8 июня 2015). Дата обращения: 27 ноября

Эксперимент Facebook

edu/stories/2014/06/news-feed-emotional-contagion-sweeps-facebook The morality of A/B testing. — URL: http://techcrunch.com/2014/06/29/ethics-in-a-data-driven-world/

Шарман, Алмаз Торегельдиевич

uses for DHS HIV data Архивная копия от 3 декабря 2013 на Wayback Machine, Опубликованные результаты исследования группы. Anemia testing manual for population-based

Moodle

Languages Page — 2006. Feed 376up, 01 Apr 2015 Samantha Gartner. How Moodle is driven by user and community feedback . Opensource.com. Дата обращения: 21 февраля

Хокинг, Стивен

обращения: 15 августа 2023. Архивировано 5 февраля 2015 года. Stephen Hawking: driven by a cosmic force of will - Telegraph  (9 января 2015). Дата обращения: