2. Введение в Java. Тестирование. | Технострим
2. Введение в Java. Тестирование. | Технострим
https://www.youtube.com/watch?v=pXUybW4ON4w
• Преподаватель анализирует домашние задания студентов, отмечая проблемы с форматированием, синтаксисом и логикой кода.
• Некоторые студенты меняли код, стирали комментарии и переименовывали классы.
• Примеры плохого кода, включая проблемы с форматированием, логикой и синтаксисом.
• Преподаватель обсуждает, как сделать код более понятным и оптимальным.
09:13 Советы по написанию кода
• Преподаватель дает советы по написанию кода, включая использование отступов, использование интерфейсов и правильное форматирование строк.
• Обсуждаются альтернативы использованию интерфейсов и способы сделать код более понятным для других разработчиков.
• Обсуждение различных ошибок в коде, включая проблемы с порядком модификаторов, неправильные названия переменных и методов, а также проблемы с тестированием.
• Упоминается, что некоторые студенты не тестировали свои программы, а просто смотрели на результат.
• Тестирование рассматривается как способ уменьшения количества багов в программе.
• Упоминается модульное тестирование, которое позволяет проверить один метод программы.
• Обсуждается важность дизайна, который определяет, как программа должна работать и как она работает на самом деле.
32:17 Тестирование и юнит-тестирование
• В видео обсуждается юнит-тестирование, которое позволяет проводить тестирование кода с помощью аннотаций.
• Юнит-тестирование позволяет проверять корректность данных, которые были получены от тестируемой системы.
• В видео приводятся примеры методов тестирования, таких как фейл, асер, асерт фолс, проверка на нау объект, отце цвайн матч, но-цем, асерр троуз и другие.
• В видео подчеркивается важность тестирования интерфейса, так как это позволяет создавать более корректные и удобные для использования методы.
• Обсуждается, как можно усложнить задачу, передавая диапазон и массив для проверки корректности данных.
42:13 Неоднозначность и тестирование
• В видео обсуждаются вопросы неоднозначности и неоднозначности при тестировании, такие как выбор разделителя между числами и словами.
• Подчеркивается, что правильное тестирование может помочь создать более корректный и удобный код.
44:43 Создание интерфейса и реализация
• Создание интерфейса и реализация класса, который наследует интерфейс.
• Добавление методов и реализация тестов для класса.
50:34 Проверка границ и корректность ввода
• Проверка корректности ввода и границ чисел.
• Создание тестов для проверки корректности ввода и границ.
56:32 Проверка корректности вывода
• Создание тестов для проверки корректности вывода.
• Починка тестов, если они не проходят.
• Проверка условий, которые должны быть выполнены для корректного вывода.
• Починка тестов, если они не проходят.
• Удаление лишнего кода и проверка корректности тестов.
• Добавление интерфейса и наследника для упрощения кода.
01:08:05 Создание генератора чисел
• Создание интерфейса и наследника для генерации чисел от 1 до 100.
• Создание теста для проверки корректности работы генератора.
01:15:02 Рефакторинг генератора чисел
• Создание массива для заполнения числами от 1 до 100.
• Использование генератора для заполнения массива.
• Добавление конструктора для оптимизации работы генератора.
• Добавление статического поля для указания границ массива.
• Автор обсуждает, как рефакторинг кода может помочь в тестировании и проверке корректности работы программы.
• Он приводит пример, где нужно было заполнить массив, но при этом сохранить его границы.
• Автор демонстрирует, как можно использовать тесты для проверки корректности работы программы и убедиться, что изменения не сломали существующие тесты.
01:36:15 Создание интерфейса и использование стримов
• Автор обсуждает создание интерфейса и использование стримов для решения задачи.
• Он объясняет, как можно использовать стримы для создания массива и как можно использовать стримы для проверки корректности работы программы.
• Автор также обсуждает, как можно использовать методы интерфейса для создания и тестирования кода.
• Автор обсуждает, что в коде есть проблема, связанная с ожиданием массива из 100 элементов, хотя на самом деле массив может быть меньше.
• Он предлагает изменить логику кода, чтобы он работал с массивами любого размера.
01:41:16 Создание массива нужного размера
• Автор решает создать массив нужного размера, а не использовать массив из 100 элементов.
• Это позволяет избежать создания лишней памяти и работы, которая не нужна.
01:43:08 Рефакторинг кода и тестирование
• Автор решает переписать код, чтобы он работал с массивами любого размера, и тестирует его.
• Он обнаруживает, что тесты работают, но код может сломаться, если массив будет меньше 100 элементов.
• Автор решает проблему, меняя логику кода, чтобы он работал с массивами любого размера.
• Он также предлагает использовать мини-костыли, чтобы ускорить процесс рефакторинга.
01:48:17 Исправление ошибок в коде
• Исправление ошибок в коде, связанных с некорректными массивами и индексами.
• Проверка корректности работы кода с разными входными данными.
02:00:19 Добавление дополнительной информации
• Добавление возможности вывода дополнительной информации при возникновении ошибок.
• Использование класса String для вывода сообщений об ошибках.
02:07:46 Исправление ошибок в конструкторе
• Исправление ошибок в конструкторе, связанных с некорректным использованием разделителей.
• Использование цикла для корректного вывода данных.
02:10:35 Создание тестов для домашней работы
• В видео обсуждается создание тестов для домашней работы, где нужно было написать метод, который записывает данные в систем аут.
• Для этого используется класс байтеры аут стрим, который позволяет создавать принты и принты лайн.
02:18:38 Тестирование и проверка границ
• В видео демонстрируется, как можно использовать тесты для проверки границ и корректности работы кода.
• Это позволяет убедиться, что код работает правильно и не ломается при изменении.
02:21:05 Преимущества юнит-тестирования
• Юнит-тестирование позволяет быстро и эффективно проверять границы и корректность работы кода, что делает его более качественным и защищенным от несанкционированных изменений.
• Юнит-тесты также могут быть использованы для тестирования небольших методов, которые не требуют сложных тестов.