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

Приведи примеры Error

2.0 Middle🔥 163 комментариев
#API тестирование

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

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

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

Примеры Error в программировании

В контексте QA Automation и программирования под Error (ошибкой) обычно понимается проблема в коде, которая приводит к неправильному выполнению программы. Ошибки можно классифицировать на несколько основных типов.

1. Синтаксические ошибки (Syntax Errors)

Возникают, когда код не соответствует правилам языка программирования. Интерпретатор или компилятор не может распознать конструкцию и останавливает выполнение.

# Пример синтаксической ошибки в Python
print("Привет мир"  # Ошибка: отсутствует закрывающая скобка
// Пример синтаксической ошибки в Java
public class Test {
    public static void main(String[] args) {
        System.out.println("Hello") // Ошибка: отсутствует точка с запятой
    }
}

2. Ошибки времени выполнения (Runtime Errors)

Программа синтаксически корректна, но возникает исключение во время выполнения из-за некорректных данных или условий.

# Пример ошибки деления на ноль (ZeroDivisionError)
result = 10 / 0

# Пример ошибки обращения по несуществующему индексу (IndexError)
my_list = [1, 2, 3]
element = my_list[5]

# Пример ошибки обращения к несуществующему ключу (KeyError)
my_dict = {"a": 1, "b": 2}
value = my_dict["c"]

# Пример ошибки преобразования типов (TypeError)
sum = "5" + 3
// Пример NullPointerException в Java
String text = null;
int length = text.length(); // Ошибка времени выполнения

// Пример ArrayIndexOutOfBoundsException
int[] array = {1, 2, 3};
int value = array[5];

3. Логические ошибки (Logical Errors)

Самый коварный тип ошибок - программа выполняется без исключений, но выдает неправильные результаты из-за ошибки в алгоритме.

# Логическая ошибка: неправильная формула расчета среднего
def calculate_average(numbers):
    # Ошибка: суммирование, но не деление на количество
    total = sum(numbers)
    return total  # Должно быть: return total / len(numbers)

# Тест выявит ошибку
scores = [10, 20, 30]
print(f"Неправильное среднее: {calculate_average(scores)}")  # Выведет 60 вместо 20

4. Ошибки в контексте тестирования

В QA Automation мы часто сталкиваемся со специфическими типами ошибок:

Ошибки локализации элементов:

# Selenium WebDriver - элемент не найден
from selenium.common.exceptions import NoSuchElementException

try:
    element = driver.find_element_by_id("non_existent_id")
except NoSuchElementException as e:
    print(f"Элемент не найден: {e}")

Ошибки таймаута:

# Ожидание элемента, который не появляется
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "slow_element"))
    )
except TimeoutException:
    print("Элемент не появился за отведенное время")

Ошибки состояния приложения:

# Попытка взаимодействия с недоступным элементом
from selenium.common.exceptions import ElementNotInteractableException

try:
    button = driver.find_element_by_id("disabled_button")
    button.click()
except ElementNotInteractableException:
    print("Элемент существует, но с ним нельзя взаимодействовать")

5. Ошибки в API тестировании

import requests

# Ошибка 404 - ресурс не найден
try:
    response = requests.get("https://api.example.com/nonexistent")
    response.raise_for_status()  # Вызовет HTTPError для кодов 4xx/5xx
except requests.exceptions.HTTPError as e:
    print(f"HTTP ошибка: {e}")

# Ошибка соединения
try:
    response = requests.get("https://nonexistent-domain.com", timeout=5)
except requests.exceptions.ConnectionError:
    print("Не удалось установить соединение")
except requests.exceptions.Timeout:
    print("Превышено время ожидания ответа")

6. Ошибки в работе с данными

# Ошибка десериализации JSON
import json

invalid_json = "{'key': 'value'}"  # Неправильные кавычки для JSON
try:
    data = json.loads(invalid_json)
except json.JSONDecodeError as e:
    print(f"Ошибка парсинга JSON: {e}")

# Ошибка работы с файлами
try:
    with open("nonexistent_file.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("Файл не найден")
except PermissionError:
    print("Нет прав доступа к файлу")

Практические рекомендации по обработке ошибок в автотестах

  1. Используйте явные проверки вместо неявных допущений
  2. Внедряйте обработку исключений для стабильности тестов
  3. Логируйте ошибки с максимальным контекстом
  4. Создавайте кастомные исключения для доменно-специфичных ошибок
  5. Реализуйте retry-механизмы для flaky-тестов

Понимание различных типов ошибок и их правильная обработка - критически важный навык для QA Automation инженера, позволяющий создавать устойчивые и надежные тестовые фреймворки.