Интегрированное тестирование. В чем разница между интеграционным тестированием и функциональным тестированием? Стратегия проведения интеграционного тестирования a1qa

100 р бонус за первый заказ

Выберите тип работы Дипломная работа Курсовая работа Реферат Магистерская диссертация Отчёт по практике Статья Доклад Рецензия Контрольная работа Монография Решение задач Бизнес-план Ответы на вопросы Творческая работа Эссе Чертёж Сочинения Перевод Презентации Набор текста Другое Повышение уникальности текста Кандидатская диссертация Лабораторная работа Помощь on-line

Узнать цену

В статье третьей (УШ № 32) говорилось о традиционных тестах. Там же приводились определения гомогенных и гетерогенных тестов. В сегодняшней статье - материал о нетрадиционных тестах, к которым можно отнести тесты интегративные, адаптивные, многоступенчатые и так называемые критериально-ориентированные тесты.

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

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

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

Лекция является второй из трех рассматривающих уровни процесса верификации. Тема данной лекции - процесс интеграционного тестирования, его задачи и цели. Рассматриваются организационные аспекты интеграционного тестирования - структурная и временная классификации методов интеграционного тестирования, планирование интеграционного тестирования. Цель данной лекции: дать представление о процессе интеграционного тестирования, его технической и организационной составляющих

Задачи и цели интеграционного тестирования

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

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

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

Синицын С.В., Налютин Н.Ю. Верификация программного обеспечения

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

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

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

Интеграционное тестирование редко попадает в заголовки статей из раздела «Информационные технологии». Масштаб ошибок интеграции не сравнится по степени критичности и по размеру понесенных убытков с ошибками безопасности.

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

Однако важность интеграционного тестирования недооценивать нельзя. Грамотное интеграционное тестирование – один из основных шагов на пути к выпуску надежного продукта.

Что же это за тестирование и как оно проводится?

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

Бизнес сегодня опирается на множество программных решений: вебсайт, системы ERP, CRM, CMS. От интеграции всех систем зависит качество обработки запросов пользователей, скорость предоставления услуг и успешность бизнеса в целом.

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

Интеграционное тестирование: обзор проекта

Заказчик

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

Задача проекта

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

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

  • CMS-решение eZ Publish. Функция – предоставлять любые данные о подписках с применением различных фильтров: типа подписки, ее продолжительности, применяемых скидок, бонусов и так далее.
  • Вебсайт, через который пользователь взаимодействует с системой.
  • CRM Salesforce. Функция – хранение данных о пользователях и приобретенных ими подписках. Дополнительная надстройка позволяет команде заказчика управлять приобретенными подписками, а также создавать новые и проверять старые подписки.
  • SaaS-решение Zuora для выставления счетов и обработки платежей.
  • Обмен данными между системами осуществляется с помощью сервисной шины Mule ESB.
  • База данных как инструмент Business Intelligence.
  • Salesforce Marketing Cloud – инструмент рассылки корреспонденции и коммуникации с пользователями.
  • Drupal ранее использовался вместо eZ Publish. На данный момент все еще остается системой, хранящей данные о зарегистрированных пользователях, и инструментом для публикации статей, видео- и аудио-контента.

Процесс оформления подписки был построен следующим образом:

  1. Подготовка набора данных, создание подписки.
  2. Предоставление пользователю возможности приобретения подписки после внесения персональных и платежных данных.
  3. Обработка заказа третьей стороной, предоставляющей свои услуги клиенту в данной сфере.

Цель клиента

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

Задача тестирования

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

Важно было проверить, как они взаимодействуют между собой, и ответить на вопрос: способна ли вся система решать требуемые задачи?

Стратегия проведения интеграционного тестирования a1qa

  1. Определены ключевые бизнес-процессы, которые должна выполнять система: создание, отмена, приостановка и возобновление подписки, изменение платежной информации для подписки и т.д.
  2. Разработана тестовая документация с учетом всех возможных вариаций. Вариации – различные альтернативные выполнения операций (например, отмена подписки может произойти по желанию заказчика, а может быть произведена автоматически, если платежные данные были отклонены банком), а также различные параметры (например, тип продукта). В документации требовалось учесть проверку того, например, что создание подписки пройдет успешно для всех продуктов в рамках каждого бизнес-процесса.
  3. Проведение тестирования, которое заключалось в пошаговом прохождении каждого бизнес-процесса со стартового компонента (где он был инициирован) через все промежуточные и до финального (или финальных) с проверкой того, что все данные передаются правильно, а ожидаемые события на самом деле случаются.

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

На проведение тестирования интеграции было потрачено порядка 40% всех трудозатрат QA-команды.

Трудности

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

Поясним. Изначально требования выглядели как набор пользовательских историй (User Story) в JIRA и содержали только заголовки без какого-либо пояснения. Создавали их чаще всего разработчики.

Команда a1qa инициировала изменения в подходе написания требований: теперь для них обязательно добавляются описания и Acceptance Criteria, создаются промежуточные задачи с четким определением, кто и за что отвечает.

Автоматизация интеграционного тестирования

Автоматизация тестирования – непростой вопрос, который требует внимательного сопоставления всех «за» и «против».

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

А при оформлении подписки далеко не всегда так происходит: данные обновляются регулярно и хаотично. Поэтому тестирование проводилось преимущественно вручную.
Лишь на поздних стадиях проекта была внедрена автоматизация. Какие же тест-кейсы были автоматизированы? Были отобраны ключевые бизнес-процессы. Для каждого бизнес-процесса были прописаны вариации его прохождения. Автоматизированы были те тест-кейсы, которые покрывали регулярные и стабильные бизнес-процессы. Тем самым, автоматизация обеспечила максимальное покрытие при оптимальных затратах усилий.

Результаты

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

Подводя итоги

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

Для проведения эффективного тестирования, обнаружения всех дефектов и недочетов команда по тестированию должна:

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

Как заказать интеграционное тестирование?

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

РАЗВИТИЕ ТЕСТОВОЙ ТЕХНОЛОГИИ КОНТРОЛЯ УРОВНЯ ОБУЧЕННОСТИ СТУДЕНТОВ.

Белоногова Наталья Николаевна, преподаватель математики ГБОУ СПО МО « Московский областной гуманитарный колледж»

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

Раньше тесты применялись в двух основных сферах: в образовании и в сфере профотбора-профориентации. Затронутые тестами столь важные сферы жизни и прямое влияние результатов тестового контроля на судьбы миллионов людей породили широкую гамму мнений в пользу и против тестов. Большой энтузиазм тех, кто их применял, и не меньший пессимизм тех, кто видел несовершенство этого метода или пострадал в результате его неправильного использования, привели к тому, что одни видели в тестовом контроле средство принижения роли педагога, воспринимали тесты как средство выражения недоверия к традиционно выставляемым оценкам и потому проявляли определенную настороженность, и только немногие рассматривали их как средство радикального преобразования учебного процесса в сторону его объективизации - и становились энтузиастами этого метода.

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

Слово "тест" вызывает у людей самые различные представления. Одни полагают, что это вопросы или задачи с одним готовым ответом, который надо угадать. Другие считают тест формой игры или забавы. Третьи пытаются истолковать это как перевод с английского слова "test", (проба, испытание, проверка). В наши дни существует много видов тестов, поэтому дать универсальное определение для всех этих видов вряд ли можно.

Существуют два основных класса тестов: традиционные и нетрадиционные.

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

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

К традиционным тестам относятся тесты гомогенные и гетерогенные .

Гомогенные тесты

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

Легко видеть, что в своей основе определение гомогенного теста совпадает с определением традиционного теста.

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

Гетерогенные тесты

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

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

Интегративные тесты

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

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

Адаптивные тесты

Адаптивный тест работает, как хороший экзаменатор. Сначала он "задает" вопрос средней сложности, и полученный ответ немедленно оценивается. Если ответ правильный, то оценка возможностей тестируемого повышается. В этом случае задается более сложный вопрос. При успешном ответе следующее задание ПК подбирает более трудным, при неуспешном - легким.

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

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

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

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

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

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

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

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

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

К преимуществам тестовой технологии контроля относятся:

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

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

    Возможность сочетания ее с другими традиционными формами педагогического контроля.

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

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

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

    Возможность проведения традиционного ("бумажного") и компьютеризованного (в локальной сети) тестирования.

    Возможность применения современной технологии компьютерно-адаптивного тестирования.

    Возможность массового широкомасштабного стандартизованного тестирования путем распечатки и тиражирования параллельных форм (вариантов) теста и доставки его в различные учебные заведения.

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

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

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

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

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

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

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

    Высокая критериальная (текущая) валидность итоговых аттестационных тестов.

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

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

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

    Возможность учета при тестировании региональных особенностей ГОС СПО.

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

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

СПИСОК ИСПОЛЬЗОВАННЫХИСТОЧНИКОВ

    Ж.Н. Зайцева, В.И. Солдатин Информатизация образования: состояние проблемы и перспективы М.; ИЦПКПС, 1998, 38с.

    Христовский С.А. Методические основы проектирования электронного учебника, Проектирование образовательных информационных ресурсов, систем и технологий. Сб. докладов и сообщений.- М., ИЦПКПС, 1998, 75с.

    Аванесов В.С. "Научные основы тестового контроля знаний". М. Иссл. центр, 1994 .

    http://www.usatic.narod.ru

1 ВАЛИДНОСТЬ означает пригодность тестовых результатов для той цели, ради чего проводилось тестирование.

Из институтского курса по технологиям программирования я вынес следующую классификацию видов тестирования (критерий - степень изолированности кода). Тестирование бывает:

  • Блочное (Unit testing) - тестирование одного модуля в изоляции.
  • Интеграционное (Integration Testing) - тестирование группы взаимодействующих модулей.
  • Системное (System Testing) - тестирование системы в целом.
Классификация хорошая и понятная. Однако на практике выясняется, что у каждого вида тестирования есть свои особенности. И если их не учитывать, тестирование станивится обременительным и им не занимаются в должной мере. Здесь я собрал подходы к реальному применению различных видов тестирования. А поскольку я пишу на.NET, ссылки будут на соответствующие библиотеки.

Блочное тестирование

Блочное (модульное, unit testing) тестирование наиболее понятное для программиста. Фактически это тестирование методов какого-то класса программы в изоляции от остальной программы.

Не всякий класс легко покрыть unit тестами. При проектировании нужно учитывать возможность тестируемости и зависимости класса делать явными. Чтобы гарантировать тестируемость можно применять TDD методологию , которая предписывает сначала писать тест, а потом код реализации тестируемого метода. Тогда архитектура получается тестируемой. Распутывание зависимостей можно осуществить с помощью Dependency Injection . Тогда каждой зависимости явно сопоставляется интерфейс и явно определяется как инжектируется зависимость - в конструктор, в свойство или в метод.

Для осуществления unit тестирования существуют специальные фреймворки. Например, NUnit или тестовый фреймфорк из Visual Studio 2008. Для возможности тестирования классов в изоляции существуют специальные Mock фреймворки. Например, Rhino Mocks . Они позволяют по интерфейсам автоматически создавать заглушки для классов-зависимостей, задавая у них требуемое поведение.

По unit тестированию написано много статей. Мне очень нравится MSDN статья Write Maintainable Unit Tests That Will Save You Time And Tears , в которой хорошо и понятно рассказывается как создавать тесты, поддерживать которые со временем не становится обременительно.

Интеграционное тестирование

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

Если к нему подходить как к unit-тестированию, у которого в тестах зависимости не заменяются mock-объектами, то получаем проблемы. Для хорошего покрытия нужно написать много тестов, так как количество возможных сочетаний взаимодействующих компонент - это полиномиальная зависимость. Кроме того, unit-тесты тестируют как именно осуществляется взаимодействие (см. тестирование методом белого ящика). Из-за этого после рефакторинга, когда какое-то взаимодействие оказалось выделенным в новый класс, тесты рушатся. Нужно применять менее инвазивный метод.

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

Хорошая статья по интеграционному тестированию мне попалась лишь однажды - Scenario Driven Tests . Прочтя ее и книгу Ayende по DSL DSLs in Boo, Domain-Specific Languages in .NET у меня появилась идея как все-таки устроить интеграционное тестирование.

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

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

1) Допустим в присланных документах есть несколько разделов. Тогда в спецификации мы можем указать, что у разбираемого документа должны быть разделы с указанными именами:

$SectionNames = Введение, Текст статьи, Заключение, Литература

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

$IsCoverable = true

Понятно, что для проверки подобных спецификаций потребуется движок, который бы считывал спецификации и проверял их соответствие поведению программы. Я такой движок написал и остался доволен данным подходом. Скоро выложу движок в Open Source. (UPD: Выложил)

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

Системное тестирование

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

Первый подход - это использовать вариацию MVC паттерна - Passive View (вот еще хорошая статья по вариациям MVC паттерна) и формализовать взаимодействие пользователя с GUI в коде. Тогда системное тестирование сводится к тестированию Presenter классов, а также логики переходов между View. Но тут есть нюанс. Если тестировать Presenter классы в контексте системного тестирования, то необходимо как можно меньше зависимостей подменять mock объектами. И тут появляется проблема инициализации и приведения программы в нужное для начала тестирования состояние. В упомянутой выше статье Scenario Driven Tests об этом говорится подробнее.

Второй подход - использовать специальные инструменты для записи действий пользователя. То есть в итоге запускается сама программа, но щелканье по кнопкам осуществляется автоматически. Для.NET примером такого инструмента является White библиотека . Поддерживаются WinForms, WPF и еще несколько GUI платформ. Правило такое - на каждый use case пишется по скрипту, который описывает действия пользователя. Если все use case покрыты и тесты проходят, то можно сдавать систему заказчику. Акт сдачи-приемки должен подписать.



Последние материалы раздела:

Развитие критического мышления: технологии и методики
Развитие критического мышления: технологии и методики

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

Онлайн обучение профессии Программист 1С
Онлайн обучение профессии Программист 1С

В современном мире цифровых технологий профессия программиста остается одной из самых востребованных и перспективных. Особенно высок спрос на...

Пробный ЕГЭ по русскому языку
Пробный ЕГЭ по русскому языку

Здравствуйте! Уточните, пожалуйста, как верно оформлять подобные предложения с оборотом «Как пишет...» (двоеточие/запятая, кавычки/без,...