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-тестах.