Фвтоматизированное тестирование с чего начать part1
TRANSCRIPT
• Определение:
Процесс верификации программного обеспечения, при котором основные функции и шаги теста, такие как запуск, инициализация, выполнение, анализ и выдача результата, выполняются автоматически при помощи инструментов для автоматизированного тестирования.
Автоматизированное тестирование
• Автотесты работают быстрее, чем человек.
• Автотесты выполняются с большей точностью.
• Автоматизация тестирования позволяет повысить качество продукта.
• Автоматизация может использоваться практически во всех процессах тестирования.
• Автотесты могут выполняться независимо от времени.
Зачем нужна автоматизация?
• Функциональные тесты
• Нагрузочные тесты
• GUI тесты
• Тестирование безопасности
• Тестирование производительности
• Тестирование баз данных
• Unit-тесты
Типы автоматизированных тестов
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 одна страница чаще всего представляетсобой отдельный класс.