Алгоритм создания теста с помощью программы excel

Есть определенная функциональная область приложения: некая экспертная система, анализирующая состояние данных, и выдающая результат — множество рекомендаций на базе набора правил. Компоненты системы покрыты определенным набором юнит-тестов, но основная «магия» заключается в выполнении правил. Набор правил определен заказчиком на стадии проекта, конфигурация выполнена.
Более того, поскольку после первоначальной приемки (это было долго и сложно — потому, что “вручную») в правила экспертной системы регулярно вносятся изменения по требованию заказчика. При этом, очевидно, неплохо — бы проводить регрессионное тестирование системы, чтобы убедиться, что остальные правила все еще работают корректно и никаких побочных эффектов последние изменения не внесли.

Основная сложность заключается даже не в подготовке сценариев — они есть, а в их выполнении. При выполнении сценариев “вручную», примерно 99% времени и усилий уходит на подготовку тестовых данных в приложении. Время исполнения правил экспертной системой и последующего анализа выдаваемого результата — незначительно по сравнению с подготовительной частью. Сложность выполнения тестов, как известно, серьезный негативный фактор, порождающий недоверие со стороны заказчика, и влияющий на развитие системы («Изменишь что-то, а потом тестировать еще прийдется… Ну его. »).

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

Под катом будет рассказано об одном подходе, реализующим данную идею — с использованием MS Excel, XML и XSLT преобразований.

Тест — это прежде всего данные

А где проще всего готовить данные, особенно неподготовленному пользователю? В таблицах. Значит, прежде всего — в MS Excel.

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

Читайте также:
Как поставить пароль на запуск программы

Итак, постановка задачи

  • обеспечить подготовку данных в MS Excel. Формат должен быть разумным с точки зрения удобства подготовки данных, простым для дальнейшей обработки, доступным для передачи бизнес пользователям (последнее — это факультативно, для начала — сделаем инструмент для себя);
  • принять подготовленные данные и преобразовать их в код теста.

Решение

Пара дополнительных вводных:

  • Конкретный формат представления данных в Excel пока не ясен и, видимо, будет немного меняться в поисках оптимального представления;
  • Код тестового скрипта может со временем меняться (отладка, исправление дефектов, оптимизация).

Известная технология превращения данных в произвольное текстовое представление — шаблонизаторы, и XSLT преобразования, в частности — гибко, просто, удобно, расширяемо. В качестве дополнительного бонуса, использование преобразований открывает путь как к генерации самих тестов (не важно на каком языке программирования), так и к генерации тестовой документации.

Итак, архитектура решения:

  1. Преобразовать данные из Excel в XML определённого формата
  2. Преобразовать XML с помощью XSLT в финальный код тестового скрипта на произвольном языке программирования

Этап 1. Ведение данных в Excel

Здесь, честно говоря, я ограничился ведением данных в виде табличных блоков. Фрагмент файла — на картинке.

image

Этап 2. Excel -> XML

Преобразование данных с листов Excel в XML — несложная задача. Преобразование производится с помощью кода на VBA. Тут могут быть варианты, но мне так показалось проще и быстрее всего.

Ниже приведу лишь несколько соображений — как сделать финальный инструмент удобнее в поддержке и использовании.

    Код представлен в виде Excel add-in (.xlam) — для упрощения поддержки кода, когда количество файлов с тестовыми данными более 1 и эти файлы создаются/поддерживаются более чем одним человеком. Кроме того — это соответствует подходу разделения кода и данных;

Фрагмент XML который получается из данных в Excel с картинки выше

Field TechName1 Business Name 1 Field TechName2 Business Name 2 Field TechName3 Business Name 3 A 123 2016-01-01 B 456 2016-01-01

Этап 3. XML -> Code

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

    Начальная итерация начинается по элементам, представляющим листы (различные тестовые сценарии). Здесь можно размещать блоки setup / teardown, утилит;

Финальный комментарий

Через какое-то время файлов с тестовыми данными станет много, а отладка и «полировка» шаблонов генерации тестовых скриптов будет все продолжаться. Поэтому, прийдется предусмотреть возможность «массовой» генерации автотестов из набора исходных Excel файлов.

Читайте также:
Программа извлечения звука из видео

Заключение

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

В нашем проекте удалось довольно быстро создать набор тестовых сценариев для интеграционного тестирования сложной функциональной области — всего на данный момент около 60 файлов, генерируемых примерно в 180 тестовых классов tSQLt (фреймворк для тестирования логики на стороне MS SQL Server). В планах — использовать подход для расширения тестирования этой и других функциональных областей проекта.

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

Код VBA для преобразования Excel файлов в XML и запуска преобразования (вместе с примером Excel и XML) можно взять на GitHub github.com/serhit/TestDataGenerator.

Преобразование XSLT не включено в репозиторий, поскольку оно генерит код для конкретной задачи — у вас все равно будет свой. Буду рад комментариям и pull request’ам.

Happy testing!

  • Тестирование IT-систем
  • XML
  • XSLT
  • Visual Basic for Applications

Источник: habr.com

лабы / Excel / Создание_теста_(Excel)[1]

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

Наш тест будет достаточно прост. Его темой будут загадки. Будут предложены 10 загадок с тремя вариантами ответа на каждую. Для ответа нужно выбрать номер варианта правильного ответа. После того, как тест будет пройден (что не обязательно) и на вопрос “Вы закончили тестирование?” будет дан утвердительный ответ, по результатам тестирования будет выставлена оценка.

Создание интерактивного теста в ms Excel 2010

1. Запустите табличный процессор Microsoft Excel: Пуск – Все программы – Microsoft Office – Microsoft Office Excel.

2. Составление вопросов: на 1-ом листе вверху оставьте строку для названия.

Ниже создайте список вопросов (можно в таблице, тогда границы ячеек выделите): столбец А – номера вопросов, столбец В – формулировка вопроса.

В столбце С нужно указать варианты ответов, для этого:

· Выделить ячейку, в которой будут ответы (в столбце С, в строке, где написан вопрос)

· Выберите Данные – Проверка данных – тип данных – список.

В поле Источник через «;» без пробелов указать все варианты ответов.

Нажать ОК, и около ячейки, где должны быть ответы, появится «закладка» с треугольником, нажав на который в столбик будут показаны введенные ответы (см. рис. ниже).

Читайте также:
Латина программа бальных танцев список

3. Интерактивная проверка правильности ответов.

Для проверки ответов в столбце Е в строке вопроса прописываем формулу (Формула – Логические – ЕСЛИ).

В открывшейся вкладке «Аргументы функции» вписываем:

БУДЬТЕ ПРЕДЕЛЬНО ВНИМАТЕЛЬНЫ. НЕТОЧНОЕ НАПИСАНИЕ ФОРМУЛЫНЕ ДАСТ ВОЗМОЖНОСТИ ПРОВЕРИТЬ ОТВЕТ.

В ПЕРВОЙ СТРОКЕ ПИШЕМ:

Лист1 (указывается номер листа, на котором делаем тест) !C2 (ставим восклицательный знак и указываем номер ячейки – ОБЯЗАТЕЛЬНО ЛАТИНСКОЙ БУКВОЙ — ПЕРЕВЕДИТЕ КЛАВИАТУРУ В ЛАТИНСКУЮ РАСКЛАДКУ, ПОТОМ ВЕРНИТЕСЬ В РУССКУЮ или ЩЕЛКНИТЕ МЫШКОЙ ПО НОМЕРУ ЯЧЕЙКИ, ГДЕ РАЗМЕЩЕНЫОТВЕТЫ) =«2.Москва» (обязательно вариант ответа пишем в кавычках и так, как указали в данных).

Во второй строке в кавычках пишем слово «ВЕРНО », ниже в третьей «НЕВЕРНО »

Если при заполнении ячейка С2 была пустой, то нажав ОК на вкладку аргументов, в ячейке С2 появится слово «Неверно»

В ячейке С2 выбираем слово «Ростов», с ячейке Е2 появляется слово «неверно», выбираем в ответах слово «Москва» и высвечивается «верно»

4. По аналогии составляем следующие вопросы.

5. Чтобы ученик мог сам оценить ответ на весь тест, прописываем на листе инструкцию и условие получения оценки: например, если из 10 ответов один неправильный, это «5», два неправильных – «4» и т.д.

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

· Выделите ячейки теста с ответами

· Выберите: Главная – Формат – Ячейки – Формат ячеек – уберите галочку Защищаемая ячейка, оставьте галочку напротив Скрыть формулы — ОК

· Вкладка Рецензирование – Защитить лист — проставьте галочки напротив тех действий, которые можно выполнять с листом, введите пароль. Повторите пароль.

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

7. Оформите тест: в верхней части листа введите название (Вставка – WordArt), если требуется, пропишите правила заполнения. Отформатируйте размер букв, при желании вставьте иллюстрации, картинки, цветные заголовки, фон и т.д. (Вставка – Рисунок/Картинка…). Выделив вопросы и ответы в таблицу (Главная – Все границы), уберите сетку (Разметка страницы – Сетка – Вид).

8. Проверьте работоспособность теста (Файл – Сохранить как…).

Сохраните тест для работы с учащимися – удалите правильный вариант из строк с ответами, оставьте ячейку пустой.

См. ниже пример теста по информатике

Источник: poisk-ru.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru