Плюсы и минусы автоматизации, пример из жизни
DESCRIPTION
Презентация Влады Шпатыковской "Плюсы и минусы автоматизации, пример из жизни" с конференции Z-Tech 9.02.2013TRANSCRIPT
Плюсы и минусы
автоматизации, пример из
жизни
О себе
Владилена Шпатыковская
Тестировщик, тест менеджер,
автоматизатор.
Обучение, менеджмент, автоматизация
ПО.
Интересы: теория тестирования,
распределение времени, управление
Цель: развивать тестирование и автоматизацию в
своей компании
О чем я расскажу
Выбор инструмента
Создание первого с помощью рекордера
Оптимизация
Тестирования дизайна
Переход на WebDriver
Идея создания Testing Framework
Пример• Проект на 2 года
• Несколько магазинов на одной платформе
• В конце спринта демо и деплоймент
• 5 разработчиков, 1 тестировщик
• В спринте 6-8 новых фич
• Всѐ нужно покрыть тестами
Недовольные клиенты
Дефекты
Репутация
ЧТО БЫЛО?
Налаженный процесс ручного тестирования
Как начать автоматизацию?
Выбрать инструмент
Научиться писать тесты
Запуск тестов
Создание тестов
Выполнение команд в браузере
Раньше тест кейс выглядел так
Тест кейс:
перейти по линке
убедится, что страница открылась
открыть логин форму
выбрать «Sign in with Facebook»
ввести логин и пароль, нажать на кнопку
Ожидаемый результат – успешная авторизация
Тест записан
рекордером
@Testpublic void testUntitled() {
selenium.open("https://soundcloud.com/");assertEquals(selenium.getTitle(), "SoundCloud - Hear the world’s sounds");selenium.click("link=Log in");selenium.waitForPopUp("connectWithSoundCloud", "30000");selenium.selectWindow("name=connectWithSoundCloud");selenium.click("link=Sign in with Facebook");selenium.waitForPageToLoad("30000");assertEquals(selenium.getTitle(), "Войти | Facebook");selenium.click("id=u_0_1");selenium.waitForPageToLoad("30000");
}
Тестов стало много
Нужна оптимизация
Было
Стало
ТЕСТ
ЛОГИКА
ШАГИ ТЕСТА
ДЕЙСТВИЯ СТРАНИЦЫ
ЭЛЕМЕНТЫ
ПОИСК ПО ЛОКАТОРУ
МЕТОДЫПРОВЕРКИ
ДАННЫЕ
.XML
Textbox
Button
Создали шаблоны страниц
Написали вспомогательные методы
Перестали запускать сервер руками
Вынесли работу с браузером в отдельный класс
seleniumRC=new ReleniumRC();seleniumRC.RunSelenium();
selenium.StopSelenium();seleniumRC.Stop();
Тестирование беты
private void NTpopup(){
aut3.WinWaitActive ( general.title_popup, general.text_popup, 1);if (aut3.WinExists ( general.title_popup, general.text_popup ).Equals(0)){
aut3.Send ( "student\t", 1 );aut3.Send ( "study", 1 );aut3.Send ( "{ENTER}", 0 );
}}
Тестовые Данные Страницы
Вспомогательные методы
Браузер
Selenium 2.0 - WebDriver
Переписали тестыIWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl(general.URL_Base);
selenium.open()
driver.FindElement(By.Id(elementID)).Click();
selenium.Click(id);
driver.FindElement(By.Id(elementID)).SendKeys(name);
selenium.Type(id, name);
Selenium RC
WebDriver
• Check
• UnCheck
• IsChecked
• …
Checkbox
• Type
• HasValue
• Focut
• Clear
• …
Textbox
• Click
• DoubleClick
• ClickAndWait
• …
Button
Table Items Menu Panel Form
Бэклог и приоритеты
Чего хотел кастомер?
Автоматизировать тестирование дизайна
Сделать screenshot каждой страницы во всех
браузера
Картинки сохранять в папки с именами
браузеров
Использовать comparing для сравнения
картинок
private void MakeScreenShot ( IWebDriver driver, string path ){
Screenshot screen = ((ITakesScreenshot) driver).GetScreenshot();
StringBuilder filepath = new StringBuilder ( path );filepath.Append ( “.jpg” ) ;screen.SaveAsFile ( filepath.ToString(), System.Drawing.Imaging.ImageFormat.Jpeg );
}
Метод для снятия screenshots
Comparing для накладывания картинок
Результат накладывания
Safari Extension
Драйвера для IE, Chrome
Firefox профайл
данные
драйвер
логика
Работа с браузером
Тестовые шаги
Идеальныйфреймворк
Нажимаем на кнопку...
Исключен «человеческий фактор»
Точное и быстрое выполнение
Меньшие затраты на поддержку чем на
тестирование вручную
Отчеты
Выполнение без вмешательства (могут
выполнятся ночью)
Плюсы автоматизации
Долгий старт
Повторяемость
Затраты на разработку, поддержку и анализ
результатов
Пропуск мелких ошибок
Обновление ПО
Минусы автоматизации
Итоги
• внедряйте автоматизацию только тогда, когда есть
стабильные процессы тестирования
• в команде должен быть опытный специалист по
автоматизации с выделенным временем
• руководство должно поддерживать ваши начинания
• начните с малого, не забывайте про план и стратегию
• ответственно относитесь к выбору инструмента для
автоматизации
Спасибо за внимание!