Основы программирования на Java

Программа курса

Тема 1. Введение в java-программирование. Основы языка — переменные

  • Язык программирования java. Технологии java: SE, EE, ME, Java FX. SE JDK и JRE — назначение и состав.
  • Установка и настройка SE JDK.
  • Технологии и инструменты для программирования на java.
  • Установка и настройки IDE.
  • Структура проекта (с учётом выбранной IDE). Размещение файлов с исходными текстами и файлов классов.
  • Понятие пакета. Соотношение пакета и каталога файловой системы. Правила именования пакетов.
  • Создание проекта, пакета и класса в IDE.
  • Структура приложения. Основные правила написания java-приложения.
  • Синтаксис языка.
  • Ключевые слова. Идентификаторы. Правила именования в java. Литералы (константы).
  • Комментарии. Комментарии документации (javadoc).
  • Понятие ТИП. Примитивные типы данных. Ссылочные типы данных. Классы-обертки.
  • Операторы присваивания, арифметические (унарные и бинарные).
  • Операторы сравнения и логические операции.
  • Побитовые операции и сдвига.

Тема 2. Операторы управления. Циклы

  • Условные операторы if-then / if-then-else, switch.
  • Циклы while и do-while.
  • Операторы break и continue.
  • Цикл for.

Тема 3. Массивы. Работа с библиотечными классами

  • Массивы.
  • Одномерные, двумерные, многомерные, нерегулярные массивы.
  • Различные сортировки массивов.
  • Классы оболочки примитивных типов.
  • Автоупаковка и автораспаковка.
  • Статический импорт.
  • Класс Math, Random.
  • Класс Date, DateFormat, Calendar, GregorianCalendar.

Тема 4. Принципы ООП

  • Основные понятия ООП.
  • Классы и Объекты.
  • Структура построения класса (поля, методы, логические блоки).
  • Спецификаторы доступа.
  • Объявление класса.
  • Методы и конструкторы.
  • Ключевое слово this.

Тема 5. Классы и объекты. Enum. String

  • Передача информации в методы и конструкторы.
  • Методы с переменным числом параметров.
  • Возврат значения из метода.
  • Перегрузка методов.
  • Логические блоки (статические и нестатические).
  • Ключевые слова static и final.
  • Тип Перечисление (Enum).
  • Класс String.
  • Использование классов StringBuilder/StringBuffer.

Тема 6. Наследование. Класс Object

  • Наследование.
  • Переопределение методов.
  • Скрытие полей.
  • Ключевое слово super.
  • Final классы и методы.
  • Класс Object.
  • Методы класса Object и правила их переопределения.

Тема 7. Абстрактные классы. Интерфейсы

  • Абстрактные методы и классы.
  • Интерфейсы.
  • Реализация и наследование интерфейсов.
  • Клонирование объектов.
  • Вложенные, внутренние и анонимные (неименованные) классы.

Тема 8. Исключения

  • Исключения. Перехват исключений. Обработка исключений.
  • Блоки try, catch, finally.
  • Определение исключений в методах.
  • Генерация исключений в блоках.
  • Цепочки исключений.
  • Сообщения об исключительных ситуациях.
  • Создание классов исключений.

Тема 9. Ввод-вывод данных

  • Сериализация.
  • Потоки ввода-вывода.
  • Байтовые потоки.
  • Символьные потоки.
  • Буферированные потоки.
  • Сканирование и форматирование.
  • Потоки данных.
  • Сохранение и загрузка объектов.
  • Потоки объектов.
  • Файловый ввод-вывод.
  • Файловые объекты.
  • Файлы произвольного доступа.
  • Библиотеки для ввода-вывода.

Тема 10. Параметризация. Коллекции

  • Параметризация классов и методов (generic).
  • Общие определения коллекций.
  • Интерфейс Collection.
  • Списки.
  • Множества.
  • Карты отображений.
  • Сравнение объектов.
  • Унаследованные коллекции.
  • Класс Collections.
  • Класс Arrays.

Тема 11. Основы баз данных

  • Реляционные базы данных.
  • Разработка и программирование.
  • Инструменты работы с базами данных.
  • Операторы создания и модификации таблиц баз данных.
  • Запись данных в таблицы баз данных.
  • Модификация данных в записях.
  • Удаление записей из базы данных.
  • Выборка данных из таблиц базы данных.

Тема 12. JDBC: Работа с базами данных в java

  • JDBC — интерфейс для работы с базами данных.
  • Архитектура JDBC.
  • Подключение к базе данных.
  • Выполнение JDBC-операторов в java-программах.
  • Пример java-приложения для работы с базами данных.

Тема 13. Потоки. Многопоточность. Знакомство с JFC и SWING

  • Жизненный цикл потока.
  • Управление потоками.
  • Подпроцессы — демоны.
  • Методы и инструкции synchronized.
  • JFC и Swing.
  • Компиляция и запуск Swing-программ.
  • Примеры Swing-приложений.
  • Компоненты Swing. Модели. Базовые классы для компонент Swing.
  • Look and Feel. Изменение Look and Feel.
  • Менеджеры размещения.
  • Абсолютное позиционирование.
  • Контейнеры и компоненты GUI.
  • Фреймы и панели.

Тема 14. Элементы библиотеки SWING. Обработка событий

  • Панели с прокруткой. Панели с разбиением.
  • Диалоги.
  • Рамки.
  • Actions.
  • Event Listeners — слушатели событий.
  • Реализация слушателя событий.
  • Слушатели, поддерживаемые Swing-компонентами.
  • Меню. Инструментальные линейки.
  • Текстовые компоненты.
  • Кнопки, чек-боксы, радиокнопки.
  • Комбо-боксы.
  • Метки.
  • Иконки и изображения.
  • Списки. Подсказки.
  • Таблицы.
  • Деревья.
  • Разработка настольных приложений с использованием файлов и баз данных.
  • Создание jar-архивов.

Автоматизированное тестирование веб-приложений

Программа курса

Тема 1. Введение в Java-программирование. Основы языка — переменные

  • Язык программирования Java. Технологии Java: SE, EE, ME, Java FX. SE JDK и JRE — назначение и состав.
  • Установка и настройка SE JDK.
  • Технологии и инструменты для программирования на Java.
  • Установка и настройки IDE.
  • Структура проекта (с учётом выбранной IDE). Размещение файлов с исходными текстами и файлов классов.
  • Понятие пакета. Соотношение пакета и каталога файловой системы. Правила именования пакетов.
  • Создание проекта, пакета и класса в IDE.
  • Структура приложения. Основные правила написания Java-приложения.
  • Синтаксис языка.
  • Ключевые слова. Идентификаторы. Правила именования в Java. Литералы (константы).
  • Комментарии. Комментарии документации (javadoc).
  • Понятие ТИП. Примитивные типы данных. Ссылочные типы данных. Классы-обертки.
  • Операторы присваивания, арифметические (унарные и бинарные).
  • Операторы сравнения и логические операции.
  • Побитовые операции и сдвига.

Тема 2. Класс Scanner. Операторы управления. Циклы

  • Класс Scanner.
  • Условные операторы if-then / if-then-else, switch.
  • Циклы while и do-while.
  • Операторы break и continue.
  • Цикл for.

Тема 3. Массивы. Работа с библиотечными классами

  • Массивы.
  • Одномерные, двумерные, многомерные, нерегулярные массивы.
  • Различные сортировки массивов.
  • Классы оболочки примитивных типов.
  • Автоупаковка и автораспаковка.
  • Статический импорт.
  • Класс Math, Random.
  • Класс Date, DateFormat, Calendar, GregorianCalendar.

Тема 4. Принципы ООП

  • Основные понятия ООП.
  • Структура построения класса (поля, методы, логические блоки).
  • Спецификаторы доступа.
  • Объявление класса.
  • Методы и конструкторы.
  • Ключевое слово this.

Тема 5. Классы и объекты. Enum. String

  • Передача информации в методы и конструкторы.
  • Методы с переменным числом параметров.
  • Возврат значения из метода.
  • Перегрузка методов.
  • Логические блоки (статические и нестатические).
  • Ключевые слова static и final.
  • Тип Перечисление (Enum).
  • Класс String.
  • Использование классов StringBuilder/StringBuffer.

Тема 6. Автоматизация процессов тестирования

  • Введение в автоматизацию процессов тестирования.
  • Автоматизация тестов: технологии, методы, средства.
  • Хорошая архитектура тестового набора: почему это ТАК важно.
  • Проектирование автотестов: чем оно отличается от проектирования ручных тестов.

Тема 7. Введение в Selenium 2.0

  • Что такое Selenium, для чего он предназначен.
  • Основные элементы Selenium 2.0: Selenium IDE, Selenium RC, Selenium Webdriver, Selenium Server, Selenium Grid.
  • Установка Selenium IDE, запуск «табличных» тестов в браузере.

Тема 8. Рекордер Selenium IDE

  • Запись, воспроизведение, отладка теста в рекордере Selenium IDE.
  • Обзор набора команд, которые можно использовать в Selenium IDE.
  • Установка Selenium Server, запуск «табличных» тестов из командной строки.

Тема 9. Перевод тестов на язык программирования (JUnit)

  • Установка среды разработки Eclipse.
  • Cоздание и настройка проекта в среде разработки.
  • Перенос тестов из Selenium IDE в среду разработки.
  • Запуск тестов из среды разработки.

Тема 10. Доработка тестов

  • Отладка тестов — пошаговое прохождение и просмотр значений переменных.
  • Добавление простых проверок при помощи Selenium IDE.
  • Собственные методы инициализации и завершения.

Тема 11. Перевод тестов на язык программирования (TestNG)

  • Создание конфигурационного файла TestNG, запуск тестов из командной строки.
  • Параметризация запуска тестов через конфигурационный файл TestNG.
  • Параметризация запуска тестов через отдельный конфигурационный файл.
  • Передача параметров через командную строку при запуске тестов.
  • Динамическая генерация тестовых данных.
  • Подгрузка тестовых данных из внешних источников – текстовый файл, Excel.

Тема 12-13. Параллельный запуск тестов

  • Возможности фреймворка для запуска тестов TestNG.
  • Выполнение тестов параллельно на нескольких машинах с использованием Selenium Grid 2.0.
  • Выполнение тестов параллельно с использованием HtmlUnitDriver.
  • Встраивание тестов в системы непрерывной интеграции: Cruise Control, Jenkins (Hudson).
  • Выполнение тестов «в облаках»: CloudTesting, Sauce OnDemand.
  • Нагрузочное тестирование с использованием Selenium: BrowserMob.

Тема 14. Журналирование выполнения тестов

  • Снятие скриншотов.
  • Журналирование средствами фреймворка TestNG.
  • Журналирование с использованием EventFiringWebDriver.

Тема 15. Расширения для разработки тестов

  • Selenium IDE, Sauce IDE.
  • Fluent Selenium.
  • Тестирование веб-приложений под Android.
  • Работа с почтой (JavaMail).
  • Работа с базой данных (Hibernate).
  • Удалённый доступ по протоколам Telnet и FTP (Jakarta Commons Net).
  • Проверка знаний, итоговый тест.