Существуют ли неважные виды тестирования? Как определяется их приоритет?

Ответ

Все виды тестирования важны, но их приоритет и необходимость определяются контекстом проекта, рисками и доступными ресурсами. Нет универсального "неважного" тестирования.

Как определяется приоритет: Приоритет основан на анализе рисков (вероятность возникновения дефекта * его влияние на бизнес и пользователей).

Вид тестирования Высокий приоритет, когда... Может быть отложен/упрощен, когда...
Дымовое (Smoke) После каждой сборки, перед запуском регресса. При очень частых и небольших инкрементальных релизах (несколько раз в день).
Нагрузочное (Load) Для высоконагруженных публичных сервисов (банки, маркетплейсы). Для внутренних инструментов с десятками пользователей или на этапе MVP.
Юзабилити (Usability) Для массовых B2C-продуктов, где UX — ключевое преимущество. Для внутренних админ-панелей или B2B-решений, где функциональность первична.
Совместимости (Compatibility) Для публичных веб-сайтов, мобильных приложений. Для десктопного ПО под одну конкретную ОС.
Регрессионное (Regression) Перед каждым релизом. Объем может варьироваться. Может быть частично покрыто автоматизацией, чтобы сократить время ручных проверок.

Пример принятия решения: Для MVP (Minimum Viable Product) стартапа критичны функциональное и дымовое тестирование, чтобы проверить работоспособность основной гипотезы. Нагрузочное и детальное юзабилити-тестирование могут быть отложены до привлечения первых пользователей и получения обратной связи.

Вывод: Стратегия тестирования — это всегда компромисс. Задача команды — осознанно расставлять приоритеты, фокусируясь на тестировании того, что представляет наибольший риск для бизнес-ценности продукта в текущий момент.

Ответ 18+ 🔞

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

Так вот, слушай сюда, разберём по полочкам, без этой вашей заумной пиздобратии.

Как на самом деле определяется, на что тратить время, а что — в пизду? Всё упирается в один простой вопрос: «Что хуйней накроется, если мы это не проверим, и сколько это будет стоить?» Вероятность пиздеца умножить на его масштаб — вот и вся ваша формула.

Смотри, табличку для наглядности, чтобы не путаться в трёх соснах:

Что тестируем Когда это критично, как сердцевина огурца Когда можно сказать «да похуй» или сделать спустя рукава
Дымовое (Smoke) После каждой новой сборки, перед тем как запускать долгие проверки. Без этого — как без штанов: можно и не заметить, что основное-то не работает. Когда релизы летят как из пулемёта по десять раз на дню. Тут уже на автомате всё, а ручками только если совсем ёклмн.
Нагрузочное (Load) Для всего, что на виду у народа: банки, магазины, соцсети. Иначе в час пик пользователи так наедят, что серваки взвоют, как суки. Для внутренней бухгалтерской программы на пять человек. Им хоть двадцать запросов в секунду гони — им всё равно.
Удобство (Usability) Для приложений, которыми бабушки и дети пользуются. Если не интуитивно — всё, пользователь сбежит к конкурентам, даже не попрощавшись. Для админки, в которую заходит один сисадмин, который и так знает все костыли и обходные пути. Ему функционал важен, а кнопочки могут быть и кривые.
Совместимость (Compatibility) Для сайтов и мобилок. Щас у каждого второй с дисплеем ретина, а третий со старой андроид-звонилкой сидит. Надо под всех подстроиться. Если пишешь софт под одну конкретную винду на старых офисных компах. Под них и вылизывай.
Регрессионное (Regression) Перед каждым выходом в свет. Но тут хитрость — не надо всё вручную перепроверять, ебать ты колхозник. Автоматизируй, что можно. Когда покрытие автотестами — овердохуища. Тогда ручные проверки — точечно, только на самое больное место.

Живой пример, чтобы мозг не взорвался: Вот есть у тебя стартап-заготовка (MVP). Что самое важное? Чтобы основная фича, ради которой всё затевалось, вообще работала. Значит, лупим по функционалу и дымовым проверкам. А нагрузку и юзабилити с пристрастием можно отложить. Сначала пойми, нужен ли твой продукт хоть кому-то, кроме тебя и твоей мамы. Получил первых юзеров — тогда уже думай, как не уронить сервис и сделать его удобным.

Итог, блядь: Стратегия тестирования — это не священное писание, а постоянный выбор, на чем сэкономить, чтобы не обосраться. Задача команды — не покрыть всё на свете, а осознанно выбрать, что проверять сейчас, а что может подождать, пока не прилетит кирпич в виде разъярённых пользователей или сгоревшего сервера. Всё просто, как три копейки.