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

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

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

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

Для облегчения работы, экономии времени и людских ресурсов проводят автоматизацию тестовых сценариев для дымового тестирования. Для автоматизации тестовых сценариев дымового тестирования необходимо использовать такой же язык программирования, какой используется при разработке системы с целью экономии времени и средств для интеграции автоматизированных тестов в систему. В случае с BPMS ELMA (система управления бизнес-процессами ELMA) этим языком программирования является C#.

Автоматизированные тесты для данной системы разрабатывают, как правило, с помощью Microsoft Visual Studio или в редакторе сценариев дизайнера ELMA.

Система управления бизнес-процессами ELMA

Дизайнер ELMA позволит визуально смоделировать бизнес-процесс, направленный на автоматический запуск необходимых тестов, с начальной формой, которая позволит выбирать те тесты, которые необходимо выполнить, а также позволит визуально отразить результаты в сводном отчете в виде таблицы, в котором будут указаны наименования тестов, их результат, ошибки и комментарии к этим ошибкам.

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

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

Преимуществама модели в поставленной задаче:

  • Разработка функционирующего прототипа или демоверсии в короткие сроки;
  • Возможность уточнения требований после каждой версии;
  • Постепенная реализация функционала посредством добавления новых тестов;
  • Из-за отсутствия конкретных сроков реализации окончательной версии программного обеспечения всегда имеется готовая версия автоматизированных тестов;
  • Использование каскадной модели в каждом секторе спиральной модели позволяет полностью завершить этап без прерывания процесса, результат которого будет гарантирован.

Процесс разработки будет разбит на четыре сектора:

  1. Оценка и разрешение рисков
  2. Определение целей
  3. Разработка и тестирование
  4. Планирование

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