Sobes.tech
Middle

Как можете да проверите персонализираните грешки в процеса на тестване?

sobes.tech AI

Отговор от AI

Проверка на персонализирани грешки включва анализ на тяхното появяване, съдържание и поведение в различни сценарии.

Етапи на тестване на персонализирани грешки:

  1. Анализ на изискванията. Разбиране кои персонализирани грешки се очакват, при какви условия трябва да възникнат и каква информация трябва да съдържат.
  2. Дизайн на тестове. Създаване на тестови сценарии, целенасочено предизвикващи персонализирани грешки. Това могат да бъдат:
    • Въвеждане на некоректни данни.
    • Опит за изпълнение на забранени операции.
    • Имитация на сривове във външни системи.
    • Тестове за натоварване за откриване на грешки, свързани с производителността.
  3. Изпълнение на тестовете. Изпълнение на разработените сценарии и записване на фактическото поведение на системата.
  4. Верификация. Проверка за съответствие на фактическото поведение с очакваното по следните критерии:
    • Коректност на появата: Грешката възникна точно в този момент и при тези условия, които са описани в изискванията.
    • Съдържание на съобщението за грешка: Съответствие на текста на съобщението с изискванията, наличие на необходимата информация (например, код на грешката, описание на проблема, препоръки).
    • Локализация: Проверка за коректност на превода на съобщенията за грешки, ако приложението е многоезично.
    • Форматиране: Визуално представяне на грешката (формат на текста, цвят, разположение) съответства на дизайна или изискванията.
    • Логване. Проверка за наличие на информация за грешката в логовете на системата.
    • Обработка: Поведението на системата след възникване на грешката (например, връщане към предходното състояние, блокиране на последващи действия).
    • Сигурност. Уверяване, че съобщението за грешка не съдържа конфиденциална информация.
  5. Автоматизация. Автоматизация на проверката за възникване и съдържание на персонализирани грешки.

Примери за подходи към автоматизация:

  • Парсинг на отговорите на API. Анализ на JSON/XML отговори за проверка на кодовете за статус и съдържанието на грешките.
    import requests
    
    url = "http://your_api/endpoint"
    data = {"invalid_field": "value"}
    
    try:
        response = requests.post(url, json=data)
        response.raise_for_status() # Проверка за HTTP грешки (4xx, 5xx)
        # Допълнителна логика за проверка на персонализирани грешки в тялото на отговора
        if response.status_code == 400 and "error_code" in response.json():
            assert response.json()["error_code"] == "INVALID_INPUT", "Неправилен код за грешка"
            assert "Invalid data provided" in response.json()["message"], "Неправилно съобщение за грешка"
        else:
            assert False, f"Неочакван статус код: {response.status_code} или тяло на отговора"
    
    except requests.exceptions.HTTPError as e:
        print(f"Възникна HTTP грешка: {e}")
    except Exception as e:
        print(f"Възникна друга грешка: {e}")
    
  • Проверка на елементи от UI. Автоматизация на взаимодействието с UI и проверка на показването на съобщения за грешки към потребителя.
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.junit.Assert;
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    
    public class CustomErrorTest {
    
        private WebDriver driver;
    
        @Before
        public void setUp() {
            // Настройка на пътя към драйвера на браузъра
            System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
            driver = new ChromeDriver();
        }
    
        @Test
        public void testInvalidLoginError() {
            driver.get("http://your_app/login"); // URL на страницата за вход
    
            // Въвеждане на некоректни данни
            WebElement usernameField = driver.findElement(By.id("username"));
            WebElement passwordField = driver.findElement(By.id("password"));
            WebElement loginButton = driver.findElement(By.id("loginButton"));
    
            usernameField.sendKeys("invalid_user");
            passwordField.sendKeys("wrong_password");
            loginButton.click();
    
            // Проверка за появата на съобщение за грешка
            WebElement errorMessageElement = driver.findElement(By.cssSelector(".error-message")); // Селектор на елемента с съобщението за грешка
            Assert.assertTrue("Не е показано съобщението за грешка", errorMessageElement.isDisplayed());
            Assert.assertEquals("Неправилен текст на съобщението за грешка", "Invalid credentials", errorMessageElement.getText());
        }
    
        @After
        public void tearDown() {
            if (driver != null) {
                driver.quit();
            }
        }
    }
    
  • Анализ на логовете на сървъра/приложението. Използване на инструменти за мониторинг и анализ на логовете за появата на конкретни съобщения за грешки или кодове.

Важно е да документирате всички открити грешки, включително стъпките за възпроизвеждане, фактическото и очакваното поведение.

Използвайте различни среди (dev, staging, production) за проверка на поведението на грешките в различни конфигурации.