АВТОМАТИЗИРОВАННОЕ
ТЕСТИРОВАНИЕ
Prepared by: Anton Sirota
Skype: yader-2007
• Определение:
Процесс верификации программного
обеспечения, при котором основные функции и
шаги теста, такие как запуск, инициализация,
выполнение, анализ и выдача результата,
выполняются автоматически при помощи
инструментов для автоматизированного
тестирования.
Автоматизированное
тестирование
• Автотесты работают быстрее, чем человек.
• Автотесты выполняются с большей точностью.
• Автоматизация тестирования позволяет
повысить качество продукта.
• Автоматизация может использоваться
практически во всех процессах тестирования.
• Автотесты могут выполняться независимо от
времени.
Зачем нужна автоматизация?
• Функциональные тесты
• Нагрузочные тесты
• GUI тесты
• Тестирование безопасности
• Тестирование производительности
• Тестирование баз данных
• Unit-тесты
Типы автоматизированных тестов
Какие приложения можно
автоматизировать?
Web Desktop Mobile
Инструменты
Selenium – является одним из основных
инструментов для автоматизированного
управления браузерами.
Принцип взаимодействия:
Selenium
Selenium
Объектно-ориентированное
программирование
• Абстракция
• Инкапсуляция
• Наследование
• Полиморфизм
• Класс
• Объект
Наследование
public class House {
public String address;
public void setAddress(String address) {
this.address = address;
}
}
----------------------------------------------------------------------------------------------------------------
public class MyHouse extends House {
public String material;
public void setMaterial(String material) {
this.material = material;
}
}
Абстракция
------------------------------------------------------------------------------------------------------------------
public abstract class UserActions {
public abstract void registerUser(User user);
public BigDecimal getUserBalance() {
return siteNavigator.goToAccountPage().getUserCashBalance();
}
}
------------------------------------------------------------------------------------------------------------------
public class UserActionsUK extends UserActions {
public abstract void registerUser(User user) {
siteNavigator.gotoHomePage().clickRegisterLink().fillInRegistrationForm(user);
}
}
------------------------------------------------------------------------------------------------------------------
public class UserActionsCA extends UserActions {
public abstract void registerUser(User user) {
siteNavigator.gotoRegistrationPage().fillInRegistrationForm(user);
}
}
------------------------------------------------------------------------------------------------------------------
Инкапсуляция
Модификаторы доступа:
• Private – доступен только в своем классе
• Protected – доступен в своем классе и в
дочерних классах
• Public – доступен по всему проекту
Полиморфизм
Полиморфизмом назвается возможность работать с несколькими
типами так, как будто это один и тот же тип и в то же время
поведение каждого типа будет уникальным в зависимости от его
реализации.
Java Core
• Типы данных (String, Integer, Boolean, BigDecimal,
int, boolean, double, etc.)
• Методы для работы с данными (String.format(a,b),
Boolean.toString(), etc.)
• Массивы (String[], int[])
• for/switch/while
• try-catch
• Исключения Exceptions(виды исклчюений)
• Collections (Map, Set, List, Queue, etc.)
PageObject паттерн
• Page Object – это структурный шаблон проектирования,
используемый в автоматизированном тестировании
пользовательского интерфейса для разделения
высокоуровневой тестовой логики от низкоуровневой
логики поиска конкретных элементов пользовательского
интерфейса.
• Page Object помогает разделять логику и реализацию
• В Page Object одна страница чаще всего представляет
собой отдельный класс.
PageObject паттерн
PageObject паттерн
Example 1
Example 2
Как выглядят тесты?
Вопросы?

Фвтоматизированное тестирование с чего начать Part1

  • 1.
  • 2.
    • Определение: Процесс верификациипрограммного обеспечения, при котором основные функции и шаги теста, такие как запуск, инициализация, выполнение, анализ и выдача результата, выполняются автоматически при помощи инструментов для автоматизированного тестирования. Автоматизированное тестирование
  • 3.
    • Автотесты работаютбыстрее, чем человек. • Автотесты выполняются с большей точностью. • Автоматизация тестирования позволяет повысить качество продукта. • Автоматизация может использоваться практически во всех процессах тестирования. • Автотесты могут выполняться независимо от времени. Зачем нужна автоматизация?
  • 4.
    • Функциональные тесты •Нагрузочные тесты • GUI тесты • Тестирование безопасности • Тестирование производительности • Тестирование баз данных • Unit-тесты Типы автоматизированных тестов
  • 5.
  • 6.
  • 7.
    Selenium – являетсяодним из основных инструментов для автоматизированного управления браузерами. Принцип взаимодействия: Selenium
  • 8.
  • 15.
  • 16.
    Наследование public class House{ public String address; public void setAddress(String address) { this.address = address; } } ---------------------------------------------------------------------------------------------------------------- public class MyHouse extends House { public String material; public void setMaterial(String material) { this.material = material; } }
  • 17.
    Абстракция ------------------------------------------------------------------------------------------------------------------ public abstract classUserActions { public abstract void registerUser(User user); public BigDecimal getUserBalance() { return siteNavigator.goToAccountPage().getUserCashBalance(); } } ------------------------------------------------------------------------------------------------------------------ public class UserActionsUK extends UserActions { public abstract void registerUser(User user) { siteNavigator.gotoHomePage().clickRegisterLink().fillInRegistrationForm(user); } } ------------------------------------------------------------------------------------------------------------------ public class UserActionsCA extends UserActions { public abstract void registerUser(User user) { siteNavigator.gotoRegistrationPage().fillInRegistrationForm(user); } } ------------------------------------------------------------------------------------------------------------------
  • 18.
    Инкапсуляция Модификаторы доступа: • Private– доступен только в своем классе • Protected – доступен в своем классе и в дочерних классах • Public – доступен по всему проекту
  • 19.
    Полиморфизм Полиморфизмом назвается возможностьработать с несколькими типами так, как будто это один и тот же тип и в то же время поведение каждого типа будет уникальным в зависимости от его реализации.
  • 20.
    Java Core • Типыданных (String, Integer, Boolean, BigDecimal, int, boolean, double, etc.) • Методы для работы с данными (String.format(a,b), Boolean.toString(), etc.) • Массивы (String[], int[]) • for/switch/while • try-catch • Исключения Exceptions(виды исклчюений) • Collections (Map, Set, List, Queue, etc.)
  • 21.
    PageObject паттерн • PageObject – это структурный шаблон проектирования, используемый в автоматизированном тестировании пользовательского интерфейса для разделения высокоуровневой тестовой логики от низкоуровневой логики поиска конкретных элементов пользовательского интерфейса. • Page Object помогает разделять логику и реализацию • В Page Object одна страница чаще всего представляет собой отдельный класс.
  • 22.
  • 23.
  • 24.
    Example 1 Example 2 Каквыглядят тесты?
  • 25.