Правила написания предварительных шагов в тест-кейсах

ИФА (иммуноферментный анализ)

ПЦР-тест-системы, как и КТ-диагностика выявляет COVID-19 в острой фазе. Однако весьма актуальна и информация об уже переболевших, на основании которой можно судить об охвате населения заболеванием, а также о числе бессимптомных случаев. Ответы на эти, а также на многие другие вопросы, может дать тест-система на антитела. На сегодняшний день разработкой таких тест-систем помимо «Вектора» занимаются такие организации как «Вектор-Бест», «НПО «Диагностические системы», ФНКЦ ФХМ ФМБА России, «МБС-Технологии», а также «Генетико» и Институт молекулярной биологии РАН . К сожалению, тест-системы на антитела требуют намного больших усилий и времени на разработку, чем ПЦР-системы, а их чувствительность и специфичность оставляет желать лучшего. Так, проведенное в США исследование доступных система на антитела показало, что лишь 3 из 14 систем дают надежные результаты (т.е. не более 1% ложноположительных результатов), но при этом их чувствительность не превышает 90% относительно положительных контрольных образцов []. Какова будет чувствительность и специфичность разрабатываемых российских систем – пока неизвестно.

Итак, самое разумное, что вы можете сказать клиентам:

Если у вас первые пять дней симптомов – вполне можно сдать пробы для ПЦР-диагностики в частных центрах, в идеале, заказав выезд специалистов на дом

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

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

Проводить ИФА при текущей низкой точности – едва ли имеет смысл. 
Если у вас нет симптомов, но был контакт, то можно пройти ПЦР-диагностику, но лучше всего на 14 дней уйти на самоизоляцию и наблюдать за самочувствием.. Регистрируйся на нашем сайте и получай доступ ко всем материалам о COVID-19 в специальном разделе

Регистрируйся на нашем сайте и получай доступ ко всем материалам о COVID-19 в специальном разделе.

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

Отвечаем на вопросы в прямых эфирах Вконтакте: https://vk.com/pharmznanie 

Обсудить последние новости со всеми коллегами России вы можете в чатах:

  • Telegram: https://tglink.ru/pharmorden
  • ВКонтакте: https://vk.me/join/AJQ1d_D2XxaDy9IdzL0e6EqH

Заинтересовала статья? Узнать еще больше Вы можете в разделе Коронавирус

Расшифровка теста IgG

Как и в случае с IgA, для качественного и количественного определения иммуноглобулинов класса G применяют метод ИФА. Цифры такие же, как и для IgA, однако интерпретация результатов отличается:

  • Положительный результат – больше 1,1. Это норма, которая говорит о наличие иммуноглобулинов G против нового коронавируса. Скорее всего, пациент уже несколько месяцев как переболел коронавирусной болезнью и гуморальный иммунитет успел сформироваться. При этом другие иммуноглобулины (IgA и IgМ) должны отсутствовать. Их наличие указывает на стадию выздоровления.
  • Пограничный результат – 0,8-1,1. В таком случае нужно сделать повторный анализ через 14 дней. Если изначально тестирование проводилось на начальной стадии заболевания или выздоровления (до 5 недель), то повторное тестирование покажет увеличение титра антител.
  • Отрицательный результат – меньше 0,8. Это отсутствие IgG в крови. Такой пациент либо не болел коронавирусной болезни, либо проходил тестирование в острой фазе заболевания, когда IgG еще не успели выработаться.

Диаграмма переходов состояний

Техника

Состояние (State) — Условие в котором система ожидает одно или несколько событий.Состояние помнит что было получено на вход и определяет ответную реакцию, которая должна произойти. Это событие может быть приводить в новое состояние и/или инициировать новое действие. Состояние обычно отражает значение некоторой переменной в системе. Изображается в форме круга.

Переход (Transition) — Представляет переход из текущего состояния в новое, в результате выполнения какого-то действия. Изображается в виде стрелки.

Событие (Event) — Событие, ставшее причиной изменения состояния. Обычно событие поступает в систему из внешнего мира посредством некоторого интерфейса. Иногда это событие инициируется внутри самой системы например такие как срабатывание таймера, снижение ниже какого-то уровня. Считается, что событие происходит моментально. Событие может быть как независимым, так и связанным. Когда событие случается, система может изменить состояние или остаться в прежнем состоянии и/или инициировать действие. События могут иметь, связанные с ними параметры (номер карты, сумма на счете). Изображается как подпись к стрелке перехода.

Действие (Action) — Операция, инициированная в результате смены состояния. Зачастую это некоторый ответ системы. Помните, что действие происходит при переходе между состояниями. Состояния сами по себе статичны. Указывается через слеш в подписи к стрелке перехода после события.

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

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

На основании Диаграммы перехода состояний составляется Таблица перехода состояний. Таблица содержит 4 колонки: текущее состояние, событие, действие, следующее состояние.

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

Может быть выбран один из 4 вариантов создания тест-кейсов:

  1. Создать наборы тест-кейсов так, чтобы все состояния были пройдены хотя бы по одному разу. В одном тест-кейсе может быть описан переход через несколько состояний. Это довольно слабый уровень тестового покрытия.
  2. Создать наборы тест-кейсов так, чтобы все события были инициированы хотя бы по одному разу. Тест-кейсы, которые покрывают все события в то же время покрывают и все состояния. Снова слабый уровень тестового покрытия.
  3. Создать наборы тест-кейсов так, чтобы все пути были пройдены хотя бы по одному разу. Такой способ хорош с точки зрения тестового покрытия, однако практически не осуществим. Если диаграмма имеет циклы, то количество возможных путей может оказаться бесконечным.
  4. Создать наборы тест-кейсов так, чтобы все переходы были выполнены хотя бы по одному разу. Этот способ обеспечивает хороший уровень тестового покрытия, поэтому рекомендуется использовать именно его.
    Рекомендуемая стратегия создания тест-кейсов состоит в том, чтобы хотя бы по разу протестировать все переходы между состояниями. В высокорисковых системах, где требуется более надежное тестовое покрытие, возможно создавать тест-кейсы на каждый путь (цепочку переходов) между состояниями.

Типы тестирования

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

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

  • Техники белого ящика (они же структурное тестирование) применяют в том случае, если специалист хорошо знает архитектуру продукта, его код, «начинку» – то есть может ориентироваться в самой программе. 

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

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

Классы эквивалентности (Equivalence Class Testing)

Техника

  1. Определить классы эквивалентности.
  2. Создать тест-кейсы для каждого класса эквивалентности.

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

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

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

При наличии нескольких переменных:

  1. валидные классы нескольких переменных объединяются в один тест-кейс;
  2. невалидные классы тестируются отдельно.

Взятие пробы для ПЦР

Показано, что для выявления нового коронавируса подходят смывы из носоглотки – из ротоглотки вероятность ложноотрицательного анализа немного выше []. Один из важнейших аспектов – время взятия материала. Проведенные исследования показывают, что при взятии материала у больного в первый день проявления симптомов COVID-19 положительный диагноз поставят с вероятностью 94 %, а вот к 10-му дню это будет всего лишь 67 %! [

Существует четкая закономерность: чем позже от возникновения симптомов взят материал, тем меньше шансов обнаружить в нем вирусную РНК.

Есть и хорошие новости: в течение первой недели от возникновения симптомов носоглоточные смывы имеют порядок от 100 000 до 1 000 000 копий вирусной РНК в 1 мл, что делает их легко обнаруживаемыми даже не самыми чувствительными системами. Исследования также показали, что вирусная нагрузка в верхних дыхательных путях может быть одинаковой у людей с проявленной симптоматикой и при бессимптомном течении болезни

Рекомендации по созданию тест-кейсов на основе вариантов использования

  1. Начать с валидных данных и наиболее частых сценариев.
  2. Проверить граничные значения и невалидные значения (с использованием ранее рассмотренных техник).
  3. Редко используемые сценарии, крайне важные для системы (так называемая “Остановка ядерного реактора” Shut Down The Nuclear Reactor)
  4. Тесты на каждое ветку-альтернативу (Extension) каждого шага
  5. Попробовать выполнить операцию в непривычном порядке
  6. Извратить предусловие, если это действительно может произойти
  7. Если транзакция имеет циклы, запустите ее в цикле, и не один-два раза — будьте жестче
  8. Найти очень долгий и извилистый путь и пройдите по нему
  9. Если ожидается, что транзакция будет выполняться в логичном порядке, попробовать выполнить ее в обратном порядке (например заполнить поля не сверху вниз, а снизу вверх)
  10. Создать тесты на защиту от дурака

Шаблон описания вариантов использования

Use Case Component Description
Use Case Number or Identifier
(Номер или идентификатор)
Уникальный идентификатор
Use Case Name
(Наименование)
В форме предложения, содержащего глагол в активной форме (что сделать?).
Например, Авторизоваться, Создать заказ
Goal in Context
(Цель и контекст)
Более детальное описание цели, если это необходимо.
Например, Создать заказ от имени организации.
Scope (Границы) Корпорация (общий)|Система|Подсистема
Level (Уровень) Общая|Частная|Подфункция
Primary Actor (Основной исполнитель Роль или описание основного пользователя
Preconditions (Предусловия) Состояние, в котором система должна находится до начала варианта использования
Success End Conditions (В случае успеха) Состояние, в которое должна перейти система в случае удачного завершения варианта использования
Failed End Conditions (В случае провала) Состояние, в которое должна перейти система в случае НЕудачного завершения варианта использования
Trigger (Условие срабатывания) Действие, инициирующее запуск этого варианта использования
Main Success Scenario
(Основной сценарий)
Шаги и действия
Extensions (Дополнительные условия) Условия, под действием которых в основных шагах сценария могут возникнуть альтернативные варианты.
Sub-Variations
Альтернативы
Шаги и действия. Варианты которые не связаны с основным потоком, но могут возникнуть. Описываются для шага.
Priority (Приоритет) Критический
Response Time Время, требуемое для выполнения этого кейса
Frequency Частота использования
Channels to Primary Actor Interactive|File|Database Интерактивно/Файл/База
Data Due Расписание
Completeness Level Степень завершенности
Open Issues Зарегистрированные дефекты

КТ

Преимущество КТ-диагностики при наличии клинической картины – это  скорость постановки диагноза и более высокая чувствительность по сравнению с реальностью ПЦР-диагностики: 97,2 % против 83,3 % согласно данным небольшого китайского исследования []. Начиная с 4-5 дня заболевания можно различить так называемый симптом «матового стекла», на стадии прогрессирования такие участки консолидируются,  возникает симптом «булыжной мостовой», «обратного ореола», а в пиковая стадии – «белое легкое» []. Возникает закономерный вопрос: отличается ли картина пневмонии, вызванной именно новым коронавирусом, от заболеваний другой вирусной природы. Ответ – нет. Вирусные пневмонии, будь то аденовирус, грипп или другие респираторные вирусы, выглядят на КТ одинаково.

Однако в условиях пандемии, когда подавляющее большинство вирусных пневмоний имеют коронавирусную природу, использование КТ для диагностики становится более чем оправданным. В последней версии методических рекомендаций Минздрава по профилактике, диагностике и лечению COVID-19 указано, что «наличие клинических проявлений в сочетании с характерными изменениями в легких по данным КТ или обзорной рентгенографии органов грудной клетки вне зависимости от результатов однократного лабораторного исследования на наличие РНК SARS-CoV-2 и эпидемиологического анамнеза» является клинически подтвержденным случаем COVID-19 []. Отметим также, что объем поражения легких при РГ и КТ может не иметь прямой корреляции с клинической тяжестью заболевания. 

Создание сценария принятия решения

Тестировщик идентифицирует точки приятия решений в потоке задач пакета тестирования и создает сценарий принятия решений для каждой точки. Когда поток задач пакета тестирования разрабатывается с помощью диаграммы активности UML, сценарий принятия решения создается для каждого условия (см. упомянутую ниже статью «Modeling test suites with IBM Rational Software Modeler»).

Для реализации точки принятия решения тестировщик должен выполнить следующие действия:

  • Создать и заполнить пул данных принятия решения
  • Создать пустой сценарий принятия решения и вставить кодовый шаблон
  • Зарегистрировать точки верификации для каждого условия в решении

Прежде всего, тестировщик создает таблицу принятия решений с помощью пула данных Functional Tester. Таблица принятия решений, пример которой показан на рис. 8, также может быть сгенерирована из UML-определения пакета тестирования (см. упомянутую ниже статью «Modeling test suites with IBM Rational Software Modeler»). Сценарий принятия решений сравнивает результаты верификаций, выполняемых при тестировании AUT, с условиями, что делается для идентификации выполняемых действий тестирования (т.е. предназначенного для выполнения следующего сценария тестирования). Когда комбинация недоступна или еще не реализована, строка в пуле данных исключается и действие тестирования становится неопределенным.

Рис. 8: Пример таблицы принятия решений

Затем тестировщик создает пустой сценарий тестирования, вставляет кодовый шаблон в сценарий тестирования (как проиллюстрировано на рис. 9), и указывает название пула данных принятия решения. Тестировщик использует Functional Tester для вставки точек верификации, которые собирают информацию, необходимую таблице принятия решения.

Рис. 9: Кодовый шаблон для сценария принятия решений

Моделирование пакетов тестирования с помощью IBM Rational Software Modeler

Пакет тестирования разработан с помощью UML-диаграммы действий, в которой каждое действие соответствует действию тестирования (сценарию тестирования) и каждое решение соответствует сценарию принятия решения, как показано на рис. 10. Условия, указанные в точке принятия решения, используются для генерации соответствующей таблицы принятия решения. Диаграммы действий просты в использовании и понимании сотрудниками, не занимающимися разработкой.

Рис. 10: Реализация пакета тестирования сгенерирована на основе спецификации UML

Объектный узел со стереотипом «datastore» может быть привязан к действию тестирования для указания того, какой именно пул данных требуется для этого действия тестирования. Также имеется возможность указать структуру пула данных с помощью класса. Каждая колонка пула данных соответствует атрибуту класса. UML-анализатор генерирует все пулы данных, требуемые для выполнения пакета тестирования с помощью Functional Tester, включая таблицу драйверов, таблицы принятия решений, и структуру управляемых данными таблиц и пулов данных сценариев тестирования. Как диаграмма действий, так и диаграмма классов может быть организована с учетом элемента совместной работы, как проиллюстрировано на рис. 11. Между определением пакета тестирования и моделью прецедента могут быть созданы связи трассируемости, как проиллюстрировано на рис. 12. С помощью возможностей трансформации, предоставленных IBM Rational Software Modeler, может быть разработан еще более сложный подход.

Рис. 11: Определение пакета тестирования инкапсулировано с учетом совместной работы

Рис. 12: Связи трассируемости между пакетом тестирования и другими элементами модели

Я разработал UML-анализатор, который генерирует таблицу драйверов пакета тестирования, таблицы принятия решений и пулы данных (например, структуру для таблицы, управляемой данными, и таблицы входных данных сценария тестирования) в XML-формате. Подключаемый модуль Eclipse с контекстным меню используется для генерации таблиц пакета тестирования при выборе возможности совместной работы, как показано на рис. 13.

Рис. 13: Библиотека классов для генерации таблиц пакета тестирования из UML-определения

Все возможные альтернативы автоматически генерируются пулом данных таблицы принятия решений, как показано на рис. 14. Генерируются только действия тестирования, указанные в диаграмме действий. Новые действия тестирования, которые не указаны в диаграмме действий, могут быть добавлены в таблицу принятия решений перед выполнением импорта в проект тестирования Functional Tester.

Рис. 14: Все возможные комбинации генерируются в таблице принятия решений

Правила их составления

2. Писать нужно в едином стиле

  1. Регистрация
  2. Пополни баланс
  3. Скачать файл-образец
  1. Регистрация
  2. Пополнение баланса
  3. Скачивание файла-образца
  1. Зарегистрироваться
  2. Пополнить баланс
  3. Скачать файл-образец

3. Можно ссылаться на другие тест-кейсы

Зарегистрироваться с именем «Д`Артаньян» (см. тест-кейс «Регистрация»).

Зарегистрируйся с таким-то именем. Если не знаешь как — welcome to тест-кейс регистрации.

4. Но не доходя до маразма ツ

Предварительные шаги

  1. Зарегистрироваться (см. тест-кейс «Регистрация»).
  2. Пополнить баланс (см. тест-кейс «Пополнение баланса»).
  3. Скачать файл-образец (см. тест-кейс «Скачивание файла-образца»)

Предварительные шаги

  1. Зарегистрироваться (см. тест-кейс «Регистрация»).
  2. Пополнить баланс (см. тест-кейс «Пополнение баланса»).
  3. Скачать файл «Клиенты» (см. тест-кейс «Скачивание файла»)
  1. Скачать файл формата CSV (см. тест-кейс «Скачивание файла»)
  • Проверяет, что файл реально скачивается (а то будет big fail).
  • Проверяет, что внутри файла лежат правильные данные.

Подготовить файл формата doc с данными из файла-примера (см аттач «Пример.doc»)
Подготовить файл с разными форматами дат рождения (см аттач «Даты рождения.xls»)
Подготовить файл картинкой внутри вместо текста (см аттач «Картинка. xls»)

5. Выкидывать текст ради текста нужно

  1. Зарегистрироваться (см. тест-кейс «Регистрация»).
  1. Зарегистрироваться (см. тест-кейс «Регистрация»).
  2. Зарегистрироваться с именем Ольга и email [email protected] (см. тест-кейс «Регистрация»).

6. Предварительных шагов может и не быть — это нормально

Предварительные шаги

  1. Нажать на кнопку «Войти»

Шаги
Ввести логин такой-то, пароль сякой-то
Шаги

  1. Нажать на кнопку «Войти»
  2. Ввести логин такой-то, пароль сякой-то

Расшифровка теста IgM/IgG

Поскольку наиболее информативными при респираторных вирусных инфекциях являются иммуноглобулины М и G, то чаще всего акцент делается именно на эти антитела. Тест IgM/IgG проводится методом ИХА. Это качественный анализ, который показывает статус иммуноглобулинов M и G в крови.

В таблице 1 мы приводит результаты расшифровки такого теста. Знаками «+» и «-» обозначается наличие или отсутствие иммуноглобулина при тестировании.

Таблица 1. Расшифровка теста IgM/IgG
Ig-статус IgM (+) IgM (-)
IgG (-) С момента заражения прошло не более 3-х недель. Инфекция, скорее всего, находится в острой фазеБывают и ложноположительные результаты. В таких случаях рекомендуют сделать и ПЦР-анализ для выявления патогена Контакта с новым коронавирусом не было. Отсутствие антител класса М и G также может означать, что с момента инфицирования прошло не более 7-ми дней. При наличии подозрительных симптомов рекомендуется провести ПЦР-анализ
IgG (+) Наличие обоих типов антител указывает на то, что с момента заражения прошло от 3-х до 10-ти недель. Еще не все IgМ исчезли, но уже образуются IgG Организм давно контактировал с вирусом. Возможно, вы переболели или были бессимптомным носителем

Из всех 4-х вариантов только один (IgG (-),IgM (-)) указывает на возможное отсутствие контакта с вирусом SARS-CoV-2. Однако причины у такого результата могут быть и другие:

  • Пренебрежение правилами подготовки к анализу. Методики ИФА и ИХА отличаются высокой чувствительностью. Несоблюдение правил подготовки к такому анализу может исказить результат.
  • Отсутствие антител после болезни. В ряде случаев, когда ковид проходит в легкой форме, антитела могут не обнаруживаться.
  • Антитела к интерферону. Примерно у 10% людей с тяжелой формой COVID-19 вырабатываются антитела к интерферону. Последний представляет собой систему противовирусных белков, которые вырабатываются при инфицировании. Так вирусу SARS-CoV-2 удается обезоружить иммунную систему пациента, лишив ее интерфероновой защиты. При таких обстоятельствах иммуноглобулины к вирусным антигенам быстро исчезают.

Наконец, если у вас характерные для коронавирусной болезни симптомы, то это не всегда COVID-19. Грипп и простудные заболевания никуда не исчезли, и люди продолжают ими болеть.

Профит от подхода для тестировщика

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

  • Найти пробелы в бизнес-логике.

  • Помочь дизайнеру и разработчику разобраться в том, как будет работать фича.

  • Убедиться, что есть обработка всех возможных ошибок.

  • Проверить, что пользователь может пройти сценарий от начала до конца.

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все для ПК
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: