• Как тестить асинхронного многоголового дракона?

    yeg
    @yeg
    Если оборудование позволяет, можно на каждое событие (набрал, посигналил, сделал грустное лицо) класть в лог запись соответствующего вида, и потом шерстить логи скриптом на предмет правильной последовательности событий.
    Ответ написан
  • Как тестить асинхронного многоголового дракона?

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

    1. В идеале — написать подробные сценарии использования (Use Case) для регулярной проверки правильной работы бизнес-логики.
    2. Описать каждый интерфейс, который там есть.
    3. Для каждого интерфейса понаписать заглушек, которые возвращают правильные значения, но ничего не делают.
    4. Протестировать интерфейсы каждого компонента отдельно с помощью заглушек.
    5. Протестировать каждый workflow по сценариям использования. Где есть временные лакуны — можно поставить искусственные задержки, лучше случайные, но чтобы из значение писалось в логи.
    6. Написать автоматические тесты для всех интерфейсов и для прогона сценариев, если это возможно, и запускать после каждой доработки. Курить логи.
    7. Проводить творческое тестирование на тему «как бы его еще обрушить»?
    Ответ написан