Не сильно углубляясь о тестировании

Не хочу сильно углубляться в тему. Просто небольшой мой взгляд на проблему. Понимаю, что тема холиварная, и не судите строго.

Прежде всего, забудьте обо всех существующих методиках. Поверьте, никто не будет строго следовать им.

Тем не менее, качество кода — это действительно важный аспект. Всё зависит от ресурсов, которыми вы располагаете, и от распределения обязанностей в вашей команде. Проще говоря, задача разработчика в рамках тестирования — просто убедиться, что его код работает. А вот вопрос о том, правильно ли этот код работает, должен быть передан отдельной команде, которая занимается исключительно вопросами качества.

Чтобы убедиться, что код не содержит ошибок, достаточно провести smoke-тесты. Если вы охватите ими корневые домены вашего приложения, это значительно повысит вашу уверенность в коде. Для примера, это может включать в себя всего несколько строк кода.

class ViewTest(TestCase):

    @tag("smoke")
    def test_home_url_response(self):
        url = reverse("home_url")
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)

Но если вы хотите больше уверенности и не обременены дедлайнами и ограниченными ресурсами, то можете покрыть все блоки содержащими критическую логику. Если вы не обременены совсем ни чем - можете обработать всю логику приложения. Лишним точно не будет.

А правильно ли код работает?

Функциональные тесты могут быть как ручными, так и автоматизированными. Однако есть один важный момент: их должна проводить независимая от разработки команда. Это необходимо, чтобы не допустить искажения восприятия. Автоматизированные тесты обеспечивают высокую степень уверенности, хотя и не гарантируют абсолютную надежность.

В любом случае, качество должно быть в приоритете. Как минимум, следует проводить smoke-тесты и нанимать ручного тестировщика. В идеале же, стоит рассмотреть все возможные варианты улучшения качества, которые вы можете себе позволить.