← Назад к вопросам

Тестирование калькулятора суммы двух чисел

2.0 Middle🔥 171 комментариев
#Теория тестирования

Условие

Дана программа-калькулятор с ограничениями:

  • Можно вводить только положительные целые числа от 1 до 9
  • Программа считает сумму двух введённых чисел

Напишите тест-кейсы, используя:

  1. Классы эквивалентности (Equivalence Partitioning)
  2. Граничные значения (Boundary Value Analysis)

Укажите:

  • Входные данные
  • Ожидаемый результат
  • Тип теста (позитивный/негативный)

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Тестирование калькулятора суммы двух чисел

Контекст

Программа: Калькулятор сложения

Требования:

  • Входные данные: два положительных целых числа
  • Диапазон: от 1 до 9 (включительно)
  • Операция: A + B = результат
  • Вывод: сумма двух чисел

Пример использования:

Введите первое число (1-9): 5
Введите второе число (1-9): 3
Результат: 5 + 3 = 8

1. Классы эквивалентности (Equivalence Partitioning)

Определение классов эквивалентности

Класс эквивалентности — это группа входных данных, которые система должна обрабатывать одинаково.

Для калькулятора:

Класс эквивалентностиОписаниеДиапазонСтатус
EC1_ValidВалидные числа (в диапазоне)1-9Позитивный
EC2_ZeroНулевое значение0Негативный
EC3_NegativeОтрицательные числа< 0Негативный
EC4_TooLargeЧисла больше максимума> 9Негативный
EC5_NonIntegerДробные числа3.14, 2.5Негативный
EC6_NonNumericНе числовые данные"abc", "x"Негативный
EC7_EmptyПустое значение(пусто)Негативный
EC8_SpecialСпециальные символы"!", "@"Негативный

Таблица тест-кейсов по классам эквивалентности

Позитивные тесты (EC1_Valid)

IDПервое числоВторое числоОжидаемый результатКлассСтатус
EC_001112EC1_ValidPASS
EC_002538EC1_ValidPASS
EC_0039918EC1_ValidPASS
EC_004279EC1_ValidPASS
EC_0054610EC1_ValidPASS

Описание: Все эти тесты должны успешно выполниться и вернуть корректную сумму.


Негативные тесты (EC2_Zero)

IDПервое числоВторое числоОжидаемый результатКлассТип ошибки
EC_00605Ошибка: "Число должно быть от 1 до 9"EC2_ZeroValidation Error
EC_00750Ошибка: "Число должно быть от 1 до 9"EC2_ZeroValidation Error
EC_00800Ошибка: "Число должно быть от 1 до 9"EC2_ZeroValidation Error

Описание: Нулевые значения должны быть отклонены с понятной ошибкой.


Негативные тесты (EC3_Negative)

IDПервое числоВторое числоОжидаемый результатКлассТип ошибки
EC_009-15Ошибка: "Только положительные числа"EC3_NegativeValidation Error
EC_0105-3Ошибка: "Только положительные числа"EC3_NegativeValidation Error
EC_011-5-7Ошибка: "Только положительные числа"EC3_NegativeValidation Error

Описание: Отрицательные значения должны быть отклонены.


Негативные тесты (EC4_TooLarge)

IDПервое числоВторое числоОжидаемый результатКлассТип ошибки
EC_012105Ошибка: "Число должно быть от 1 до 9"EC4_TooLargeValidation Error
EC_013515Ошибка: "Число должно быть от 1 до 9"EC4_TooLargeValidation Error
EC_01410099Ошибка: "Число должно быть от 1 до 9"EC4_TooLargeValidation Error

Описание: Числа больше 9 должны быть отклонены.


Негативные тесты (EC5_NonInteger)

IDПервое числоВторое числоОжидаемый результатКлассТип ошибки
EC_0153.142Ошибка: "Только целые числа"EC5_NonIntegerFormat Error
EC_01652.5Ошибка: "Только целые числа"EC5_NonIntegerFormat Error
EC_0171.12.2Ошибка: "Только целые числа"EC5_NonIntegerFormat Error

Описание: Дробные числа должны быть отклонены.


Негативные тесты (EC6_NonNumeric)

IDПервое числоВторое числоОжидаемый результатКлассТип ошибки
EC_018"abc"5Ошибка: "Введите корректное число"EC6_NonNumericType Error
EC_0195"xyz"Ошибка: "Введите корректное число"EC6_NonNumericType Error
EC_020"hello""world"Ошибка: "Введите корректное число"EC6_NonNumericType Error

Описание: Буквы и текст должны быть отклонены.


Негативные тесты (EC7_Empty)

IDПервое числоВторое числоОжидаемый результатКлассТип ошибки
EC_021(пусто)5Ошибка: "Требуется ввести число"EC7_EmptyRequired Field
EC_0225(пусто)Ошибка: "Требуется ввести число"EC7_EmptyRequired Field
EC_023(пусто)(пусто)Ошибка: "Требуется ввести число"EC7_EmptyRequired Field

Описание: Пустые поля должны быть отклонены с сообщением об обязательности.


Негативные тесты (EC8_Special)

IDПервое числоВторое числоОжидаемый результатКлассТип ошибки
EC_024"!"5Ошибка: "Введите корректное число"EC8_SpecialInvalid Character
EC_0255"@"Ошибка: "Введите корректное число"EC8_SpecialInvalid Character
EC_026"#""$"Ошибка: "Введите корректное число"EC8_SpecialInvalid Character

Описание: Специальные символы должны быть отклонены.


2. Граничные значения (Boundary Value Analysis)

Определение граничных значений

Граничные значения — это значения на краю допустимого диапазона и за его пределами.

Диапазон: 1-9

Граничные точки

Тип границыЗначениеОписаниеСтатус
Нижняя граница (Valid)1Минимальное валидное значение✓ PASS
Нижняя граница - 1 (Invalid)0На один меньше минимума✗ FAIL
Верхняя граница (Valid)9Максимальное валидное значение✓ PASS
Верхняя граница + 1 (Invalid)10На один больше максимума✗ FAIL

Таблица тест-кейсов по граничным значениям

Тесты нижней границы

IDПервое числоВторое числоОжидаемый результатТипСтатус
BVA_001112Lower Valid✓ PASS
BVA_002123Lower Valid✓ PASS
BVA_003516Lower Valid✓ PASS
BVA_00401ОшибкаLower Invalid✗ FAIL
BVA_00510ОшибкаLower Invalid✗ FAIL
BVA_006-15ОшибкаBelow Lower✗ FAIL
BVA_0075-1ОшибкаBelow Lower✗ FAIL

Описание: Нижняя граница начинается с 1 (не 0). Значения 0 и ниже должны быть отклонены.


Тесты верхней границы

IDПервое числоВторое числоОжидаемый результатТипСтатус
BVA_0089918Upper Valid✓ PASS
BVA_0099514Upper Valid✓ PASS
BVA_0105914Upper Valid✓ PASS
BVA_011105ОшибкаUpper Invalid✗ FAIL
BVA_012510ОшибкаUpper Invalid✗ FAIL
BVA_0131005ОшибкаAbove Upper✗ FAIL
BVA_0145100ОшибкаAbove Upper✗ FAIL

Описание: Верхняя граница заканчивается на 9. Значения 10 и выше должны быть отклонены.


Комбинированные граничные тесты (обе границы)

IDПервое числоВторое числоОжидаемый результатКомбинация
BVA_015112Lower-Lower
BVA_0161910Lower-Upper
BVA_0179110Upper-Lower
BVA_0189918Upper-Upper
BVA_01900ОшибкаInvalid-Invalid
BVA_020010ОшибкаInvalid-Invalid
BVA_0211010ОшибкаInvalid-Invalid

Критические граничные случаи

IDСценарийПервоеВтороеОжиданиеКритичность
BVA_022Точно нижняя граница (valid)112CRITICAL
BVA_023На 1 ниже нижней границы01ОшибкаCRITICAL
BVA_024Точно верхняя граница (valid)9918CRITICAL
BVA_025На 1 выше верхней границы109ОшибкаCRITICAL

Матрица тестирования (Итоговая)

Резюме по классам эквивалентности

КлассIDТипВсего тестовКритичность
EC1_ValidEC_001-005Позитивный5HIGH
EC2_ZeroEC_006-008Негативный3HIGH
EC3_NegativeEC_009-011Негативный3HIGH
EC4_TooLargeEC_012-014Негативный3HIGH
EC5_NonIntegerEC_015-017Негативный3MEDIUM
EC6_NonNumericEC_018-020Негативный3MEDIUM
EC7_EmptyEC_021-023Негативный3MEDIUM
EC8_SpecialEC_024-026Негативный3MEDIUM
Итого26

Резюме по граничным значениям

ГраницаСтатусТестыПримеры
Нижняя (1)ValidBVA_001-0031, 1+N, 1+M
На 1 ниже (0)InvalidBVA_004-0050, 0
Ниже нижней (-N)InvalidBVA_006-007-1, -5
Верхняя (9)ValidBVA_008-0109, 9+M, 9+N
На 1 выше (10)InvalidBVA_011-01210, 10
Выше верхней (+N)InvalidBVA_013-014100, 99
КомбинацииMixedBVA_015-021Все сочетания
Итого25

Рекомендуемый порядок тестирования

Шаг 1: Позитивные тесты (убедиться, что базовая функция работает)

  • EC_001 до EC_005
  • BVA_001, BVA_002, BVA_003

Шаг 2: Граничные значения (убедиться, что валидация на границах работает)

  • BVA_001 (граница 1)
  • BVA_004 (0)
  • BVA_008 (граница 9)
  • BVA_011 (10)

Шаг 3: Негативные тесты (убедиться, что невалидные данные отклоняются)

  • EC_006 до EC_026

Шаг 4: Специальные случаи (убедиться, что обработка ошибок корректна)

  • Все остальные BVA тесты

Чек-лист для проведения тестирования

  • Все позитивные тесты пройдены
  • Все граничные значения протестированы
  • Все классы эквивалентности покрыты
  • Ошибки обрабатываются с понятными сообщениями
  • Нет упаданий приложения на невалидных данных
  • Результаты вычислений верны
  • Пользователь может повторно вводить данные после ошибки
  • Выводы логичны и соответствуют требованиям
Тестирование калькулятора суммы двух чисел | PrepBro