Oops... your message was not sent

Your message has been successfully sent

тематические истории, основанные на опыте компании JetRuby
QA

Почему ваш проект нуждается в тестировании

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

Любой, даже самый опытный и высокооплачиваемый программист ответит на этот вопрос отрицательно. Причем без раздумий. И на то существуют совершенно объективные причины.

Внимание: причины

  1. Проявление ошибок и дефектов — это естественная часть процесса разработки. Добавляя новый функционал, программист далеко не всегда может предугадать, как он повлияет на поведение уже существующих инструментов.
  2. Кто-то чинит, кто-то ломает — не поспоришь. Некоторые люди придерживаются мнения, что каждый должен сам проверять свою работу. То есть если разработчик создал новый функционал, он и должен его проверить на предмет соответствия ожиданиям клиента. Но есть один нюанс. Перед разработчиком стоит задача найти возможность “что-то починить”. А перед тестировщиком — “что-то сломать”. Разработчик знает, как работает код и тестирует его функции соответствующим образом. Он не может критиковать собственный продукт, так же как и художник не может критиковать свою картину или скульптуру. Тестировщик же целенаправленно ищет бреши и возможные проблемы в системе, чтобы их не нашел потенциальный клиент или, скажем, недоброжелатель.
  3. Дорого и долго. Мудрый руководитель хорошо знает, что выполнение большого объема задач в короткие сроки, требует разделения функций. А это значит, что пока тестировщик обеспечивает комплексное тестирование ПО, разработчик может тратить свое драгоценное время на создание нового функционала.

Небольшое отклонение от генеральной линии

Справедливости ради, заметим, что существуют различные методы тестирования ПО, в которых разработчик принимает непосредственное участие. Небольшой пример. Одним из специфических способов создания приложений на Ruby on Rails является разработка через тестирование.

image0311

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

Цель разработчика — написать код таким образом, чтобы пройти тест кейсы. Этот подход позволяет сконцентрироваться на решении поставленных задач и обеспечивает написание минимального количества кода. В результате экономится время разработчика и деньги наших клиентов.

Однако финальным аккордом такого цикла разработки все равно становится автоматическое или ручное тестирование. Как видите — без него никуда.

И напоследок

Еще пара слов. Процесс тестирования и обеспечение качества (QA) зачастую вызывает у клиентов ассоциацию с дополнительными расходами. Парируем. На самом деле тестирование безопасности и производительности — это фактор гарантии своевременного устранения вероятных проблем.

Правила-съема-почасовых-квартир

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

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

department
Статью подготовил
Отдел обеспечения качества
Профессиональное тестирование программного обеспечения. Мы используем самые эффективные практики и системы управления, гарантирующие наивысшее качество вашего продукта.
New Articles