Фирма

«Инрэко ЛАН»

Согласно стандартному глоссарию терминов ISTQB (версия 2.0 от 4 декабря 2008), тестирование – процесс, содержащий в себе все активности жизненного цикла, как динамические, так и статические, касающиеся планирования, подготовки и оценки программного продукта и связанных с этим результатов работ с целью определить, что они соответствуют описанным требованиям, показать, что они подходят для заявленных целей и для определения дефектов.

Автоматизированное тестирование – это составная часть процесса тестирования, при которой основные шаги теста выполняются автоматически, с помощью программного обеспечения. Оно обычно применяется для функционального, регрессионного и нагрузочного тестирования. У автоматизированного тестирования есть ряд важных особенностей, которые необходимо учитывать:
1. Ручное и автоматизированное тестирование – это взаимодополняющие технологии.
3. Автоматизированное тестирование подразумевает участие человека.
4. Автоматизированное тестирование требует дополнительных инвестиций, но позволяет повысить качество продукта.
5. Автоматизированное тестирование – это разработка (программирование).
6. Автоматизированное тестирование гарантирует детерминированную проверку функциональности.

Автоматизированное тестирование имеет ряд достоинств и недостатков. В таблице 1 представлены наиболее значительные из них.

Таблица 1 - Достоинства и недостатки Автоматизированного тестирования.

 Достоинства

 Недостатки

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

Средство автоматизированного тестирования AutoIt

AutoIt — свободно распространяемый язык для автоматизации выполнения задач в Microsoft Windows. В ранних версиях программа преимущественно использовалась для создания скриптов автоматизации для программ Microsoft Windows. Такие скрипты полезны для выполнения часто повторяющихся задач, таких как инсталляция идентичных наборов программ на большое количество компьютеров. В более поздних версиях AutoIt улучшился дизайн языка, и возросла общая функциональность, что приблизило AutoIt к языкам общего назначения [1].
Возможности языка включают:

  • запуск на выполнение программ;
  • имитация нажатия комбинаций клавиатуры;
  • имитация перемещение указателя мыши и нажатия на ее кнопки;
  • обработка выражений, функций, циклов и логических условий
  • управление отображением окон;
  • взаимодействовие с "управляющими элементами";
  • работа со значениями реестра, буфером обмена и файлами;
  • создание GUI интерфейсов;
  • работа с COM объектами;
  • работа с протоколами TCP и UDP;
  • чтение HTML кода страниц;
  • работа с базами данных;
  • работа с большой библиотекой готовых функций
  • компиляция скрипта в выполняемый файл (*.exe).


Использование AutoIt на примере web-приложения

Рассмотрим использование AutoIt, на примере web-приложения управления задачами ezManageOnline (http://ezmanageonline.com/). В качестве тестируемой функции выбираем «Восстановление пароля» (http://ezmanageonline.com/app/RemindPasswordPage.aspx?id=2).
Примечание:
в данном примере мы будем использовать библиотеку для работы с Internet Explorer (IE.au3). Идентификаторы элементов можно найти в исходном коде страницы.
Для проверки корректной работы автоматизировуем представленные ниже шаги.
1. Открытие главной страницы.

; подключение библиотеки
#include
; открываем главную страницу
$oIE = _IECreate ("http://ezmanageonline.com/")
; Ждем, пока перезагрузится странинца
_IELoadWait ($oIE)

2. При переходе по ссылке «Забыли пароль?» открывается страница напоминания пароля.

;переходим по ссылке "Забыли пароль?"
$oFogotPassword= _IEGetObjById($oIE, "ctl00_leftpanelContent_LoginControl1_forgotPassword")
_IEAction ($oFogotPassword, "click")
; Ждем, пока перезагрузится странинца
_IELoadWait ($oIE)
; Проверяем окрытие страницы напоминания пароля
If _IEPropertyGet($oIE, "locationurl") = "http://ezmanageonline.com/app/RemindPasswordPage.aspx?id=2" Then
 ConsoleWrite('Тест "открытие страницы напоминаниея пароля" пройден успешно'& @CRLF)
Else
 ConsoleWrite('Тест "открытие страницы напоминаниея пароля" завершился с ошибкой' & @CRLF)
 MsgBox(0, "Сообщение", 'Тест "открытие страницы напоминаниея пароля" завершился с ошибкой')
EndIf

3. Проверка работы с пустыми значениями в поле «Электронный адрес»

; Нажимаем на кнопку "Отправить пароль"
$oSend = _IEGetObjById($oIE, "ctl00$ContentPlaceHolder1$buttonSendPassword")
_IEAction ($oSend, "click")
; Ждем, пока перезагрузится странинца
_IELoadWait ($oIE)
; Проверяем валидатор: выводится ли сообщение "Не указан электронный адрес"
$oSpan1 = _IEGetObjById ($oIE, "ctl00_ContentPlaceHolder1_requiredFieldValidatorValue")
If $oSpan1.style.display "none" And $oSpan1.innerText="* Не указан электронный адрес." Then
 ConsoleWrite('Тест "не указан электронный адрес" пройден успешно' & @CRLF)
Else
 ConsoleWrite('Тест "не указан электронный адрес" завершился с ошибкой' & @CRLF)
 MsgBox(0, "Сообщение", 'Тест "не указан электронный адрес" завершился с ошибкой')
EndIf

4. Проверка валидации формата значений в поле «Электронный адрес»

; Заполняем электронный адрес
$oMail = _IEGetObjById ($oIE, "ctl00_ContentPlaceHolder1_textBoxEmail")
$oMail.value = "inrecolan"
; Нажимаем на кнопку "Отправить пароль"
$oSend = _IEGetObjById($oIE, "ctl00$ContentPlaceHolder1$buttonSendPassword")
_IEAction ($oSend, "click")
; Ждем, пока перезагрузится странинца
_IELoadWait ($oIE)
; Проверяем валидатор: выводится ли сообщение "Указанный электронный адрес неправильный"
$oSpan2 = _IEGetObjById ($oIE, "ctl00_ContentPlaceHolder1_messageLabel")
If $oSpan2 0 And $oSpan2.innerText="* Указанный электронный адрес неправильный." Then
 ConsoleWrite('Тест "указан неправильный электронный адрес" пройден успешно' & @CRLF)
Else
 ConsoleWrite('Тест "указан неправильный электронный адрес" завершился с ошибкой' & @CRLF)
 MsgBox(0, "Сообщение", 'Тест "указан неправильный электронный адрес" завершился с ошибкой')
EndIf

5. Проверка обработки электронного адреса, не зарегистрированного в системе

; Заполняем электронный адрес корректного формата, но не зарегистрированный в системе
$oMail = _IEGetObjById ($oIE, "ctl00_ContentPlaceHolder1_textBoxEmail")
$oMail.value = "dlrtksuеhsdjkg@sdfоddgd.cоm"
; Нажимаем на кнопку "Отправить пароль"
$oSend = _IEGetObjById($oIE, "ctl00$ContentPlaceHolder1$buttonSendPassword")
_IEAction ($oSend, "click")
; Ждем, пока перезагрузится странинца
_IELoadWait ($oIE)
$oSpan3 = _IEGetObjById ($oIE, "ctl00_ContentPlaceHolder1_messageLabel")
If $oSpan3 0 And $oSpan3.innerText="* Указанный электронный адрес не зарегистрирован в системе ezManageOnline." Then
 ConsoleWrite('Тест "электронный адрес не зарегистрирован в системе" пройден успешно' & @CRLF)
Else
 ConsoleWrite('Тест "электронный адрес не зарегистрирован в системе" завершился с ошибкой' & @CRLF)
 MsgBox(0, "Сообщение", 'Тест "электронный адрес не зарегистрирован в системе" завершился с ошибкой')
EndIf

6. Проверка отправки пароля (необходима ручная проверка электронной почты)

; Заполняем электронный адрес
$oMail = _IEGetObjById ($oIE, "ctl00_ContentPlaceHolder1_textBoxEmail")
$oMail.value = "mаrinа@lаger.ru"
; Нажимаем на кнопку "Отправить пароль"
$oSend = _IEGetObjById($oIE, "ctl00$ContentPlaceHolder1$buttonSendPassword")
_IEAction ($oSend, "click")
; Ждем, пока перезагрузится странинца
_IELoadWait ($oIE)
; Проверяем валидатор: выводится ли сообщение "Ваш пароль был успешно отправлен на  "
$oSpan4 = _IEGetObjById ($oIE, "ctl00_ContentPlaceHolder1_labelOkMessage")
If $oSpan4 0 And $oSpan4.innerText="Ваш пароль был успешно отправлен на " Then
 ConsoleWrite('Тест "отправления письма" пройден успешно' & @CRLF)
Else
 ConsoleWrite('Тест "отправления письма" завершился с ошибкой' & @CRLF)
 MsgBox(0, "Сообщение", 'Тест "отправления письма" завершился с ошибкой')
EndIf

7. Проверка перенаправления на главную страницу по кнопке «Ok», после отправки пароля

; Нажимаем на кнопку "Ок"
$oOk = _IEGetObjById($oIE, "ctl00_ContentPlaceHolder1_buttonOk")
_IEAction ($oOk, "click")
; Проверяем окрытие страницы после нажатия кнопки ок
_IELoadWait ($oIE)
If _IEPropertyGet($oIE, "locationurl") = "http://ezmanageonline.com/Default.aspx" Then
 ConsoleWrite('Тест "открытие главной страницы" пройден успешно'& @CRLF)
Else
 ConsoleWrite('Тест "открытие главной страницы" завершился ошибкой' & @CRLF)
 MsgBox(0, "Сообщение", 'Тест "открытие главной страницы" завершился с ошибкой')
EndIf
; Закрывем браузер
_IEQuit ($oIE)

Выводы

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

Ссылки

1.  Материал из Википедии — свободной энциклопедии http://ru.wikipedia.org/wiki/AutoIt

Метки: тестирование

Добавить комментарий