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


Подходы

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

К первому типу относится, в частности, модульное тестирование.

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



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

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


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

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


Проблемы

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


Приложения

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

HP LoadRunner,
HP QuickTest Professional,
HP Quality Center;
Segue SilkPerformer;
IBM Rational FunctionalTester,
IBM Rational PerformanceTester,
IBM Rational TestStudio;
TestComplete.



Использование этих инструментов помогает тестировщикам автоматизировать следующие задачи:
- установка продукта;
- создание тестовых данных;
- GUI взаимодействие;
- определение проблемы.

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


Инструментарий тестирования.

JUnit — тестирование приложений для Java
TestNG — тестирование приложений для Java
NUnit — порт JUnit под .NET
Selenium — тестирование приложений HTML; поддерживает браузеры Internet Explorer, Mozilla Firefox, Opera, Google Chrome, Safari.
TOSCA Testsuite — тестирование приложений HTML, .NET, Java, SAP
UniTESK — тестирование приложений на Java, Си.


Виды тестирования.

Аттестационное тестирование
Бета-тестирование
Интеграционное тестирование
Разработка через тестирование
Регрессионное тестирование
Система отслеживания ошибок
Системное тестирование
Функциональное тестирование
Юзабилити-тестирование


Comments and questions

Publish comment or question

Copyright 2019 © ELTASK.COM
All rights reserved.