http://hawkhouse.ru/wp-content/uploads/2017/07/img-1-1-1-34.jpg		

Как сократить сроки тестирования и отладки программ?

captcha

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

Эти проблемы хорошо знакомы:

  • разработчикам банковских систем;
  • тем, кто осуществляет автоматизацию предприятий оптовой или розничной торговли (ритейла);
  • разработчикам транспортных и логистических систем;
  • стартапам базирующим свое предложение на технологических платформах;

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

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

Пример такой ситуации:

Из-за дефекта программного обеспечения, предоставляемый банком «Электронный кошелек» показывает неверный баланс счета. Вряд ли клиент банка, столкнувшийся с данной ошибкой, воспользуется услугой повторно, а менеджеру банка, практически гарантировано, придется практиковаться в работе с претензиями.

Другой, сравнительно, недавний пример программного сбоя, обернувшийся серьезными финансовыми потерями для известного муниципального предприятия и ощутимым штрафом для подрядчика: 18.10.2016 года, прервали функционирование сервисы оплаты муниципальных парковок. К чести “Московского паркинга”, при попытке воспользоваться сервисами оплаты, оператор сообщал что, до тех пор, пока функционирование системы не будет восстановлено полностью, водители не оплатившие парковку штрафоваться не буду. Проведенный анализ показал, что причиной сбоя системы явились особенности последней сборки приложения для iOS. Подрядчик, отвечающий за корректную работу программного обеспечения, был оштрафован на 4000000 руб.(Подробнее на РБК).

А за неделю до конца того же, 2016 года, московская сеть пиццерий “Додо Пицца”, по ошибке, вернула покупателям почти 8000000 руб., полученных за оплаченные  покупателями заказы. Данная ошибка произошла при очередном обновлении системы и переносе данных с тестовой среды на рабочую. Система решила, что все заказы, оплаченные покупателями за последнюю неделю, отменены и скомандовала “Яндекс.Кассе” вернуть деньги. Для предприятия, развивающегося как стартап и оплачивающего вложения в развитие инвестиционным капиталом, цена ошибки являлась очень серьезной, поэтому было сделано все возможное для минимизации прямых убытков. Только ценой оперативно-проведенной в соц.сетях кампании по разъяснению сложившейся критической ситуации, титанических усилий операционистов “Яндекс.Денег” и договоренности с банками-партнерами об отмене возврата, прямые убытки удалось сократить, примерно, до 200000 руб. (кампания в соц.сетях, комиссия банкам за опарации по отмене транзакций и оплата за SMS-уведомления клиентам). (Подробнее, от первого лица компании, на vc.ru).

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

Особенности ручного тестирования

Для проведения тестирования вручную, формируется команда тестировщиков или его осуществляют сами разработчики, по ходу исполнения проекта.

При таком подходе есть следующие ключевые особенности:

  • при проверке всей системы которая создавалась годами, такое тестирование крайне трудоемко и требует много времени, поэтому обычно проверяют только новый функционал предполагая что со старым все хорошо;
  • как следствие ручное тестирование не позволяет комплексно проверять сложные долго разрабатываемые системы в разумные сроки, так как проведение серьезного тестирования вручную потребует привлечения большой команды квалифицированных тестировщиков;
  • в ходе длительного тестирования, проявляется синдром «замыленного глаза», когда тестировщики не замечают ошибки в новых версиях продукта;
  • автоматизированное тестирование позволяет значительно ускорить проверку качества информационных систем;

При таком тестировании, процесс проверки функционала системы осуществляется автотестами специальными скриптами выполняющими прогон теста.

Автоматизированное тестирование оптимально в случаях, когда необходимо гарантировать высокое качество продукта с большим функционалом.

Обычно такие проекты характеризуются частыми выпусками релизов.

Если Вы заботитесь о долгосрочном качестве продукта, регрессивное тестирование необходимо после каждого очередного релиза. Проводить качественное тестирование вручную в таком объеме просто невозможно. Классифицируя направления тестирования программного обеспечения, мы можем выделить функциональное и нефункциональное (нагрузочное, юзабилити, безопасности и пр.) тестирование.

Задачей функционального тестирования является оценка соответствия системы предъявляемым к ней бизнес-требованиям. На рынке программного обеспечения не существует готовых продуктов, на 100% соответствующих всем задачам, в рамках каждого проекта.

Специалисты “Хок Хаус Интегрейшн” помогут выбрать продукт, максимально-соответствующий предъявляемым требованиям, а в случае необходимости, доработать его, реализовав в нем недостающий функционал.

Нагрузочное тестирование выполняется с помощью специальных инструментов, задачей которых является проверка и оценка производительности приложений. Качественно провести нагрузочное тестирование вручную практически невозможно.

Надежность системы, которая работает в круглосуточном режиме полную неделю, обслуживая сотни тысяч клиентов, не должна вызывать сомнений. И достоверно выяснить степень надёжности такой системы возможно только с помощью автоматизированного тестирования.

Особенности инструментов автоматизации тестирования

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

  • высокая скорость выполнения тестов;
  • многократная повторяемость;
  • широкое тестовое покрытие;
  • правильность документирования;

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

Специалисты группы компаний «Hawk House Integration» предлагают Вам проведение независимого функционального и нагрузочного тестирования ваших программных продуктов.

Выполняя порученный проект по разработке средств тестирования, мы:

  • оценим затраты по разработке, отладке и внедрению средств автоматизированного тестирования Ваших систем;
  • разработаем, специально под ваш проект, или рекомендуем использование готовых инструментов автоматизированного тестирования;
  • подготовим тестовые сценарии;
  • сгенерируем тестовые данные;
  • проанализируем результаты проведенных тестов;
  • рассмотрим и учтем особенности Вашего проекта;
  • регулярно актуализируем автотесты, по мере развития вашего проекта;
  • предусмотрим масштабируемость тестирования проекта, в соответствии с развитием его функционала;

Являясь опытными тестировщиками информационных систем и другого программного обеспечения, мы обеспечиваем тестирование ваших проектов на высочайшем уровне!