Роман Еникеев в прямом эфире Митапа в ОЗ «Иннополис» рассказал о том, что следует понимать под безопасностью данных, немного об изменении мира к лучшему путем создания хорошего программного продукта и его характеристиках.
Вы узнаете о пирамиде поиска ошибок и о самой поддержке продукта.
Роман имеет более 12 лет опыта работы в IT, занимается full-stack разработкой и на данный момент большую часть времени проводит в должности менеджера по доставке.
Спикер работает в DataArt более 10 лет.
Когда дело доходит до разработки программного продукта, важно определить показатели оценки качества.
Есть много разных метрик, которые можно использовать для этого, но суть этого процесса резюмирована в высказывании Тома Де Марко: «Качество программного продукта — это показатель того, насколько он меняет мир к лучшему.
» Качество продукта – это, прежде всего, польза, которую продукт приносит пользователям.
Согласно формальным документам, характеристиками верхнего уровня являются:
- функциональный фитнес
- уровень исполнения
- совместимость
- простота использования (юзабилити)
- надежность
- безопасность
- ремонтопригодность
- портативность (мобильность)
Создаются специальные процессы, которые помогают минимизировать риски утечки конфиденциальных данных.
Таким образом, становится понятно, как будут вноситься изменения в случае обнаружения каких-либо недостатков системы.
Каждая система имеет разный уровень строгости.
Например, в случае разработки аппарата компьютерного томографа малейшая ошибка может стать причиной смерти пациента.
Вот почему система управления качеством медицинских изделий чрезвычайно строга.
И в целом сфера медицинского развития входит в топ-5 направлений по степени тяжести.
В случае разработки программного обеспечения, которое будет хранить данные банковских карт, важным шагом является прохождение сертификации PCI DSS. Именно поэтому существуют специальные чек-листы и аудиторские компании, которые анализируют все особенности и безопасность программного продукта.
Критерии качества в случае приложения, хранящего банковские данные, будут отличаться от критериев качества медицинского программного обеспечения.
При разработке программного продукта важно оценивать его качество не только со стороны бизнеса, но и со стороны выгоды.
Да, безопасность, мобильность и эффективность основаны на требованиях к продукту, но именно процесс разработки влияет на конечное качество.
Безопасность Безопасность — это предоставление программы для безопасного хранения критически важных данных.
Это сопровождается постоянным тестированием в ходе разработки продукта.
Также, чтобы разобраться в возможных уязвимостях, рекомендуем ознакомиться с топ-10 уязвимостей веб-приложений по версии OWASP. Итак, по данным OWASP, наиболее критичными уязвимостями являются:
- Неправильная аутентификация и управление сеансами
- Утечка конфиденциальных данных
- Нарушение контроля доступа
- Межсайтовый скриптинг
- Отсутствие документации и контроля.
Кстати, OWASP предоставляет руководства по аудиту систем тестирования.
Например, одним из самых популярных руководств по аудиту является руководство для WordPress. Используя его, вы сможете разработать безопасный веб-сайт, который сложно взломать для получения важной информации.
Тестирование Разработка системы не может осуществляться без ошибок.
Очень немногие разработчики могут писать идеальный код. Чтобы искать ошибки и вовремя их исправлять, рекомендуем использовать принцип пирамиды, представленный ниже.
Как показывает практика, лучший способ отслеживать ошибки — автоматическое тестирование.
После сборки продукта его необходимо протестировать, развернуть инфраструктуру и еще раз проверить на наличие ошибок в коде.
По большому счету, если посмотреть на следующую пирамиду, у нас разные уровни.
Мы можем перейти от модульных тестов к тестам сервисов и тестам пользовательского интерфейса.
Что касается модульных тестов, мы знаем, что они быстро пишутся и быстро запускаются, но тестируются в более изолированной системе.
Если мы перейдем к пользовательским интерфейсам, написание которых занимает больше времени, а выполнение существенно дольше, они смогут проверить корректность работы нашей системы с помощью большого количества компонентов.
Если система построена вокруг сервисов, то очень полезная практика — тестировать контракты между этими сервисами на соответствие изменениям.
При написании любого теста нужно каждый раз задавать себе вопросы, например, провалится ли тест, если что-то пойдет не так.
Важно помнить, что тесты — это тоже код, поэтому к нему тоже нужно подойти достаточно ответственно.
Модифицируемость/ремонтопригодность Существует 4 типа:
- Использование корректировок (возможность исправлять ошибки, возникающие в процессе использования)
- Адаптация к изменениям среды (требования постоянно меняются, поэтому необходимо постоянно совершенствовать систему)
- Постоянно улучшайте, а не ухудшайте систему
- Профилактика процессов, чтобы не бояться вносить изменения
-
Поглощение На Практике: Реальная История
19 Oct, 24 -
Microsoft Считает Gmail Вирусом
19 Oct, 24 -
Гаджетзависимость: Обзор Одной Коллекции
19 Oct, 24