Чем Smoke отличается от Sanity и Regression
1️⃣ Как кратко ответить
Smoke тестирование — это начальная проверка критически важных функций системы, чтобы убедиться, что приложение готово к более детальному тестированию. Sanity тестирование — это узконаправленная проверка, чтобы убедиться, что конкретные изменения или исправления ошибок работают правильно. Regression тестирование — это полное тестирование системы, чтобы убедиться, что новые изменения не нарушили существующую функциональность.
2️⃣ Подробное объяснение темы
Smoke, Sanity и Regression тестирование — это три различных типа тестирования, которые применяются на разных этапах разработки программного обеспечения для обеспечения его качества.
Smoke тестирование
Smoke тестирование, также известное как "дымовое тестирование", проводится на начальных этапах тестирования. Его цель — убедиться, что основные функции приложения работают и система готова к более детальному тестированию. Это поверхностное тестирование, которое охватывает критически важные функции, такие как запуск приложения, базовая навигация и основные операции.
Пример: Представьте, что вы тестируете новое приложение для интернет-магазина. Smoke тестирование будет включать проверку, что приложение запускается, можно войти в систему, просмотреть товары и добавить их в корзину.
Sanity тестирование
Sanity тестирование проводится после получения нового билда с незначительными изменениями или исправлениями ошибок. Оно направлено на проверку того, что конкретные изменения работают правильно и не вызвали новых проблем. Sanity тестирование более узконаправленное, чем Smoke тестирование, и фокусируется на конкретных областях приложения.
Пример: Если в интернет-магазине была исправлена ошибка, связанная с расчетом стоимости доставки, Sanity тестирование будет включать проверку, что расчет стоимости доставки теперь работает правильно.
Regression тестирование
Regression тестирование проводится для проверки того, что новые изменения в коде не нарушили существующую функциональность приложения. Это более обширное тестирование, которое охватывает все основные функции системы. Regression тестирование может быть автоматизировано для повышения эффективности и охвата.
Пример: После добавления новой функции в интернет-магазин, такой как возможность оплаты через новый платежный шлюз, Regression тестирование будет включать проверку всех основных функций, таких как регистрация, поиск товаров, добавление в корзину, оформление заказа и оплата, чтобы убедиться, что они работают как ожидалось.
Код для автоматизации Regression тестирования
import unittest
class TestECommerceApp(unittest.TestCase):
def test_login(self):
# Проверка, что пользователь может войти в систему
self.assertTrue(login("user", "password"))
def test_add_to_cart(self):
# Проверка, что товар можно добавить в корзину
self.assertTrue(add_to_cart("item_id"))
def test_checkout(self):
# Проверка, что можно оформить заказ
self.assertTrue(checkout("user_id", "payment_info"))
def test_payment_gateway(self):
# Проверка, что новый платежный шлюз работает
self.assertTrue(process_payment("user_id", "new_gateway"))
if __name__ == '__main__':
unittest.main()
import unittest: Импортируем модульunittest, который используется для написания тестов в Python.class TestECommerceApp(unittest.TestCase): Создаем класс тестов, который наследуетunittest.TestCase.def test_login(self): Определяем тестовый метод для проверки функции входа в систему.self.assertTrue(login("user", "password")): Проверяем, что функцияloginвозвращаетTrue, что означает успешный вход.def test_add_to_cart(self): Определяем тестовый метод для проверки добавления товара в корзину.self.assertTrue(add_to_cart("item_id")): Проверяем, что функцияadd_to_cartвозвращаетTrue, что означает успешное добавление.def test_checkout(self): Определяем тестовый метод для проверки оформления заказа.self.assertTrue(checkout("user_id", "payment_info")): Проверяем, что функцияcheckoutвозвращаетTrue, что означает успешное оформление.def test_payment_gateway(self): Определяем тестовый метод для проверки нового платежного шлюза.self.assertTrue(process_payment("user_id", "new_gateway")): Проверяем, что функцияprocess_paymentвозвращаетTrue, что означает успешную обработку платежа.if __name__ == '__main__': unittest.main(): Запускаем тесты, если скрипт выполняется как основная программа.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться