Тестов возможны такие способы как

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

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

Основная классификация тестовых заданий — задания:

  • закрытого типа (когда ученику предстоит выбрать из готовых вариантов ответа);
  • открытого типа (когда ученик сам находит ответ и вписывает в бланк).

Задания закрытого типа, в свою очередь, делятся на:

  • тесты, в которых можно выбрать один вариант ответа (множественный выбор; radio-кнопка). Ответ засчитывается, если ученик выбрал его правильно. Варианты:
    • простой выбор — один ответ из 4-5;
    • простой выбор из множества — один ответ из 6-15;
    • выбор наиболее точного ответа из представленных.

  • тесты, в которых можно выбрать несколько вариантов ответа — поставить галочки, но правильным может быть как один, так и несколько вариантов ответа (альтернативный выбор, checkbox). Ответ за тест может засчитывается только если все ответы даны правильно (нет ни лишних, ни недостающих) или начисляется балл за каждый правильный ответ и вычитается балл за каждый неправильный ответ. Варианты:
    • сложный выбор — двух и более правильных ответов из 4-5;
    • сложный выбор из множества — двух и более правильных ответов из 6-15.
  • установить соответствие (слева и справа даются связанные понятия, например, слова в предложении, родовые и видовые понятия и др.). Ученику нужно провести линии соответствия, на компьютере перетащить блоки и установить друг с другом и т.п. Сюда же можно отнести задания на сортировку и классификацию. Варианты соответствия между:
    • понятиями и определениями;
    • текстом и изображением;
    • списком авторов и цитатами;
    • датами и событиями;
    • списком понятий и их характеристиками;
    • и др.
  • определить последовательности (ученику предлагается ряд понятий, дат, слов, которые ему предстоит установить в правильной последовательности). Варианты:
    • установление хронологической последовательности событий;
    • установление логической последовательности;
    • расстановка чисел по возрастанию / убыванию;ъ
  • альтернативный ответ (ученику предлагается установить Да-Нет или Правда-Ложь по каждому приведенному утверждению).

Задания открытого типа:

  • вписать небольшую фразу, слово или символы — как дополнение к контексту. Например, вставить пропущенную букву, знаки препинания, пропущенное слово и т.д.;
  • свободное изложение — ученику выделяется место для свободного изложения ответа на вопрос. Место может быть ограничено по количеству символов, например, не более 100 или 500 символов, 10 слов и т.п.

Когда и какие варианты заданий использовать?

Характеристики

Задания закрытой формы

Дополнение

Установление соответствия

Установление последовательности

Проверка знания фактов

Применение знаний по образцу

Применение знаний в нестандартных ситуациях

Угадывание

Исключено

Объективность оценки

Исключение описок

Таблица М.Б. Челышковой.

Как группировать задания тестов

Существует три подхода к группировке тестовых заданий:

  • все задания выводятся случайным образом — для хорошо использовать программы тестирования или онлайн-сервисы тестирования;
  • задания выводятся в порядке усложнения — сначала простые, потом сложные. Это позволит ученикам быстро продвинутся вперед, а не «сидеть» со сложным заданием в начале тестирования, потратив все отведенное на тест время. В порядке усложнения даются задания ЕГЭ;
  • задания группируются по типу или теме — таким образом, ученик может приспособится к типу задания, а не настраиваться на каждый тип задания, затрачивая время.

Правила составления тестов

  • Тестовое задание должно быть сформулировано четко, понятно и должно толковаться однозначно. Если вопрос сформулирован таким образом, что не все ученики могут его понять однозначно, формулировку нужно изменить. Пример: Фирма, предоставляющая сетевые услуги – это. Ученик задаст вопрос: что такое «сетевые услуги? Услуги доступа в интернет? Фирма сетевого маркетинга типа Avon или что-то еще?
  • Тестовое задание должно быть сформулировано кратко, желательно без использования сложноподчиненных предложений, лишних причастных и деепричастных оборотов, вводных слов. Лучше разбить задание на несколько небольших предложений. Если в задании много «который», «где», «чем», много запятых, его будет трудно понять, а значит, и решить. Не бойтесь разбивать предложения на части.
  • Задание должно быть сформулировано без повторов, двойного отрицания (не – не), а лучше и вовсе избегать отрицания. Пример: Программа Paint не является программой для работы с электронными таблицами. Варианты ответов: Да-Нет. Ученику будет трудно ответить на этот вопрос, т.к. и в задании, и в ответе есть отрицание.
  • Не стоит писать в вопросе слова типа: «сформулируйте», «укажите», «сообщите», если это и так предполагается самим вопросом. Например: Напишите, как звали первооткрывателя Америки? Слово «напишите» лишнее.
  • Проверяйте и формулировки заданий, и формулировки ответов, чтобы в них не было подсказок для ученика. Следите, чтобы в одном задании не было подсказки по ответу на другое задание.
  • В заданиях не должно быть явно неподходящих ответов, увидев которые ученик сразу вычислит правильный ответ. Все ответы должны быть примерно одинаковыми и по содержанию, и по объему.
  • Повторяющиеся фразы в каждом варианте ответа нужно включить в текст вопроса.
Читайте также:  Способ сокращения трансакционных издержек

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

  • В задании главное слово (ключевое понятие) лучше сделать началом предложения. Лучше не начинать формулировку задания с предлогов или союзов. Пример: На какую группу стран приходится наименьшая доля в мировом ВВП и экспорте товаров. Правильно: Наименьшая доля в мировом ВВП приходится на…
  • В тестовом задании должно быть достаточное количество вариантов ответов:
    • закрытые типы вопросов — 4-6 вариантов ответов;
    • установить соответствие — 4-5 вариантов ответов;
    • расставить последовательность — 4-8 вариантов ответов;
  • Желательно сопровождать задания и варианты ответов иллюстрациями, схемами, таблицами и т.д.
  • В тесте должно быть достаточно много заданий, а также заданий разного уровня сложности, чтобы результаты тестирования были максимально объективными и надежными. Также это поможет исключить утомление ученика.
  • В тесте желательно чередовать различные виды заданий, а также избегать большого числа простых заданий (Да-Нет и др.) для повышения объективности теста.
  • Крайне нежелательно включать в тест задания и вопросы-ловушки, провокационные вопросы — это не профессионально и понижает доверие учащихся к тесту, преподавателю и тестированию в принципе.
  • Избегайте вопросов, на которые можно ответить на основе эрудиции или логического размышления, поскольку задача теста — не проверить начитанность и умение размышлять, а проверить специальные знания у конкретного ученика, знания учебного материала.
  • Исключайте вопросы на знание текстов (если это не требуется специально), справочной информации, мелких деталей и проч.

Источник

Способы тестирования программного обеспечения

Всем привет! Уже на следующей неделе мы запускаем новый поток по курсу «Автоматизация веб-тестирования». Этому и будет посвящен сегодняшний материал.

В этой статье рассматриваются различные способы тестирования программного обеспечения, такие как модульное тестирование (unit testing), интеграционное тестирование (integration testing), функциональное тестирование (functional testing), приемочное тестирование (acceptance testing) и т.д.

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

Тестирование: ручное или автоматизированное?

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

Читайте также:  Патиссоны холодным способом рецепт

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

Автоматизированные тесты – это ключевой компонент непрерывной интеграции (Continuous Integration) и непрерывной доставки (continuous delivery), а также хороший способ масштабировать ваш QA процесс во время добавления нового функционала для вашего приложения. Однако в ручном тестировании все равно есть своя ценность. Поэтому в статье мы обязательно поговорим об исследовательском тестировании (exploratory testing).

Различные типы тестов

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

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

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

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

Сквозные тесты (End-to-end tests)

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

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

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

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

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

Дымовое тестирование (Smoke testing)

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

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

Читайте также:  При защите все способы хороши

Как автоматизировать тесты

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

Для автоматизации тестирования, вам для начала придется написать их на каком-то из языков программирования с использованием фреймворка для тестирования, который подойдет для вашего приложения. PHPUnit , Mocha, RSpec – это примеры фреймворков для тестирования, которые вы можете использовать для PHP, Javascript и Ruby, соответственно. В них есть множество возможностей для каждого языка, поэтому вам стоит немного позаниматься исследованием самостоятельно и проконсультироваться с сообществами разработчиков, чтобы понять, какой фреймворк подойдет вам лучше всего.

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

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

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

Вопрос заключается в том, надо ли вообще в таком случае проводить ручное тестирование? Короткий ответ – да, и оно должно быть сфокусировано на том, что называется «исследовательское тестирование» (exploratory testing), которое помогает выявить неочевидные ошибки.

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

Заметка о тестировании

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

И, наконец, тесты – это тоже код! Так что не забывайте о них во время code review, поскольку они могут быть последним этапом перед выпуском продукта на потребительский рынок.

По устоявшейся традиции ждем ваши комментарии и приглашаем всех на день открытых дверей, который уже 18 марта проведет наш преподаватель — ведущий автоматизатор в тестировании в Group-IB — Михаил Самойлов.

Источник

Оцените статью
Разные способы