Введение в тестирование

Введение в тестирование на Java

Maria Milusheva

Senior Software Engineer

Что такое тестирование?

Тестирование программного обеспечения:

  • Процесс оценки ПО на соответствие заданным требованиям

Виды тестирования:

  • Ручное — необходимо, но ограничено и менее надёжно
  • Автоматизированное — позволяет выполнять сотни проверок за секунды

Для автоматизированного тестирования мы используем JUnit 5

Иллюстрация программиста

Введение в тестирование на Java

Граничные случаи

«Если код не протестирован — он сломан.»$^1$

Граничный случай — входные данные или условие, находящееся на крайней границе допустимого или ожидаемого диапазона

Примеры: переменные с максимальным значением, null или пустые переменные, отрицательные значения

Иллюстрация, символизирующая тест

1 Цитата Брюса Эккеля
Введение в тестирование на Java

Пример неожиданного поведения на граничном случае

Рассмотрим следующий код:

public int addTwoNumbers(int a, int b) {
    return a + b;
}

⚠ Рассмотрим входные значения 2147483647 (максимальное значение int) и 1

➡ Результат: -2147483648 (минимальное значение int)

Введение в тестирование на Java

Напоминание: размеры переменных — примитивы имеют ограниченный диапазон

Таблица с описанием примитивных типов: byte, short, int, long, float, double, char и boolean

Введение в тестирование на Java

Пример: запуск Ariane 5

Первый запуск ракеты Ariane 5 в 1996 году:

  • Разработка заняла более 8 лет
  • Стоимость — свыше 370 миллионов долларов
  • Ракета взорвалась через 37 секунд после старта
  • Причиной взрыва стала программная ошибка: переполнение типа short

Запуск ракеты Ariane 5 Европейского космического агентства.

Введение в тестирование на Java

Преимущества тестирования

  • Защищает от ошибок в граничных случаях
  • Способствует лучшему пониманию проекта и его требований
  • Ускоряет разработку в долгосрочной перспективе
  • Автоматизирует проверку выполнения требований
  • Снижает риск человеческой ошибки

light_bulb.jpg

1 https://books.google.com/books/about/Clean_Architecture.html?id=8ngAkAEACAAJ
Введение в тестирование на Java

Давайте потренируемся!

Введение в тестирование на Java

Preparing Video For Download...