Когда программные ошибки могут навредить людям

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

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

Здравоохранение и медицинские устройства

Ключевые стандарты

СтандартОбластьОрган
FDA 21 CFR Part 11Электронные записи и подписиFDA США
IEC 62304Жизненный цикл ПО медицинских устройствМеждународный
ISO 14971Управление рисками для медицинских устройствМеждународный
HIPAAКонфиденциальность и безопасность медицинских данныхHHS США
EU MDRРегулирование медицинских устройствЕС

Требования к тестированию

Валидация ПО (FDA): FDA требует, чтобы ПО медицинских устройств было «валидировано» — то есть существовала документальная база, подтверждающая, что ПО стабильно выдаёт результаты, соответствующие заранее определённым спецификациям.

Валидация включает:

  • Installation Qualification (IQ) — правильно ли установлено ПО?
  • Operational Qualification (OQ) — работает ли ПО согласно спецификации?
  • Performance Qualification (PQ) — работает ли ПО корректно в реальной среде?

Тестирование на основе рисков (ISO 14971): Каждая функция должна оцениваться по риску для безопасности пациента.

graph TD A[Выявить опасность] --> B[Оценить риск] B --> C{Допустимый?} C -->|Нет| D[Внедрить контроль риска] D --> E[Проверить эффективность контроля] E --> B C -->|Да| F[Задокументировать остаточный риск]

Журналы аудита: Каждое действие в медицинской системе должно записываться — кто обращался к данным пациента, когда и какие изменения были сделаны.

Трассировка: Полная трассировка от требований к дизайну, к тест-кейсам, к результатам, к дефектам. Это обязательно — аудиторы проверят.

Финансы

Ключевые стандарты

СтандартОбластьОрган
PCI-DSSБезопасность данных платёжных картPCI Security Council
SOXЦелостность финансовой отчётностиКонгресс США
Basel III/IVУправление банковскими рискамиБазельский комитет
GDPR/CCPAКонфиденциальность данныхЕС/США

Требования

PCI-DSS: Любая система, хранящая, обрабатывающая или передающая данные кредитных карт, должна соответствовать PCI-DSS: ежеквартальное сканирование уязвимостей, ежегодный penetration testing, ревью безопасного кода, проверка контроля доступа.

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

Автомобильная отрасль

Уровни ASIL (ISO 26262)

Уровень ASILПримерТребования к тестированию
AУправление внутренним освещениемБазовое функциональное тестирование
BСистемы фарСистематическое тестирование, покрытие требований
CКруиз-контрольТестирование по требованиям, внесение отказов
DТормозная система, рулевое управлениеИсчерпывающее тестирование, формальные методы, независимая верификация

Авиация

DO-178C

Уровни DAL (Design Assurance Level) от A до E:

DALПоследствие отказаПример
AКатастрофическоеПО управления полётом
BОпасноеМониторинг двигателя
CСерьёзноеНавигационный дисплей
DНезначительноеРазвлекательная система
EБез последствийЖурнал обслуживания

ПО уровня DAL A требует Modified Condition/Decision Coverage (MC/DC) — самой строгой формы анализа покрытия кода.

Фармацевтика

Категории GAMP 5

КатегорияТипОбъём валидацииПример
1ИнфраструктураМинимальныйОС, базы данных
3Неконфигурируемые продуктыНизкийКоммерческое ПО
4Конфигурируемые продуктыСреднийERP, LIMS
5Пользовательские приложенияВысокийРазработанные на заказ лабораторные системы

Общие требования регулируемых отраслей

1. Валидация vs верификация

КонцепцияНа какой вопрос отвечаетПример
Верификация«Правильно ли мы построили продукт?»Соответствует ли код спецификации?
Валидация«Построили ли мы правильный продукт?»Удовлетворяет ли продукт реальные потребности пользователя?

2. Документация

Регулируемое тестирование порождает значительно больше документации: план валидации, протокол валидации, отчёт о валидации, матрица трассировки, оценка рисков, записи контроля изменений.

3. Контроль изменений

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

4. Целостность данных (ALCOA+)

ПринципЗначение
Attributable (Атрибутируемые)Кто создал данные?
Legible (Читаемые)Можно ли прочитать данные?
Contemporaneous (Своевременные)Были ли записаны в момент события?
Original (Оригинальные)Это оригинальная запись?
Accurate (Точные)Верны ли данные?
+Complete (Полные)Все ли данные включены?
+Consistent (Непротиворечивые)Есть ли противоречия?
+Enduring (Долговечные)Будут ли доступны весь период хранения?
+Available (Доступные)Можно ли получить доступ при необходимости?

Основы compliance testing

  1. Маппинг регуляторных требований к конкретным тест-кейсам
  2. Сбор доказательств для аудиторов
  3. Анализ пробелов где ПО ещё не соответствует
  4. Тестирование после исправлений
  5. Периодическая повторная валидация

Упражнение: определите требования соответствия

Сценарий: Вы QA Lead стартапа в области здравоохранения, разрабатывающего приложение телемедицины. Приложение позволяет:

  • Видеозвонки с врачами
  • Просмотр и скачивание медицинских записей (результаты анализов, рецепты)
  • Оплата консультаций кредитной картой
  • Получение напоминаний о приёме лекарств через push-уведомления

Приложение запустится сначала в США, затем расширится в ЕС.

Задания:

  1. Какие регуляторные стандарты применимы? Перечислите все и объясните почему.
  2. Для каждого стандарта определите 3 главных требования к тестированию.
  3. Создайте чек-лист compliance testing (минимум 15 пунктов), организованный по регуляциям.
  4. Каковы последствия несоответствия для каждого стандарта?
Подсказка

Подумайте, какие данные обрабатывает приложение:

  • Медицинские записи → HIPAA, FDA
  • Данные кредитных карт → PCI-DSS
  • Расширение в ЕС → GDPR
  • Напоминания о лекарствах → Возможная классификация как медицинское устройство
Решение

1. Применимые стандарты

СтандартПочему применим
HIPAAПриложение обрабатывает PHI (медицинские записи, рецепты)
FDA 21 CFR Part 11Электронные медицинские записи и e-рецепты
FDA SaMDМожет классифицироваться как Software as a Medical Device
PCI-DSSОбработка платежей кредитными картами
GDPRРасширение в ЕС — обработка данных граждан ЕС
ADA/Section 508Медицинские приложения должны быть доступными

2. Топ-3 требования на стандарт

HIPAA: 1) Тестирование шифрования 2) Контроль доступа 3) Журнал аудита

PCI-DSS: 1) Ежегодный penetration testing 2) Ежеквартальное сканирование уязвимостей 3) Тестирование хранения данных

GDPR: 1) Управление согласием 2) Права субъектов данных 3) Уведомление об утечках

3. Чек-лист compliance testing

HIPAA: PHI зашифрована в покое, зашифрована при передаче, RBAC, журнал аудита, тайм-аут сессии, BAA

PCI-DSS: Данные карт никогда в открытом виде, токенизация, квартальные сканы, годовой pen test, сегментация сети

GDPR: Явное согласие, доступ к данным, удаление данных, DPIA, политика конфиденциальности

Доступность: WCAG 2.1 AA, совместимость с программами чтения с экрана

4. Последствия несоответствия

СтандартПоследствие
HIPAAШтрафы до $1.5M за категорию нарушения в год, уголовное наказание
PCI-DSSШтрафы $5K-100K/месяц, потеря возможности обрабатывать карты
GDPRШтрафы до 4% годового мирового оборота или EUR 20M
FDAПредупреждения, отзывы продукции, уголовное преследование

Ключевые выводы

  • Регулируемые отрасли требуют тестирования, выходящего далеко за рамки обычного QA
  • Ключевые отрасли: здравоохранение (FDA/HIPAA), финансы (PCI-DSS/SOX), автомобильная (ISO 26262), авиация (DO-178C), фарма (GAMP 5)
  • Все разделяют общие требования: трассировка, контроль изменений, целостность данных, независимая верификация
  • Несоответствие может привести к серьёзным последствиям: штрафам, отзывам продукции, уголовному преследованию
  • Строгость тестирования пропорциональна риску — больший риск для жизни требует более тщательного тестирования