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

Вкладывайтесь в тестирование - окупится

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

  • Расходы на персонал - ваш тестировщик тоже хочет, чтобы ему платили
  • Затраты на инфраструктуру - вам могут потребоваться тестовые устройства / серверы / оборудование / программное обеспечение.
  • Время администрирования - установка и обслуживание системы тестирования требует времени

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

Затраты на персонал

В зависимости от размера вашей команды, продукта и цикла разработки вы можете рассмотреть вопрос о найме назначенного тестировщика / тестировщика. Не существует золотого правила или эталона (по крайней мере, мне ничего не известно), которые сообщали бы вам, что начиная с точки X и далее вам понадобится специальный тестер.
Изучая данные, собранные нашей системой продажи билетов (за 2 года) , ежемесячный цикл выпуска в сочетании с ежеквартальным обновлением) необходимое время для полного тестирования задачи находится в диапазоне от 10 до 30% по сравнению с общим временем разработки.
Если вы планируете свои спринты, дорожные карты, контрольные точки (или что-то еще вы их называете) вам следует подумать о следующем:

Могу ли я потратить до 30% дополнительного времени на выполнение задачи без какого-либо влияния на наши цели?

Если ответ отрицательный, подумайте о том, чтобы нанять специального тестировщика или пересмотреть планирование проекта, чтобы потратить это время.

Выгода

Назначенная команда или лицо, ответственное за обеспечение качества и тестирование, позволяет другим членам команды больше сосредоточиться на своей роли. Также может пригодиться предоставление единого контактного лица для других отделов в случае обратной связи / вопросов по проверке продукта. Также важно получить больше «бесплатных» мест для разработки, чтобы реагировать на внезапные изменения, проблемы или запросы клиентов.

Затраты на инфраструктуру

Потребности в тестовой инфраструктуре зависят от вашего проекта / продукта. Вы можете решить эту проблему для нескольких ошибок в месяц или это может потребовать больших вложений.
Поскольку эта часть очень изменчива, на нее не так легко ответить, тем не менее, попробуйте затронуть суть вашего проекта.
Вы публикуете мобильные приложения? Рассмотрите возможность инвестирования в услуги, позволяющие запускать тесты на нескольких устройствах, они будут взимать с вас ежемесячную плату, но вы получите широкий выбор устройств.
Предоставляете ли вы веб-страницу SaaS? Попробуйте создать систему, подобную вашей производственной среде, и используйте Selenium для проверки своих веб-страниц.

Обратите внимание на одну важную вещь: не изобретайте велосипед. Проверьте, что используют другие компании. Обдумайте предложения от вашего поставщика инфраструктуры / технологии. Есть так много отличных инструментов, которые помогут вам:

  • Jenkins - система сборки с массой плагинов для сборки и тестирования.
  • Селен - автоматическое тестирование веб-страниц.
  • Модульный тест - NUnit, XUnit, MSTest и многие другие.
  • Xamarin Tests или Appium

Выгода

Наличие инструмента / инфраструктуры гарантирует, что вы сможете надежно, многократно и практически в реальных условиях проводить тестирование. Использование существующих инструментов экономит время и позволяет автоматизировать. Добираться утром в офис и смотреть готовый к рассмотрению отчет ночных испытаний - хорошее чувство - поверьте мне :)

Административные расходы

Тестирование никогда не будет одноразовым вложением! Не стоит недооценивать этот момент, если вы полагаетесь на устаревший набор тестов, который больше не соответствует реальному продукту, на котором вы сидите, тикающую бомбу. Регулярно выделяйте время при планировании для решения этой проблемы - прежде чем накапливать технический долг для тестирования.



Выгода

Проверка работоспособности вашей системы тестирования и инструментов должна быть частью вашего регулярного обслуживания, так же, как и для вашей продуктивной системы. Помните, что ваша система тестирования гарантирует, что ваша продуктивная система работает нормально. Регулярно решая эту проблему, тестирование остается в повседневном рабочем списке, убедитесь, что ваше определение готового включает тестирование, и это никогда не будет большой проблемой.



Определение« готово ?
Я думаю, что каждый, кто работает в команде, хотя бы раз наткнется на вышеуказанный заголовок и связанную с ним тему… medium.com»



Бонусная выгода от тестирования

Надежная стратегия тестирования позволяет вам и вашей команде сосредоточиться на решении повседневных задач. Это также обеспечивает душевное спокойствие людям, которые полагаются на вас, они знают, что вы тестируете. Укрепление доверия как внутри компании, так и за ее пределами принесет свои плоды. Облегчение хорошо подготовленной тестовой системы также позволяет вам быстро реагировать на изменения, вы можете быть быстрее, как конкурент, внедряющий новую технологию или предлагающий новую блестящую функцию. Позвольте мне еще раз указать на один жизненно важный элемент:

Даже если у вас есть команда тестирования / QA, все, кто участвует в процессе разработки, должны тестировать. Задачу нельзя выполнить, пока она не будет протестирована, разработчики не могут просто зафиксировать и переместить ее.

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