Sobes.tech
Junior

Знаеш ли някакви видове тестове?

sobes.tech AI

Отговор от AI

Да, знам.

Основни типове тестиране:

  • Функционално тестиране:

    • Тест за дим (Smoke Testing)
    • Тест за здрав разум (Sanity Testing)
    • Интеграционно тестиране (Integration Testing)
    • Системно тестиране (System Testing)
    • Регресионно тестиране (Regression Testing)
    • Приемно тестиране (Acceptance Testing) - включително алфа и бета тестове.
  • Нефункционално тестиране:

    • Тест за производителност (Performance Testing) - включва натоварващо, стресово и обемно тестиране.
    • Тест за сигурност (Security Testing)
    • Тест за удобство при използване (Usability Testing)
    • Тест за съвместимост (Compatibility Testing)
    • Тест за надеждност (Reliability Testing)
    • Тест за достъпност (Accessibility Testing)
    • Тест за локализация (Localization Testing)
    • Тест за интернационализация (Internationalization Testing)
  • Тестиране, свързано с промени:

    • Димово тестиране (Smoke Testing)
    • Регресионно тестиране (Regression Testing)
  • Структурно тестиране (на базата на код):

    • Модулно тестиране (Unit Testing)
    • Тест за бял кутия (White Box Testing)
  • Тестиране, основано на опит:

    • Изследователско тестиране (Exploratory Testing)
    • Тест на базата на контролен списък (Checklist-based Testing)
    • Тест на базата на сценарии (Scenario-based Testing)

Примери за прилагане на някои типове:

Тип тестиране Кратко описание Кога се прилага
Димово тестиране Проверка на основните функции след сглобяване или внедряване. Всяко ново сглобяване.
Регресионно тестиране Проверка дали промените не са внесли нови дефекти в съществуващата функционалност. След всяка промяна или корекция на дефект.
Натоварващо тестиране Проверка на поведението на системата под очакваното натоварване. Преди пускане в експлоатация, при промени в архитектурата.
Модулно тестиране Тестиране на отделни компоненти или модули на кода. В етапа на разработка, от разработчиците.

В автоматизацията на тестовете най-често автоматизираме регресионните тестове, тестовете за интеграция и понякога тестовете за производителност и сигурност.

// Пример за единични тестове (JUnit)
public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
}

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

class CalculatorTest {
    @Test
    void testAdd() {
        Calculator calculator = new Calculator();
        assertEquals(5, calculator.add(2, 3), "Сумата на 2 и 3 трябва да е 5");
    }
}
# Пример за тест с Selenium Webdriver (Python)
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.google.com")
print(driver.title)
driver.quit()