IT аудит: лучшее лечение-это профилактика. Технический аудит.

 

Найди ошибки сегодня – избавься от проблем завтра.

В предыдущей статье мы рассказали об аудите как об эффективном инструменте оптимизации, и о том, какие направления для аудитов мы в Umbrella выделяем для себя как основные.

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

 

 

КОГДА НУЖЕН ТЕХНИЧЕСКИЙ АУДИТ?

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

 

Стоит проконсультироваться в отношении технического IT аудита, если:

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

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

 

 

ЧТО ВКЛЮЧАЕТ В СЕБЯ ПРОЦЕДУРА ТЕХНИЧЕСКОГО АУДИТА?

Услуги по проведению технического IT аудита можно разделить на три основных части:

  • ревью кода веб или мобильного приложения;
  • ревью серверной архитектуры;
  • комплексное тестирование.

 

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

Содержание, объем и продолжительность аудита зависят от размера приложения и от того какие действия планируются в дальнейшем (т.е. на чем сделать упор в аудите):

  • дальнейшая разработка,
  • расширение приложения,
  • внесение изменений,
  • выявление и корректировка ошибок и т.д.

 

 

code review

РЕВЬЮ КОДА

Какие преимущества вы получаете?

После ревью кода, устранения выявленных ошибок и выполнения рекомендаций:

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

 

Что мы проверяем?

  • cтиль оформления кода

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

  • архитектуру кода

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

Лишних затрат можно избежать и продлить жизнь кодовой базы, если:

1) изначально заложить гибкую модульную архитектуру кода, и

2) периодически пересматривать архитектуру и обновлять/рефакторить отдельные модули/части приложения.

С точки зрения архитектуры мы проверяем код по следующим параметрам:

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

Мы проверяем безопасность пользовательских данных и наличие уязвимостей в коде. Такая проверка охватывает:

  • проверку на наличие  в коде важных доступов, приватных ключей и паролей: согласно лучшим практикам они не должны храниться в коде, иначе тот, кто получит доступ к коду, получит и все эти доступы и ключи;
  • проверку на наличие уязвимостей в коде: проверяем риск проведения SQL-инъекций, XSS, CSRF атак, а проще говоря – риск того, что ваши данные окажутся предметом кражи;
  • проверку на известные уязвимости языка/фреймворка, который используется для создания приложения;
  • проверку работы с ошибками и обработку исключений: клиент не должен видеть в приложении ошибки сервера или их описание, и т. д.
  • критические и основные функции на уровне кода

Проверяем механизмы аутентификации, авторизации, передачи и обработки важной информации (например, обработка денежных транзакций и т.д.).

 

 

server infrastructure review

РЕВЬЮ СЕРВЕРНОЙ ИНФРАСТРУКТУРЫ

Какие преимущества вы получаете?

После проверки серверной инфраструктуры, устранения выявленных слабых мест и выполнения рекомендаций:

  • оптимизируется использование серверных ресурсов: вы платите только за те функции, которыми действительно пользуетесь (а это может привести к ощутимой экономии);
  • повышается стабильность системы: приложение бесперебойно функционирует в режиме 24/7;
  • система готова к росту нагрузок, если они планируются. Можете спокойно наращивать темпы развития своего бизнеса.

 

 

Что мы проверяем?

  • мониторинг серверов

Проверяем, как мы получаем информацию в случае, если произошел сбой сервера и насколько быстро (будет это известно в течение 30 секунд или часа). 

  • безопасность
  • доступ к системным папкам и файлам на сервере: согласитесь, мало приятного, если загрузки пользователя находятся в общем доступе;
  • пароли в среде production: проверяем, насколько они надежные;

Например:

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

  • открытые порты на серверах;
  • кому и какие права предоставлены;
  • используемые сервисы

Проверяем, насколько оптимально за свою цену такие сервисы решают поставленные задачи.

  • резервное копирование

Проверяем, настроено оно или нет. Если не настроено, высок риск потери данных. 

  • масштабируемость

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

 

 

test now audit

 

КОМПЛЕКСНОЕ ТЕСТИРОВАНИЕ

Технический аудит также включает в себя комплексное тестирование. Что это означает? Продукт проходит полную проверку на наличие ошибок, уязвимостей и/или недоработок.

 

Какие преимущества вы получаете?

После проведения комплексного тестирования, устранения выявленных ошибок и уязвимостей и выполнения рекомендаций:

  • продукт становится более привлекательным для пользователей;
  • количество пользователей увеличивается благодаря корректной поисковой оптимизации (SEO). Известность продукта растет. А, соответственно, растет и ваша прибыль.

 

Что мы проверяем?

  • функциональность

На этом этапе функционал приложения проверяется по методике “черного ящика”, то есть мы знаем, что должно делать приложение, и проверяем, как оно это делает, не заглядывая “внутрь” продукта (выступаем в роли пользователя).

  • UI/UX

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

  • оптимальное и корректное отображение приложения на всех поддерживаемых устройствах и браузерах;
  • для веб-приложения проверяется фронтенд часть  (HTML/CSS и JS код), так как ее корректность существенно влияет на ранжирование страниц приложения (то есть на степень важности для поисковых систем) и удовлетворенность пользователя (по сути, это то, что видит и с чем работает пользователь, и ему либо нравится, либо нет);
  • общая структура приложения: насколько удобно выполнены переходы по страницам/экранам, как расположено содержимое страниц/экранов.
  • поисковую оптимизацию (SEO)

Проверяем на соответствие всем правилам внедрения SEO практик.

По результатам исследования, проведенного Search Engine Journal (с участием специалистов, профессиональная деятельность которых связана с поисковой оптимизацией), 77% опрошенных считают, что компаниям необходимо проводить SEO аудит каждые шесть месяцев.

 

Так как  SEO играет одну из ключевых ролей в росте популярности веб-приложения и/или сайта (увеличении конверсии), очень часто возникает необходимость провести отдельный SEO аудит. И это вполне разумно, а главное, выполнимо.

 

Нужен аудит или просто есть вопрос? Спросите – мы поможем!

 

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

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

 

Процедура проведения комплексного тестирования

1. Все начинается с дымового (smoke) тестирования (минимальной проверки основного функционала, чтобы выявить очевидные ошибки). Происходит своего рода знакомство с приложением и его логикой. Начинается разработка кейсов для более сложного тестирования.

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

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

На этом этапе также проводится нагрузочное тестирование: load testing (при ожидаемой нагрузке) и/или stress testing (при экстремальных нагрузках).

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

Форма отчета: любая (по согласованию между исполнителем и клиентом). Основной критерий, который мы считаем важным, это то, что отчет должен быть выполнен в простой и легко читаемой форме.

 

 

passed audit

ЧТО ВЫ ПОЛУЧАЕТЕ В РЕЗУЛЬТАТЕ ТЕХНИЧЕСКОГО АУДИТА?

  • Вам предоставляется отчет о проведении аудита с указанием выявленных ошибок и уязвимостей. При этом обязательно обозначается приоритетность исправления таких ошибок: критичные, требуют внимания, нежелательные;
  • В отчет также входят рекомендации (по улучшению кода, по оптимизации серверной архитектуры, по улучшению UI/UX или SEO параметров и т.д.).

 

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

Следите за новыми публикациями в нашем блоге – мы продолжим рассказывать о различных типах IT аудита. Возможно, именно вашему бизнесу сейчас нужно повысить эффективность и избавиться от лишних проблем. Мы расскажем, как это сделать!

 

 

Фото: Shutterstock.com

 

 

 

 

 

 

 

 

 

 

 

 


Ещё

  • CEO компании Umbrella на Agile Days 2018: рецепт эффективного и контролируемого роста команд разработчиков
    CEO компании Umbrella на Agile Days 2018: рецепт эффективного и контролируемого роста команд разработчиков
      22-23 марта в московском Центре Международной Торговли прошла 12-я глобальная конференция по гибкому управлению процессами Ag;)le Days 2018. Одним из спикеров конференции стал основатель и CEO компании Umbrella Станислав Мешков. Мы попросили Стаса рассказать немного о том, как это было. Интервьюер: Привет, Стас! На конференции Ag;)le Days 2018 ты выступал с докладом: “Разработка: увеличь компанию, …
  • IT Лидеры и правители из прошлого: удивительные параллели успеха, которые вы могли не заметить. Часть 2
    IT Лидеры и правители из прошлого: удивительные параллели успеха, которые вы могли не заметить. Часть 2
      В стремлении стать одним из сильнейших лидеров в IT-индустрии, немаловажно обладать рядом определённых качеств, развивая которые вы сможете построить собственную империю. В предыдущей статье вы узнали несколько историй успеха величайших деятелей IT-индустрии, у которых есть, чему поучиться. Сегодня мы расскажем вам о том, что помогает Александру Македонскому нашего времени осваивать новые ниши рынка, и как …
  • IT Лидеры и правители из прошлого: удивительные параллели успеха, которые вы могли не заметить. Часть 1
    IT Лидеры и правители из прошлого: удивительные параллели успеха, которые вы могли не заметить. Часть 1
      Стремитесь завоевать весь мир? Отлично! Вы почти обречены на успех. Как насчёт анализа кирпичиков того победного фундамента, что был заложен в великих и известных всему миру достижениях? Во все времена главной движущей силой была целеустремлённость. Однако чтобы построить могущественную державу, необходимо обладать ещё и рядом определённых качеств – развивая их, вы сможете повторить успех ваших …