Интегративный тест тревожности. Основы BDD: Юнит, Интеграционные и End-to-End тесты

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    http://www.usatic.narod.ru

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

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

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

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

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

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

Бизнес сегодня опирается на множество программных решений: вебсайт, системы 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. Владеть спецификой проекта. Это важно для написания хороших тест-кейсов, анализа результатов прогона тестов, выбора между ручным и автоматизированным тестированием.

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

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

Педагогический тест

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

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

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

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

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

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

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

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

Главное преимущество адаптивного теста перед традиционным - эффективность. Адаптивный тест может определить уровень знаний тестируемого с помощью меньшего количества вопросов (иногда длина теста уменьшается до 60%).

В адаптивном тесте на каждый вопрос в среднем выделяется больше времени для обдумывания, чем в обычном тесте. Например, вместо 2 минут на каждый вопрос, у сдающего адаптивный тест может получиться 3 или 4 минуты (в зависимости от того, на сколько вопросов ему понадобится ответить).

Достоверность результатов адаптивного теста совпадает с достоверностью тестов фиксированной длины. Оба вида тестов одинаково точно оценивают уровень знаний.

Тем не менее, очень широко распространено мнение, что адаптивный тест более точно оценивает уровень знаний. Это неверно.

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

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

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

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

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

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

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

20.2. Организация интеграционного тестирования

20.2.1. Структурная классификация методов интеграционного тестирования

Как правило, интеграционное тестирование проводится уже по завершении модульного тестирования для всех интегрируемых модулей. Однако это далеко не всегда так. Существует несколько методов проведения интеграционного тестирования:

  • восходящее тестирование ;
  • монолитное тестирование ;
  • нисходящее тестирование .

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

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


Рис. 20.1.

Однако, у восходящего метода тестирования есть существенный недостаток - необходимость в разработке драйвера и заглушек для модульного тестирования перед проведением интеграционного тестирования и необходимость в разработке драйвера и заглушек при интеграционном тестировании части модулей системы (Рис 20.1)

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

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

Монолитное тестирование имеет ряд серьезных недостатков.

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

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

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

Перевод: Анна Радионова

Существует много видов ПО тестов. Практики BDD можно применять в любых аспектах тестирования, но BDD фреймворки используются далеко не во всех типах тестов. Поведенческие сценарии, по сути, являются функциональными тестами - они проверяют, что тестируемый продукт работает корректно. Для тестирования производительности могут использоваться инструменты, в то время как BDD фреймворки не предназначены для этих целей. Задача данной статьи, в основном, состоит в описании роли BDD автоматизации в Пирамиде Тестирования. Прочитайте статью BDD 101: Manual Testing для того, чтобы понимать как BDD применяется при ручном тестировании. (Всю информацию по BDD можно найти на странице Automation Panda BDD page)

Пирамида Тестирования

Тем не менее, BDD практики могут применяться для юнит-тестов. Каждый юнит-тест должен быть направлен на основную составляющую: один вызов, единичная вариация, определенная комбинация ввода; на поведение .В дальнейшем при разработке спецификация поведения фичи четко отделяет юнит тесты от тестов более высокого уровня. Разработчик функционала также ответственен за написание юнит-тестов, в то время как за интеграционные и end-to-end тесты несет ответственность другой инженер. Спецификация поведения является, своего рода, джентльменским соглашением о том, что юнит-тесты будут являться отдельной сущностью.

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

Тестовые BDD фреймворки наиболее ярко проявляют себя на интеграционных и end-to-end уровнях тестирования .

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

Given a user is logged into the social media site
When the user writes a new post
Then the user"s home feed displays the new post
And the all friends" home feeds display the new post

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

Длительные End-to-End тесты

Термины часто понимаются разными людьми по-разному. Когда люди говорят “end-to-end тесты,” они подразумевают продолжительные последовательные тесты: тесты, которые покрывают различное поведение продукта одно за другим . Это утверждение заставляет содрогнуться приверженцев BDD, т.к это противоречит основному правилу BDD: один сценарий, одно поведение. Конечно, с помощью BDD фреймворков можно составлять длительные end-to-end тесты, но нужно хорошо подумать, стоит ли это делать и как именно.

Существует пять основных принципов написания длительных end-to-end сценариев в BDD:

  1. Не стоит беспокоиться на этот счет . Если BDD процесс поставлен правильно, то каждое отдельное поведение уже полностью покрыто тестовыми сценариями. Каждый сценарий должен покрывать все классы эквивалентности вводимых и выводимых данных. Таким образом, длительные end-to-end сценарии будут являться, в основном, дублированием тестового покрытия. Вместо того, чтобы тратить время на разработку, лучше отказаться от автоматизации длительных end-to-end сценариев, как от тех, которые не представляют большой ценности и уделить больше времени ручному и исследовательскому тестированию .
  2. Объединить существующие сценарии в новые . Каждая When-Then пара представляет собой индивидуальное поведение. Шаги из существующих сценариев могут быть переопределены в другие сценарии и для этого потребуется лишь незначительный рефакторинг. Это нарушает хорошие практики Gherkin и может привести к появлению длительных сценариев, но это наиболее практичный способ переиспользовать шаги для обширных end-to-end сценариев. Большинство BDD фреймворков не поддерживают пошаговый порядок, а если поддерживают, то шаги должны быть переписаны, чтобы код работал. (Этот подход является наиболее практичным, но менее традиционным .)
  3. Встраивайте проверки в Given и When шаги . Данная стратегия позволяет избежать дуплицирования When-Then пар и убедиться, что проверки производятся. Корректность каждого шага проверяется на протяжении всего процесса с помощью Gherkin текста. Однако, может потребоваться ряд новых шагов.
  4. Воспринимайте последовательность поведений как уникальное отдельное поведение . Это наилучший способ обдумывания длительных end-to-end сценариев, т.к. он усиливает поведенческое мышление. Продолжительный сценарий имеет ценность только в том случае, если он расценивается как уникальное поведение. Сценарий должен быть написан с целью подчеркнуть эту уникальность. В противном случае это не тот сценарий, который стоит использовать. Такие сценарии часто являются декларативными и высокоуровневыми.
  5. Не используйте BDD фреймворки и пишите тесты исключительно с помощью средств автоматизации . Gherkin предназначен для совместной работы в отношении поведения, в то время как продолжительные end-to-end тесты решают проблемы интенсивности работы QA. Бизнес может предоставить поведенческие спецификации, но никогда не станет писать end-to-end тесты. Переписывание поведенческих спецификаций в длинные end-to-end сценарии может блокировать разработку. Гораздо лучшим решением является сосуществование: приемочные тесты могут быть написаны при помощи Gherkin, а продолжительные end-to-end тесты - средствами программирования. Для автоматизации обоих наборов тестов можно использовать одну и ту же базу кода, у них могут быть единые модули поддержки и даже методы определения шагов.

Выберите подход, наиболее подходящий вашей команде.