Ответ
Тестовая модель (test harness) — это инфраструктура для автоматизированного выполнения тестов. Её основные компоненты:
1. Ядро выполнения:
- Тестовый раннер: Запускает тесты (например, JUnit Runner, pytest).
- Тестовые сценарии (Test Cases): Набор шагов, данных и проверок.
2. Данные и окружение:
- Тестовые данные: Входные значения и ожидаемые результаты.
- Конфигурация: Настройки БД, API, переменные среды.
- Моки и стабы: Заглушки для изоляции тестируемого модуля.
3. Управление и отчетность:
- Система сборки/CI: Интеграция (Jenkins, GitLab CI).
- Логирование: Запись деталей выполнения.
- Генератор отчетов: Визуализация результатов (Allure, отчёт JUnit).
Пример структуры на Java (JUnit 5):
import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.*;
class CalculatorTest {
private Calculator calc; // Тестируемый объект
@BeforeEach
void setUp() {
calc = new Calculator(); // Подготовка окружения (инициализация)
}
@Test
@DisplayName("Проверка сложения двух положительных чисел")
void testAddition() {
// Данные
int a = 2;
int b = 3;
int expected = 5;
// Действие и проверка (Assertion)
int actual = calc.add(a, b);
assertEquals(expected, actual, "2 + 3 должно быть 5");
}
@AfterEach
void tearDown() {
calc = null; // Очистка окружения после теста
}
}
Критерии качества: Модель должна быть воспроизводимой, изолированной, поддерживаемой и предоставлять понятные отчёты.