Добрый день, Виктор. Для автоматизации тестирования понадобятся базовые знания языка Java, рекомендую выбрать восьмую версию. Чтобы вы не тратили время на изучение "лишних" тем, перечислю их по степени важности. Комментарии типа "знать на базовом уровне” означают, что для начала работы достаточно базовых знаний, но в процессе, само собой, их придется углубить.
Обязательно нужно знать:
[Базовые инструменты] Java Development Kit (JDK), IntelliJ IDEA (или любая другая среда разработки)
[Java Core] База (переменные, типы данных, циклы, массивы, методы, пакеты, константы, операторы, кодовые блоки)
[Java Core] ООП (классы, объекты, конструкторы, наследование, инкапсуляция, полиморфизм, немного интерфейсы, класс Object, static, модификаторы доступа)
[Java Core] Коллекции (List, ArrayList, HashSet, HashMap)
[Java Core] Исключения
[Java Core] Работа со строками
[Инструменты] Основы Maven (создание проектов, подключение зависимостей/библиотек, запуск тестов)
[Инструменты] Скорее всего придется иметь дело с библиотекой TestNG (отвечающей собственно за написание тестов), поэтому ее нужно знать хотя бы на базовом уровне (Assert, @Test, @DataProvider, testng.xml)
[Инструменты] Какой-нибудь фреймворк для логирования (например, Log4J2). Тоже на базовом уровне (создание логера и логирование событий), углубляться в настройки большого смысла нет.
[Java Core] — из обязательного блока можно разобрать по любой книге по Java.
Что может помочь:
Stream API (продвинутая техника обработки данных, может быть сложна для начинающего изучать Java)
Анонимные классы, лямбды (к теме Stream API)
Многопоточность (В тестировании вряд ли придется писать многопоточный код, поэтому из этой темы можете разобрать только вопросы о том, что такое потоки и как их можно запускать. Углубляться в эту тему не стоит)
JDBC (может быть полезно подключаться к БД и вытягивать оттуда данные)
Потоки ввода/вывода (может быть придется немного поработать с файлами)
Перечисления (enum) могут быть полезными в некоторых задачах
Совсем не нужные темы:
Reflection API (если только не захотите разобраться, как работают аннотации)
Обобщения (если всю базу уже разобрали, можете посмотреть в сторону обобщений)
Графический интерфейс (awt, swing, javafx) — сто процентов бесполезные темы
Сокеты
Внутренние, вложенные, локальные классы (нужны только анонимные внутренние классы)
Необходимо понимать смежные с Java темы:
HTTP
REST/SOAP сервисы (если говорим о тестировании этих сервисов)
Структура веб-страниц, селекторы, HTML
Очень может пригодиться знание SQL
В зависимости от задач, к описанному выше добавится:
Jenkins или GitLab CI
SoapUI (тестирование SOAP/REST сервисов)
JMeter (нагрузочное тестирование)
Docker
Selenium Grid
Обязательным инструментом для автоматизации тестирования в настоящий момент является библиотека Selenium (Selenium WebDriver, не имеет смысла начинать работу с версии младше третьей). По ней можно найти довольно много материалов в интернете, с ходу могу назвать точно 3 сайта с очень большим количеством полезной информации: Guru99, ToolsQA, SeleniumHQ.
У нас, на образовательном портале GeekBrains, есть курсы как по изучению Java (например, Java.Уровень 1, Java для чайников: интенсив “Основы программирования Java”, факультет Java-разработки GeekUniversity), так и по тестированию (Тестировщик ПО, Инженер автоматизированного тестирования ПО).