Каким должно быть соотношение автоматизированного и исследовательского тестирования? |
17.04.2023 00:00 |
Автор: Грегори Пачига (Gregory Paciga) Сегодня я поучаствовал в онлайн-дискуссии о тестировании, где спросили что-то вроде "А каково соотношение автоматизированного и исследовательского тестирования в вашей компании?" Я, конечно, понимаю суть вопроса, и не буду вдаваться в педантизм, отвечая на него – но это мой блог, хочу быть педантом – значит, буду. В вопросе для меня интересно то, что даже если ограничиться одной компанией, одной командой или одним продуктом, можно ответить на него очень по-разному. Критически важно тут то, что для измерения соотношения нужно измерять обе сущности в одинаковых единицах. Одна из моих больных мозолей: тесты – неисчислимая величина. Даже четко заскриптованные ручные тесты, как правило, имеют довольно расплывчатые границы. Автоматизированные тесты, особенно на уровне UI, можно, как правило, рефакторить, меняя количество ответов в инструменте, но сохраняя количество проверок неизменным (даже если в ваших тестах всего одна явная проверка, существует еще и множество неявных. А в некоторых тестах явных проверок может вообще не быть!) Даже если бы тесты можно было подсчитать, как сравнимым образом подсчитать исследовательские тесты? Считать каждую сессию? Каждый чартер? Естественно, нет смысла считать проверки, потому что живой человек делает сотню различных "проверок" в голове ежеминутно. Нет, тесты посчитать невозможно. I popped into an online panel about testing today, and a question along these lines was asked: what is the ratio between automated testing and exploratory testing at your company? Даже вопрос о сравнительном покрытии у этих двух подходов требует некоей базовой исчислимой вещи для покрытия. Я, как правило, работаю в окружении, где неявные требования сильно превосходят то, что явно зафиксировано письменно. У вас может быть набор юзер-стори, сценариев BDD или другие нумерованные списки, по которым можно пройтись, но вряд ли большинство таких списков можно строго описать как "только автоматизированное" или "только исследовательское". (Я редко автоматизирую тесты для фич, которые не исследовал лично). Можете ли вы хотя бы сказать, что юзер-стори на 80% автоматизирована, а на 20% тестируется исследовательским образом? На 20% чего? Возможно, можно замерять потраченное время. Навскидку я могу сказать, сколько времени я потратил на исследовательское тестирование – как минимум, если я хорошо отсекаю время и не сильно отвлекаюсь. Как измерить затраты времени на автоматизацию? Это то время, которое я потратил на создание тестов? На прогон? На анализ результатов? Допустим, я обычно трачу час на код и два часа на исследовательскую сессию; соотношение будет 1:2. Говорит ли это соотношение о чем-то интересном? О чем оно точно не говорит, так это о том, какая часть моей работы выполнена при помощи автоматизации, или о сравнительной важности двух этих видов деятельности. За этот час я, возможно, добавил пачку сценариев в огромный набор тестов, который прогоняется за 8 часов. Лично я не потратил 8 часов на запуск автоматизации; я могу заниматься другими делами, пока компьютер делает эту работу за меня. В этом смысле инвестиция времени в автоматизацию может на самом деле снизить соотношение временных затрат на автоматизацию и исследовательское тестирование. Если автотесты уже довольно подробны и устойчивы, их может быть достаточно для релиза, а исследовательское будет приятным дополнением. С другой стороны, автотесты могут находиться и в зачаточном состоянии – и не приносить особой пользы, однако исследовательское тестирование будет критически важным. Возможно, можно задаться вопросом, сколько времени бережет автоматизация по сравнению с выполнением всей этой работы вручную (надеюсь, вы не будете пытаться это делать). Но тогда мы будем сравнивать автоматизацию и сценарное ручное тестирование, а также будем выяснять, как измерить коэффициент окупаемости автоматизации. Но это совсем другое дело. В реальности, думаю, большинство людей ответит, сравнивая "время, затраченное человеком", а я чересчур все усложняю. Никто не просил приводить единицы измерения. Вопрос тут на самом деле про стратегию – как вы балансируете эти два вида деятельности, чтобы достигать наилучших результатов? Для этого нет единого способа объективного измерения, так как все зависит от того, что важно конкретно для вас. Спрашиваете ли вы, сколько времени допустимо тратить на автоматизацию? О сравнительной важности? О том, что можно автоматизировать или нужно исследовать? Просто хотите запланировать количество необходимых для проекта людей? Ваши приоритеты определяют, как это квантифицируется. |