Тестирование и расширения
Проверьте программу на пограничных случаях и добавьте небольшие улучшения. Делайте примеры простыми и понятными.
«Тестирование и расширения» — бесплатный урок Java Academy на CoddyKit. Это урок 3 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 3 уроков всего.
Зачем нужно тестирование
Зачем нужно тестирование? Небольшие тесты помогают заранее обнаружить неожиданное поведение. Начните с простых входных данных и постепенно добавляйте граничные случаи.
Основной сценарий
Сначала попробуйте короткое предложение с понятными словами. Общее количество должно совпасть с ожидаемым, а самые частотные слова — иметь смысл.
Граничные случаи
Граничные случаи: пустая строка, строка только из пробелов, строка только со знаками препинания, числа вместе со словами и повторяющиеся пробелы. Ни один из них не должен приводить к сбою, а подсчёт должен оставаться осмысленным.
Проверка нормализации
Используйте разные регистры и запятые, чтобы проверить нормализацию. После приведения к нижнему регистру и очистки Hello и HELLO должны считаться одним и тем же словом.
Небольшие расширения
Небольшие расширения: игнорируйте очень короткие слова, например a или an, задавайте N самых частотных слов с помощью переменной и выводите слова с одинаковой частотой в любом порядке. Изменения должны оставаться минимальными и понятными.
Код: небольшие тесты
Запустите программу: каждый пример выводит общее количество и количество уникальных слов. Это помогает проверить обработку пустых строк, пробелов, знаков препинания и разных регистров.
public class Main {
public static void main(String[] args) {
// Very small test set for beginners. Each case prints a short result.
String[] samples = new String[] {
"Hello world hello",
"", // empty
" ", // spaces
"Hello, HELLO, hello!", // mixed case and punctuation
"Numbers 1 2 3 and words", // numbers and words
"Only... punctuation!!!" // punctuation only
};
for (int t = 0; t < samples.length; t = t + 1) {
String text = samples[t];
System.out.println("-- Case " + (t + 1) + " --");
// 1) Lowercase
String lower = text.toLowerCase();
// 2) Replace non letters with spaces
String cleaned = lower.replaceAll("[^a-z]+", " ");
// 3) Split on spaces and filter empties
String[] tokens = cleaned.trim().split("\\s+");
java.util.Map<String, Integer> freq = new java.util.HashMap<>();
int total = 0;
for (int i = 0; i < tokens.length; i = i + 1) {
String w = tokens[i];
if (w.length() == 0) continue;
// Optional tiny extension: skip one letter words like "a"
if (w.length() == 1) continue;
total = total + 1;
Integer c = freq.get(w);
if (c == null) freq.put(w, 1);
else freq.put(w, c + 1);
}
// Print a very small summary (no top N here to keep it simple)
System.out.println("Total words: " + total);
System.out.println("Unique words: " + freq.size());
}
}
}
Тестирование нормализации
Быстрая проверка: Какие входные данные лучше всего подходят для проверки нормализации — регистра и знаков препинания?
Повторение
Повторение: Мы проверили основные сценарии и граничные случаи, а затем добавили небольшие расширения, например пропуск одно-буквенных слов. Примеры должны оставаться короткими и понятными.
Часто задаваемые вопросы
Урок «Тестирование и расширения» бесплатный?
Да — полный текст урока «Тестирование и расширения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 3 уроков всего.
Чему я научусь в уроке «Тестирование и расширения»?
Проверьте программу на пограничных случаях и добавьте небольшие улучшения. Делайте примеры простыми и понятными. Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Java Academy?
Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 3.
Сколько времени занимает урок «Тестирование и расширения»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Java Academy?
Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Требования и проектирование
- Реализация
- Тестирование и расширения