Больничная Игра Или Как Мы Изучали И Тестировали Систему Здравоохранения Одной Из Европейских Стран

Статья «Как справиться с проблемами в устаревшем проекте после трех других команд» описывает, через что пришлось пройти команде разработчиков, чтобы через полтора года получить достаточно стабильный программный продукт. Здесь мы хотим поделиться тем, что сделала команда тестирования, чтобы эффективно протестировать все изменения, внесенные разработчиками, и убедиться, что продукт соответствует ожиданиям клиентов и конечных пользователей.



Больничная игра или как мы изучали и тестировали систему здравоохранения одной из европейских стран

Устаревший продукт без аналитиков, документации, процессов тестирования и вообще полный ошибок — настоящий вызов для любой команды.

И привлечение тестировщиков к такому продукту было лишь вопросом согласия заказчика.

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

Вы можете посмотреть на это так, как если бы вы установили 1С Бухгалтерию на машину американского инженера и попросили его поработать с ней, точно так же, как это делают российские бухгалтеры.

1. С чего начать тестировщику, если есть только код. Первое, что мы сделали, — внимательно изучили все возможные статьи и сайты, связанные со здравоохранением.

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

Конечно же, не обошли нас стороной потенциальные конкуренты и простые приложения для транскрипции голоса.

Вторым этапом знакомства с приложением было тесное общение с заказчиком.

Благодаря переписке и полученным черновикам справочной документации (4 слайда презентации) нам удалось выявить несколько критических моментов:

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

Роли пользователей: Врачи, Секретари, Расшифровщики, Секретари-редакторы (следят за качеством текста), полиграфический отдел.

Список систем интеграции Общий жизненный цикл документов Эти данные стали основой для дальнейшей работы и определили для нас приоритеты в изучении приложения с 400 000 строк кода.

В результате мы нарисовали следующую схему:

Больничная игра или как мы изучали и тестировали систему здравоохранения одной из европейских стран

2. Поддержка как источник знаний.

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

Эти билеты стали нашим вторым источником данных.

Такие приложения обладают невероятным количеством возможностей.

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

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

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

Ситуация была такова, что десять серверов использовали сотни настроек, которые влияли на бизнес-логику клиентского приложения.

Вместе с разработчиками мы изучили каждый из них через код и, конечно же, задокументировали.

3. Все должно быть максимально приближено к реальности.

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

В основном это такие устройства, как речевой микрофон и видеорегистратор, а также педали для управления звуком во время транскрипции.



Больничная игра или как мы изучали и тестировали систему здравоохранения одной из европейских стран

Филипс LFH3200/00

Больничная игра или как мы изучали и тестировали систему здравоохранения одной из европейских стран

Видеорегистратор Philips DPM8000

Больничная игра или как мы изучали и тестировали систему здравоохранения одной из европейских стран

Ножное управление «Бесконечность» Эмуляция систем интеграции стала еще одним важным моментом для эффективного тестирования.

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

Например, Mirth Connector (интерфейс для работы с сообщениями HL7), WinDip (система электронной документации), Docman (электронный сервис для отправки писем).

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

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

4. Ищите лояльных пользователей.

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

Мы просили вас записывать все действия с приложением, а затем отправлять его нам на анализ.

Всего у нас было около десяти записей от пользователей с разными ролями.

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

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

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

5. Сквозное тестирование.

Одним из масштабных тестов для нас было End-to-End тестирование.

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

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

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

В общем, устроили настоящую ролевую игру, оставалось только надеть белые халаты.

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

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

Мы также добились осознанного тестирования, дополнив Jira (Zephyr) и Confluence многочисленными тест-кейсами (более 1000), чек-листами, спецификациями и даже руководствами пользователя (более 50 статей) для наших клиентов.

Но самым главным достижением для нас стало то, что заказчик начал доверять нам как экспертам и очень внимательно относился к нашим советам.

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

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

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

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

Спасибо за внимание! Теги: #тестирование ИТ-систем #тестирование ПО #проектирование и рефакторинг #качество ПО #качество кода #блог компании симбирсофт #блог компании симбирсофт #блог компании симбирсофт

Вместе с данным постом часто просматривают: