0Pricing
Java Academy · Урок

Тестирование и расширения

Проверьте программу на пограничных случаях и добавьте небольшие улучшения. Делайте примеры простыми и понятными.

«Тестирование и расширения» — бесплатный урок 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 — локальная установка не требуется.

Все уроки этого курса

  1. Требования и проектирование
  2. Реализация
  3. Тестирование и расширения
← Назад к Java Academy