Sobes.tech
Back to questions
Middle+
6

Приведи пример unit-теста и интеграционного теста для приложения открытия вклада. Видишь ли риски в подходе, когда все виды тестов пишут разработчики?

Companies where asked
Т-БанкТ-Банк

Answer from AI

sobes.tech AI

Unit-тест для приложения открытия вклада:

def test_calculate_interest_for_deposit():
    deposit = Deposit(amount=10000, rate=0.05, term_months=12)
    interest = deposit.calculate_interest()
    assert interest == 500  # 10000 * 0.05

Этот тест проверяет корректность расчёта процентов по вкладу без взаимодействия с внешними системами.


Интеграционный тест:

def test_open_deposit_integration(client):
    response = client.post('/open_deposit', json={'user_id': 123, 'amount': 10000, 'term_months': 12})
    assert response.status_code == 200
    data = response.json()
    assert data['deposit_id'] is not None
    # Проверяем, что данные сохранились в базе
    deposit = db.get_deposit(data['deposit_id'])
    assert deposit.amount == 10000

Этот тест проверяет взаимодействие между API, базой данных и бизнес-логикой.


Риски, если все тесты пишут разработчики:

  • Снижение независимости: Разработчики могут непреднамеренно писать тесты, которые подтверждают их код, а не ищут ошибки.
  • Ограниченный взгляд: Отсутствие свежего взгляда со стороны QA может привести к пропуску важных сценариев и багов.
  • Приоритеты: Разработчики могут уделять больше внимания unit-тестам, игнорируя интеграционные и системные.

Для повышения качества желательно, чтобы QA специалисты участвовали в написании интеграционных и системных тестов, а разработчики — в unit-тестах.