gadget59.ru практика
Тестирование ПО · Практика 1 · 24 слайда

Практическая работа: тестирование «чёрным ящиком» калькулятора

Практика: тестирование «чёрным ящиком»

На первой лекции мы разобрали теорию: что такое тестирование, чем оно отличается от отладки, какие бывают виды. Теперь — время практики. Мы возьмём готовую программу «Калькулятор» и попробуем сломать её, используя метод «чёрного ящика».

⚫ Чёрный ящик 📋 Тест-кейс 🐞 Баг-репорт 🔢 Калькулятор
Мы научимся составлять тест-кейсы (тестовые примеры), выполнять их вручную и оформлять найденные дефекты в виде баг-репортов. Это базовые навыки любого тестировщика.
Формат: практическая работа, 2 академических часа. Работа выполняется в парах: один тестирует, второй записывает.

Цель и задачи

Цель: получить практические навыки тестирования программы методом «чёрного ящика».

Что мы сделаем

  • 1 Изучим требования к калькулятору.
  • 2 Составим тест-кейсы (проверочные примеры).
  • 3 Выполним их на реальной программе.
  • 4 Найдём ошибки (если они есть).
  • 5 Оформим баг-репорты (отчёты об ошибках).
В результате получится таблица тест-кейсов и список найденных дефектов — как у настоящего тестировщика.

Что мы тестируем: требования

Перед тестированием всегда нужно понять, что именно должна делать программа. Вот требования к нашему калькулятору.

ФункцияЧто должна делатьОграничения Сложениеa + b = cчисла от -2 147 483 648 до 2 147 483 647 Вычитаниеa - b = cте же Умножениеa * b = cте же Делениеa / b = cb ≠ 0 Остатокa mod b = cb ≠ 0
Если ввести число больше 2 147 483 647 или меньше -2 147 483 648 — калькулятор должен выдать ошибку. Это требование, которое нужно проверить.

Что такое тест-кейс

Тест-кейс (test case, «тестовый пример») — это описание проверки: что подаём на вход, что ожидаем получить и при каких условиях.

ПолеЧто значитПример IDномер тест-кейсаTC-01 Названиечто проверяемСложение двух положительных чисел Входные данныечто вводимa = 3, b = 5 Ожидаемый результатчто должно быть8 Фактический результатчто получилось8 Статуспройден или нетPassed
Тест-кейс — это «инструкция» для тестировщика. По нему может пройти любой человек и получить тот же результат.

Пример тест-кейса: сложение

Составим первый тест-кейс для функции сложения.

ПолеЗначение IDTC-01 НазваниеСложение двух положительных чисел Входные данныеa = 3, b = 5 Ожидаемый результат8 Фактический результат(заполняется при выполнении) Статус(Passed / Failed)
Мы выбрали именно 3 и 5, потому что это простые числа, и результат легко проверить в уме. Это хорошая практика для первого теста.

Таблица тест-кейсов

Все тест-кейсы удобно записывать в таблицу. Вот пример для функции сложения.

IDНазваниеabОжидаемФактСтатус TC-01Положительные358?? TC-02Отрицательные-3-5-8?? TC-03Положительное и отрицательное5-32?? TC-04С нулём077?? TC-05Максимальное значение21474836471Ошибка??
Обратите внимание на TC-05: мы проверяем граничное значение. Это число, при котором может возникнуть переполнение.

Как выполнять тест-кейсы

Выполнять тест-кейсы нужно по шагам. Вот простая инструкция.

  1. Откройте калькулятор (программу, которую выдал преподаватель).
  2. Возьмите первый тест-кейс из таблицы.
  3. Введите значения из столбцов a и b.
  4. Нажмите кнопку операции (в данном случае «+»).
  5. Посмотрите на результат.
  6. Запишите фактический результат в таблицу.
  7. Сравните его с ожидаемым.
  8. Если совпало — поставьте Passed. Если нет — Failed.
  9. Переходите к следующему тест-кейсу.
Главное правило: тестировщик не должен «подгонять» результат под ожидаемый. Если получилось не то — значит, найден дефект.

Что такое баг-репорт

Баг-репорт (bug report, «отчёт об ошибке») — это документ, в котором тестировщик описывает найденный дефект так, чтобы программист мог его воспроизвести и исправить.

ПолеЧто значитПример IDномер дефектаBUG-01 Заголовоккраткое описаниеДеление на ноль не вызывает ошибку Шагикак повторить1. Открыть. 2. Ввести 5 / 0. 3. Нажать = Ожидаемый результатчто должно бытьСообщение «Ошибка: деление на ноль» Фактический результатчто произошлоПрограмма показывает 0 Приоритетнасколько критичноВысокий
Хороший баг-репорт — это половина исправленного бага. Чем точнее описание, тем быстрее программист найдёт причину.

Пример баг-репорта

Вот как выглядит правильно оформленный баг-репорт.

// Баг-репорт ID: BUG-01 Заголовок: Деление на ноль возвращает 0 вместо ошибки Шаги: 1. Запустить калькулятор. 2. Ввести первое число: 5. 3. Нажать кнопку «/». 4. Ввести второе число: 0. 5. Нажать «=». Ожидаемый результат: сообщение «Ошибка: деление на ноль» Фактический результат: калькулятор показывает 0 Приоритет: Высокий Автор: Иванов Иван Дата: 2026-10-25
Обратите внимание: в баг-репорте обязательно есть шаги воспроизведения. Без них программист не сможет повторить ошибку и понять, что исправлять.

Задание 1: сложение и вычитание

Составьте и выполните тест-кейсы для функций сложения и вычитания.

Что нужно сделать

  • Придумать минимум 5 тест-кейсов для сложения.
  • Придумать минимум 5 тест-кейсов для вычитания.
  • Включить в них:
    • положительные числа;
    • отрицательные числа;
    • ноль;
    • граничные значения (максимальное и минимальное);
    • переполнение.
  • Выполнить все тест-кейсы на реальной программе.
  • Заполнить таблицу результатов.
Не бойтесь придумывать «странные» комбинации. Чем неожиданнее тест, тем выше шанс найти дефект.

Задание 2: умножение и деление

Теперь — умножение и деление. Здесь есть важная особенность: делить на ноль нельзя.

Что нужно сделать

  • Придумать 5 тест-кейсов для умножения.
  • Придумать 5 тест-кейсов для деления, включая деление на ноль.
  • Проверить, что калькулятор:
    • правильно умножает положительные и отрицательные числа;
    • правильно обрабатывает ноль;
    • выдаёт ошибку при делении на ноль.
  • Выполнить тест-кейсы и заполнить таблицу.
Если калькулятор при делении на ноль не выдаёт ошибку, а показывает 0 или «бесконечность» — это дефект. Оформите его как баг-репорт.

Задание 3: остаток от деления

Остаток от деления — операция mod. Например, 7 mod 3 = 1, потому что 7 = 3 × 2 + 1.

Что нужно сделать

  • Придумать 5 тест-кейсов для остатка от деления.
  • Проверить:
    • положительные числа;
    • отрицательные числа;
    • ноль в делимом;
    • ноль в делителе (должна быть ошибка).
  • Выполнить тест-кейсы.
  • Если найдены дефекты — оформить баг-репорты.
Остаток от деления — частая операция в программировании. Она используется для проверки чётности, циклического перебора и многих других задач.

Задание 4: граничные значения

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

ЗначениеЧислоПочему важно Минимум-2 147 483 648граница типа int Почти минимум-2 147 483 647на 1 больше Ноль0особое значение Почти максимум2 147 483 646на 1 меньше Максимум2 147 483 647граница типа int
Проверьте каждое из этих значений во всех операциях. Если программа работает неправильно на границе — это серьёзный дефект.

Задание 5: недопустимые значения

Хороший тестировщик проверяет не только «правильные» данные, но и «неправильные».

Что попробовать ввести

  • Буквы вместо чисел: abc + 5.
  • Спецсимволы: @#$ + 5.
  • Пустое поле (ничего не введено).
  • Очень длинное число: 99999999999999999999.
  • Дробное число: 3.5 + 2 (если калькулятор целочисленный).
Если программа «падает» с ошибкой или выдаёт странный результат на недопустимых данных — это тоже дефект. Хорошая программа должна корректно сообщать об ошибке ввода.
Не забывайте: тестировщик должен найти как можно больше проблем. Чем «злее» тесты, тем лучше.

Шаблон для отчёта

Оформите результаты работы в виде отчёта. Вот рекомендуемая структура.

// Отчёт по практической работе // 1. Титульный лист ФИО, группа, дата, название работы // 2. Цель работы Получить навыки тестирования «чёрным ящиком» // 3. Таблица тест-кейсов | ID | Название | Вход | Ожидаем | Факт | Статус | // 4. Найденные дефекты (баг-репорты) BUG-01: ... BUG-02: ... // 5. Вывод Что получилось, что не получилось, какие навыки приобрели
Отчёт сдаётся в электронном виде. Таблицы можно оформить в Word или Excel.

Критерии оценки

Как будет оцениваться практическая работа.

КритерийЧто проверяетсяБаллы Тест-кейсыПолнота, корректность, наличие граничных значений5 ВыполнениеВсе тест-кейсы пройдены, результаты записаны5 Баг-репортыОписаны шаги, ожидаемый и фактический результат5 ОформлениеОтчёт по шаблону, аккуратность, грамотность3 ВыводСформулированы результаты, сделаны выводы2
Оценка «5» (отлично): 18–20 баллов.
Оценка «4» (хорошо): 14–17 баллов.
Оценка «3» (удовлетворительно): 10–13 баллов.

Советы по тестированию

Несколько практических советов, которые помогут найти больше дефектов.

  • Думайте как пользователь. Что бы вы сделали, если бы первый раз увидели эту программу?
  • Пробуйте странные комбинации. Например, максимальное число плюс максимальное число.
  • Проверяйте границы. Ошибки чаще всего прячутся именно там.
  • Не бойтесь «сломать» программу. Это ваша работа.
  • Записывайте всё. Даже если кажется, что «это не баг, а фича» — запишите и обсудите с преподавателем.
Опытный тестировщик находит дефекты там, где обычный пользователь даже не подумает искать.

Итоги практики

Подведём итоги. Вот что вы освоили.

  • ✅ Тест-кейс — это описание проверки с входными данными и ожидаемым результатом.
  • ✅ Баг-репорт — это описание дефекта с шагами воспроизведения.
  • ✅ Граничные значения — числа на границе диапазона — самые «урожайные» на ошибки.
  • ✅ Недопустимые значения — буквы, спецсимволы, пустые поля — тоже нужно проверять.
  • ✅ Тестирование «чёрным ящиком» — не требует знания кода, но требует внимательности и фантазии.
Теперь вы умеете не просто «нажимать кнопки», а системно проверять программу и оформлять результаты так, чтобы они были понятны разработчику.

Домашнее задание

Задания для самостоятельной работы. Первые два обязательны, остальные — для оценки «отлично».

  1. Дополните таблицу тест-кейсов для деления и остатка от деления до 10 штук на каждую операцию.
  2. Оформите итоговый отчёт по шаблону.
  3. Придумайте 3 тест-кейса, которые проверяют работу калькулятора на «нестандартных» данных (например, ввод пробелов, знаков препинания).
  4. Найдите в интернете пример реального баг-репорта и сравните его со своим.
  5. Объясните своими словами, почему граничные значения так важны для тестировщика.
Если задание кажется сложным — разбейте его на части. Сначала тест-кейсы, потом выполнение, потом отчёт.

Что дальше?

В этом блоке по тестированию у нас ещё несколько материалов.

  • Лекция 2: классы эквивалентности и граничные значения (углублённо).
  • Лекция 3: тест-кейсы, чек-листы, баг-репорты.
  • Практика 2: модульное тестирование в Visual Studio (C#) или pytest (Python).
Тестирование — это навык, который пригодится и программистам, и юристам, и менеджерам. Умение находить ошибки — универсально.

Спасибо за работу!

🔍

Тестировщик — это не «разрушитель», а «защитник»

Вы находите проблемы до того, как их найдут пользователи. Это делает программы лучше и безопаснее.

⚫ Чёрный ящик 📋 Тест-кейсы 🐞 Баг-репорты 🚀 практика