Основы языка Java для тестировщиков

Программирование и IT

Тестировщик – одна из важнейший профессий в ИТ-индустрии. Стабильные и надёжные приложения – результат грамотной работы тестировщика, тщательно проверившего все аспекты системы.

В рамках программы повышения квалификации «Основы языка Java для тестировщиков» слушатели познакомятся с профессией тестировщика, синтаксисом и семантикой языка Java, изучат типы данных, классов, объектов, методов перегрузки, наследования, исключений, многопоточного программирования, а также узнают об особенностях работы тестировщика и выполнят несколько практических заданий, которые можно будет добавить в портфолио.

Программа курса интересна:

  • начинающим ит-специалистам для старта в специальности «Тестировщик»,
  • специалистам, желающим освоить современный востребованный язык программирования, — основу для общения между специалистами, работающих на разных языках программирования,
  • всем, кто увлекается программированием.

После успешного прохождения итоговой аттестации слушателям выдается удостоверение о повышении квалификации МГТУ им. Н.Э. Баумана.

Записаться на курс

Ближайший старт групп

29 мая

Длительность курса

56 ак. часов

Форматы обучения

онлайн в режиме реального времени
Конкуренция на рынке труда?
Сейчас не хватает специалистов
2 400 компаний
Сейчас ищут тестировщика ПО
90 000 рублей
Средняя зарплата тестировщика/QA Engineer

Чему вы научитесь

писать и понимать несложные программы на Java

правильно оформлять программный код

основам для глубокого изучения архитектурных подходов в программировании

основным подходам к основам «многопоточного программирования»

компонентным подходам в программировании

основам языка Java для профессии тестировщика

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

7 тематических
модулей
56 академических
часов
40 аудиторных
часов
Вступление
  • Введение. Литература.
  • История и причины возникновения языков программирования.
  • Типы языков программирования (компиляторы, интерпретаторы).
  • Преимущества и недостатки языков assembler, basic, fortran, ada, pascal, algol, list, prolog, c/c++ и др.
  • Причина появления Java.
  • Существующие версии, установка JVM.
  • Среды разработки, их установка.
  • Точки входа в программу.
  • Первая простейшая программа.
  • Написание, сборка, запуск.
  • Операции. Арифметические операции. Деление по модулю.
  • Инкремент, декремент. Побитовые операции. Логические операции.
  • Тернарная операция. Присваивание.
  • Приоритет операций, использование скобок.
  • Операторы выбора if, switch. Циклы (while, do-while, for), вложенные циклы.
  • Операторы перехода break, continue, return, goto. Почему не стоит использовать goto (Спагетти-код)?
Основы Java
  • Синтаксис Java. Примитивные типы.
  • Типы с плавающей точкой. Логический тип.
  • Литералы. Приведение типов.
  • Переменные, объявление.
  • Динамическая инициализация. Область видимости.
  • Массивы. Одномерные массивы, многомерные массивы.
  • Альтернативный способ объявления массивов.
  • Выведение типов локальных переменных (var). Некоторые ограничения var.
  • Строки, тип String (кратко).
  • Приведение типов, автоматическое повышение типов.
Основы объектно-ориентированного программирования
  • Объектно-ориентированный подход. Наследование. Инкапсуляция. Полиморфизм.
  • Классы в Java. Объявление классов. Создание объектов, оператор new.
  • Поля, объявление. Методы, объявление. Ключевое слово this.
  • Конструкторы. Последовательность создания объекта в памяти.
  • Деструкторы. Почему их нет. Ключевое слово finalize.
  • Сборщик мусора. Виды ссылок.
  • Перегрузка конструкторов, параметризованные конструкторы. Принцип первичного конструктора. Перегрузка методов.
  • Статические методы, переменные. Ключевое слово static, final. Отличие super от this.
  • Наследование. Доступ к членам класса при наследовании. Модификаторы доступа public, default, private, protected. Ключевое слово super.
  • Абстрактные классы, интерфейсы. Финальные классы. Реализация абстрактных классов, интерфейсов.
  • Класс Object. Методы предоставляемые классом. Хэш, сравнение по значению и по ссылке.
  • Классы для примитивов.
  • Перечисления. Перечисления являются классами. Базовый класс Enum. Классы-оболочки примитивов. Автоупаковка, автораспаковка. Предотвращение ошибок, предостережение.
  • Аннотации. Объявление, политика хранения. Получение аннотаций, рефлексия. Встроенные аннотации.
Более сложные вопрос объектно-ориентированного программирования
  • Пакеты. Импорт пакетов. Создание своих пакетов. JAR-файлы.
  • Соглашение об именовании классов, методов, переменных. Snake notation, camel notation. Магические константы.
  • Множественное наследование, проблемы множественного наследования. Интерфейсы. Отличие от абстрактных классов. Переменные в интерфейсах.
  • Расширение интерфейсов. Реализация по умолчанию. Закрытые (приватные) методы. Принцип Барбары Лисков.
  • Ошибки в программах и их обработка. Исключения. Типы исключения, иерархия исключений. Перехват исключений try-catch-finally. Множественный перехват. Неперехваченные исключения. Генерация исключений throw. Конструкция throws. Встроенные исключения. Создание собственных исключений. Сцепленные исключения (цепочки исключений).
  • Строки. Класс String. Иммутабельность. Сравнение строк. Модификация.
  • Класс StringBuilder. Класс StringBuffer.
  • Обобщения. Простые обобщения. Общая форма обобщенного класса. Обобщенные интерфейсы. Наложение ограничений на обобщения сверху и снизу. Ограничения обобщений.
  • Ссылки. Куда дели указатели? Связь с Objective C, Delphi. Сборщик мусора и типы ссылок (4 типа ссылок).
Работа со стандартными библиотеками Java
  • Коллекции. Интерфейс Collection, List, Set, SortedSet, NavigableSet, Queue, Deque. Массивы, связные списки. Классы коллекций: ArrayList, LinkedList. Наборы Set: HashSet, LinkedHashSet, TreeSet, EnumSet. Очереди. Векторы. Стек.
  • Обход коллекций в цикле, итератор, Spliterator.
  • Устаревшие коллекции и итераторы: Enumeration, Dictionary, Hashtable, Properties.
  • Класс Map и его наследники. Порядок хранения данных в Map. Коллизии в HashMap.
  • Компараторы. Проблема сборщика мусора при работе с Map. Еще раз о типах ссылок.
  • Лямбда-выражения. Функциональные интерфейсы. Примеры. Обобщенные функциональные интерфейсы. Ссылки на методы, конструкторы. Предопределенные функциональные интерфейсы.
  • Ввод-вывод. Классы, интерфейсы. Класс File. Потоки ввода-вывода. Буферизация. Интерфейсы AutoClosable, Closable. Обработка исключений при вводе-выводе.
  • Регулярные выражения. Синтаксис, применение. Сайты-хелперы.
  • Сереализация.
Сложные вопросы программирования
  • Введение в паттерны программирования. Зачем нужны паттерны?
  • Синглтоны. Ленивая инициализация. Слушатель/издатель. Машина состояний. Сервис-локаторы.
  • Антипаттерны.
  • Многопоточное программирование.
  • Многозадачность, виды. Потоки. Перимущества многопоточности перед многозадачностью.
  • Создание потоков. Приоритеты потоков. Состояние гонки, преодоление. Взаимная блокировка. Синхронизация потоков. Синхронизированные методы. Атомарные операции. Атомарные примитивы. Главный поток. Взаимодействие между потоками. Приостановка, возобновление, остановка потоков. Ключевое слово volatile. Сопрограммы. Корутины.

Расписание

Даты проведения
Время проведения курса
Дни недели
Формат обучения
Стоимость
29 мая
19 июн
18:45 - 21:55
пн ср пт
онлайн в режиме реального времени
43 200 руб

Преподаватели курса

Преподавательский состав Центра дополнительного образования МГТУ им. Н.Э. Баумана состоит из профессионалов лучшего технического ВУЗа России с многолетним опытом работы в ведущих отраслевых компаниях. Многие из наших специалистов имеют ученые степени и звания.

Наши преподаватели искренне любят свое дело: структурированно и последовательно излагают материал, доступно объясняют верные решения сложных профессиональных задач и разбирают только реальный опыт крупнейших российских и зарубежных компаний. Так, после окончания обучения слушатели Центра дополнительного образования МГТУ им. Н.Э. Баумана могут сразу же применять свои знания и навыки на практике.

Резюме «Тестировщик»

Знания и навыки

  • Проведение функционального, интеграционного тестирования

  • Обработка данных о багах от пользователей, составление тест-кейсов, чек-листов

  • Разработка тестовой документации в системе управления тестированием

  • Актуализация тестовых сценариев в соответствии с изменениями в функционале

  • Взаимодействие с аналитиками и командой разработки программного продукта

  • Тестирование backend 90% времени

Заработная плата от:
90 000 руб.
Желаемая должность:
Тестировщик/QA Engineer

Документы об окончании

Задать свой вопрос
+7 (495) 182-83-85
do@bmstu.ru Мы работаем ежедневно с 9:00 до 21:00
+7 (495) 182-83-85
do@bmstu.ru Мы работаем ежедневно с 9:00 до 21:00