Тестирование калькулятора суммы двух чисел
Условие
Дана программа-калькулятор с ограничениями:
- Можно вводить только положительные целые числа от 1 до 9
- Программа считает сумму двух введённых чисел
Напишите тест-кейсы, используя:
- Классы эквивалентности (Equivalence Partitioning)
- Граничные значения (Boundary Value Analysis)
Укажите:
- Входные данные
- Ожидаемый результат
- Тип теста (позитивный/негативный)
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Тестирование калькулятора суммы двух чисел
Контекст
Программа: Калькулятор сложения
Требования:
- Входные данные: два положительных целых числа
- Диапазон: от 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_001 | 1 | 1 | 2 | EC1_Valid | PASS |
| EC_002 | 5 | 3 | 8 | EC1_Valid | PASS |
| EC_003 | 9 | 9 | 18 | EC1_Valid | PASS |
| EC_004 | 2 | 7 | 9 | EC1_Valid | PASS |
| EC_005 | 4 | 6 | 10 | EC1_Valid | PASS |
Описание: Все эти тесты должны успешно выполниться и вернуть корректную сумму.
Негативные тесты (EC2_Zero)
| ID | Первое число | Второе число | Ожидаемый результат | Класс | Тип ошибки |
|---|---|---|---|---|---|
| EC_006 | 0 | 5 | Ошибка: "Число должно быть от 1 до 9" | EC2_Zero | Validation Error |
| EC_007 | 5 | 0 | Ошибка: "Число должно быть от 1 до 9" | EC2_Zero | Validation Error |
| EC_008 | 0 | 0 | Ошибка: "Число должно быть от 1 до 9" | EC2_Zero | Validation Error |
Описание: Нулевые значения должны быть отклонены с понятной ошибкой.
Негативные тесты (EC3_Negative)
| ID | Первое число | Второе число | Ожидаемый результат | Класс | Тип ошибки |
|---|---|---|---|---|---|
| EC_009 | -1 | 5 | Ошибка: "Только положительные числа" | EC3_Negative | Validation Error |
| EC_010 | 5 | -3 | Ошибка: "Только положительные числа" | EC3_Negative | Validation Error |
| EC_011 | -5 | -7 | Ошибка: "Только положительные числа" | EC3_Negative | Validation Error |
Описание: Отрицательные значения должны быть отклонены.
Негативные тесты (EC4_TooLarge)
| ID | Первое число | Второе число | Ожидаемый результат | Класс | Тип ошибки |
|---|---|---|---|---|---|
| EC_012 | 10 | 5 | Ошибка: "Число должно быть от 1 до 9" | EC4_TooLarge | Validation Error |
| EC_013 | 5 | 15 | Ошибка: "Число должно быть от 1 до 9" | EC4_TooLarge | Validation Error |
| EC_014 | 100 | 99 | Ошибка: "Число должно быть от 1 до 9" | EC4_TooLarge | Validation Error |
Описание: Числа больше 9 должны быть отклонены.
Негативные тесты (EC5_NonInteger)
| ID | Первое число | Второе число | Ожидаемый результат | Класс | Тип ошибки |
|---|---|---|---|---|---|
| EC_015 | 3.14 | 2 | Ошибка: "Только целые числа" | EC5_NonInteger | Format Error |
| EC_016 | 5 | 2.5 | Ошибка: "Только целые числа" | EC5_NonInteger | Format Error |
| EC_017 | 1.1 | 2.2 | Ошибка: "Только целые числа" | EC5_NonInteger | Format Error |
Описание: Дробные числа должны быть отклонены.
Негативные тесты (EC6_NonNumeric)
| ID | Первое число | Второе число | Ожидаемый результат | Класс | Тип ошибки |
|---|---|---|---|---|---|
| EC_018 | "abc" | 5 | Ошибка: "Введите корректное число" | EC6_NonNumeric | Type Error |
| EC_019 | 5 | "xyz" | Ошибка: "Введите корректное число" | EC6_NonNumeric | Type Error |
| EC_020 | "hello" | "world" | Ошибка: "Введите корректное число" | EC6_NonNumeric | Type Error |
Описание: Буквы и текст должны быть отклонены.
Негативные тесты (EC7_Empty)
| ID | Первое число | Второе число | Ожидаемый результат | Класс | Тип ошибки |
|---|---|---|---|---|---|
| EC_021 | (пусто) | 5 | Ошибка: "Требуется ввести число" | EC7_Empty | Required Field |
| EC_022 | 5 | (пусто) | Ошибка: "Требуется ввести число" | EC7_Empty | Required Field |
| EC_023 | (пусто) | (пусто) | Ошибка: "Требуется ввести число" | EC7_Empty | Required Field |
Описание: Пустые поля должны быть отклонены с сообщением об обязательности.
Негативные тесты (EC8_Special)
| ID | Первое число | Второе число | Ожидаемый результат | Класс | Тип ошибки |
|---|---|---|---|---|---|
| EC_024 | "!" | 5 | Ошибка: "Введите корректное число" | EC8_Special | Invalid Character |
| EC_025 | 5 | "@" | Ошибка: "Введите корректное число" | EC8_Special | Invalid Character |
| EC_026 | "#" | "$" | Ошибка: "Введите корректное число" | EC8_Special | Invalid Character |
Описание: Специальные символы должны быть отклонены.
2. Граничные значения (Boundary Value Analysis)
Определение граничных значений
Граничные значения — это значения на краю допустимого диапазона и за его пределами.
Диапазон: 1-9
Граничные точки
| Тип границы | Значение | Описание | Статус |
|---|---|---|---|
| Нижняя граница (Valid) | 1 | Минимальное валидное значение | ✓ PASS |
| Нижняя граница - 1 (Invalid) | 0 | На один меньше минимума | ✗ FAIL |
| Верхняя граница (Valid) | 9 | Максимальное валидное значение | ✓ PASS |
| Верхняя граница + 1 (Invalid) | 10 | На один больше максимума | ✗ FAIL |
Таблица тест-кейсов по граничным значениям
Тесты нижней границы
| ID | Первое число | Второе число | Ожидаемый результат | Тип | Статус |
|---|---|---|---|---|---|
| BVA_001 | 1 | 1 | 2 | Lower Valid | ✓ PASS |
| BVA_002 | 1 | 2 | 3 | Lower Valid | ✓ PASS |
| BVA_003 | 5 | 1 | 6 | Lower Valid | ✓ PASS |
| BVA_004 | 0 | 1 | Ошибка | Lower Invalid | ✗ FAIL |
| BVA_005 | 1 | 0 | Ошибка | Lower Invalid | ✗ FAIL |
| BVA_006 | -1 | 5 | Ошибка | Below Lower | ✗ FAIL |
| BVA_007 | 5 | -1 | Ошибка | Below Lower | ✗ FAIL |
Описание: Нижняя граница начинается с 1 (не 0). Значения 0 и ниже должны быть отклонены.
Тесты верхней границы
| ID | Первое число | Второе число | Ожидаемый результат | Тип | Статус |
|---|---|---|---|---|---|
| BVA_008 | 9 | 9 | 18 | Upper Valid | ✓ PASS |
| BVA_009 | 9 | 5 | 14 | Upper Valid | ✓ PASS |
| BVA_010 | 5 | 9 | 14 | Upper Valid | ✓ PASS |
| BVA_011 | 10 | 5 | Ошибка | Upper Invalid | ✗ FAIL |
| BVA_012 | 5 | 10 | Ошибка | Upper Invalid | ✗ FAIL |
| BVA_013 | 100 | 5 | Ошибка | Above Upper | ✗ FAIL |
| BVA_014 | 5 | 100 | Ошибка | Above Upper | ✗ FAIL |
Описание: Верхняя граница заканчивается на 9. Значения 10 и выше должны быть отклонены.
Комбинированные граничные тесты (обе границы)
| ID | Первое число | Второе число | Ожидаемый результат | Комбинация |
|---|---|---|---|---|
| BVA_015 | 1 | 1 | 2 | Lower-Lower |
| BVA_016 | 1 | 9 | 10 | Lower-Upper |
| BVA_017 | 9 | 1 | 10 | Upper-Lower |
| BVA_018 | 9 | 9 | 18 | Upper-Upper |
| BVA_019 | 0 | 0 | Ошибка | Invalid-Invalid |
| BVA_020 | 0 | 10 | Ошибка | Invalid-Invalid |
| BVA_021 | 10 | 10 | Ошибка | Invalid-Invalid |
Критические граничные случаи
| ID | Сценарий | Первое | Второе | Ожидание | Критичность |
|---|---|---|---|---|---|
| BVA_022 | Точно нижняя граница (valid) | 1 | 1 | 2 | CRITICAL |
| BVA_023 | На 1 ниже нижней границы | 0 | 1 | Ошибка | CRITICAL |
| BVA_024 | Точно верхняя граница (valid) | 9 | 9 | 18 | CRITICAL |
| BVA_025 | На 1 выше верхней границы | 10 | 9 | Ошибка | CRITICAL |
Матрица тестирования (Итоговая)
Резюме по классам эквивалентности
| Класс | ID | Тип | Всего тестов | Критичность |
|---|---|---|---|---|
| EC1_Valid | EC_001-005 | Позитивный | 5 | HIGH |
| EC2_Zero | EC_006-008 | Негативный | 3 | HIGH |
| EC3_Negative | EC_009-011 | Негативный | 3 | HIGH |
| EC4_TooLarge | EC_012-014 | Негативный | 3 | HIGH |
| EC5_NonInteger | EC_015-017 | Негативный | 3 | MEDIUM |
| EC6_NonNumeric | EC_018-020 | Негативный | 3 | MEDIUM |
| EC7_Empty | EC_021-023 | Негативный | 3 | MEDIUM |
| EC8_Special | EC_024-026 | Негативный | 3 | MEDIUM |
| Итого | 26 |
Резюме по граничным значениям
| Граница | Статус | Тесты | Примеры |
|---|---|---|---|
| Нижняя (1) | Valid | BVA_001-003 | 1, 1+N, 1+M |
| На 1 ниже (0) | Invalid | BVA_004-005 | 0, 0 |
| Ниже нижней (-N) | Invalid | BVA_006-007 | -1, -5 |
| Верхняя (9) | Valid | BVA_008-010 | 9, 9+M, 9+N |
| На 1 выше (10) | Invalid | BVA_011-012 | 10, 10 |
| Выше верхней (+N) | Invalid | BVA_013-014 | 100, 99 |
| Комбинации | Mixed | BVA_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 тесты
Чек-лист для проведения тестирования
- Все позитивные тесты пройдены
- Все граничные значения протестированы
- Все классы эквивалентности покрыты
- Ошибки обрабатываются с понятными сообщениями
- Нет упаданий приложения на невалидных данных
- Результаты вычислений верны
- Пользователь может повторно вводить данные после ошибки
- Выводы логичны и соответствуют требованиям