Тестирующие программы


Тестирование программ - процесс обнаружения ошибок в программном продукте

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

Что называют тестированием?

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

Эффективность

То, насколько хорошо и быстро находятся ошибки, существенным образом влияет на стоимость и длительность разработки программного обеспечения необходимого качества. Так, несмотря на то, что тестеры получают заработную плату в несколько раз меньшую, чем программисты, стоимость их услуг обычно достигает 30 – 40 % от стоимости всего проекта. Это происходит из-за численности личного состава, поскольку искать ошибку – это необычный и довольно трудный процесс. Но даже если программное обеспечение прошло солидное количество тестов, то нет 100 % гарантии, что ошибок не будет. Просто неизвестно, когда они проявятся. Чтобы стимулировать тестеров выбирать типы проверки, которые с большей вероятностью найдут ошибку, применяются различные средства мотивации: как моральные, так и материальные.

Подход к работе

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

Что такое тест?

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

Искусство поиска ошибок

Программы часто нацелены на работу с огромным массивом данных. Неужели его необходимо создавать полностью? Нет. Широкое распространение приобрела практика «миниатюризации» программы. В данном случае происходит разумное сокращение объема данных по сравнению с тем, что должно использоваться. Давайте рассмотрим такой пример: есть программа, в которой создаётся матрица размером 50x50. Иными словами – необходимо вручную ввести 2500 тысячи значений. Это, конечно, возможно, но займёт очень много времени. Но чтобы проверить работоспособность, программный продукт получает матрицу, размерность которой составляет 5x5. Для этого нужно будет ввести уже 25 значений. Если в данном случае наблюдается нормальная, безошибочная работа, то это значит, что всё в порядке. Хотя и здесь существуют подводные камни, которые заключаются в том, что при миниатюризации происходит ситуация, в результате которой изменения становятся неявными и временно исчезают. Также очень редко, но всё же случается и такое, что появляются новые ошибки.

Преследуемые цели

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

Проверка в различных условиях

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

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

Тестирование ПО: виды

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

Завершение тестирования

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

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

Ранее считалось, что динамический анализ разработанного ПО – это слишком тяжелый подход, который неэффективно использовать для обнаружения дефектов. Но из-за увеличения сложности и объема программ появился противоположный взгляд. Автоматическое тестирование применяется там, где самыми важными приоритетами является работоспособность и безопасность. И они должны быть при любых входных данных. В качестве примера программ, для которых целесообразным является такое тестирование, можно привести следующие: сетевые протоколы, веб-сервер, sandboxing. Мы далее рассмотрим несколько образцов, которые можно использовать для такой деятельности. Если интересуют бесплатные программы тестирования, то среди них качественные найти довольно сложно. Но существуют взломанные «пиратские» версии хорошо зарекомендовавших себя проектов, поэтому можно обратиться к их услугам.

Avalanche

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

KLEE

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

fb.ru

Тестирующие программы. — Вавилон.wiki

Тестирующие программы

[править] Информационный блок

Первоисточник

Диагностическое тестирование и его роль в развитии компьютерных изданий учебного назначения (на примере тестовых систем по русскому языку для русских школьников и иностранных студентов) Руденко-Моргун О.И. Архангельская АЛ. Шорки на Е.Н.

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

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

........

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

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

В качестве примера такого использования диагностической тесто­вой системы в данной статье рассматриваются три взаимосвязанных программных продукта: мультимедиа обучающий комплекс «1С. Ре­петитор: Русский язык» (1С, 1999) и контрольно-диагностические те­сты «1С. Репетитор: Тесты по пунктуации» (1С, 2000) и «1С. Репети­тор: Тесты по орфографии» (1С, 2001), которые могут использоваться также при обучении иностранцев-филологов, гуманитариев на про­двинутом и завершающем этапах.

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

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

Структурные особенности современного электронного мультиме­диа комплекса на примере «1С: Репетитор. Русский язык». «Учеб­ник», ядро мультимедиа комплекса, содержит теоретический материал по всем разделам школьной грамматики. Самостоятельное знакомство с теорией обеспечивается возможностью обращения через гипертек­стовые отсылки к различным видам материалов: к «Словарю лингвис­тических терминов», «Словарю примеров», «Иллюстрациям», «Ани­мациям», «Интерактивным таблицам», «Исторической справке» и т.д. Закрепление полученных знаний реализуется путем выхода из статьи в «Практикум».

«Практикум» представляет собой электронный сборник упражне­нии. Как уже говорилось выше, учащийся может выйти в него непосредственно со страницы «Учебника», чтобы проверить, как он усво­ил Материал и умеет ли он применять знания теории на практике. В «Практикум» также можно попасть, минуя теорию, через систему ме­ню «Дневника», с целью выявления пробелов в знаниях - в этом случае в статью «Учебника» можно выйти из конкретного, оказавшегося трудным для учащегося, задания. Через систему помощи «Практи­кум» имеет обратную связь с «Учебником», с комментариями и, если этого требует специфика задания, со «Словарем лингвистических терминов», «Словарем примеров», а в ряде случаев, и с разделом «Ис­торическая справка».

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

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

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

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

  • последовательно или выборочно (с помощью меню), работая с соответствующим разделом «Учебника», читая статьи и выполняя уп­ражнения, их сопровождающие;
  • обратившись к интерактивной таблице «Орфография», выбирая и открывая ячейки таблицы;

выбрав в «Интерактивном уроке» позицию меню «Вставьте и объясните пропущенные орфограммы»; работая с диктантами, представленными в «Альбоме»: вставляя пропущенные орфограммы и пользуясь правилами-комментариями;

  • активизировав пиктограмму «Совет» и обратившись к рекомен­дуемым учебным материалам по правописанию;

обратившись к орфографической части «Словаря примеров»;

  • обратившись к таким статьям «Словаря лингвистических терми­нов», как, например, «Орфограмма», «Чередование», «Дефис», с тем, что­бы потом, в случае необходимости, выйти в нужную статью «Учебника».

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

Так же обстоит дело и с выбором варианта помощи при выполне­нии задания: испытывая затруднение, учащийся может оперативно обратиться или к статье «Учебника» по теме задания, или к коммента­рию, непосредственно относящемуся к конкретной единице обраба­тываемого материала (предложению, словосочетанию, слову, букве), или сразу получить готовый ответ. Кроме того, в обучающей части курса учащийся получает возможность работать с заданиями в не­скольких режимах:

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

после этого обратиться к теории или просмотреть комментарий к тем фрагментам текста, в которых выделены ошибки;

  • в режиме самоконтроля, т.е. выполнить упражнение, но до подтверждения ответа просмотреть комментарий к тем языковым единицам, которые вызывают сомнения, затем исправить ошибки и только после этого нажать клавишу «Готово»;
  • в режиме комментария, т.е. до выполнения упражнения активи­зировать поле комментария, а затем, подводя указатель к каждой кон­трольной позиции, знакомиться с комментарием и только после этого принимать решение.

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

Гипертекстовое строение мультимедиа комплекса как саморегу­лирующая обучающая система. Гипертекстовое строение мультиме­диа комплекса, благодаря общим природным свойствам такого рода сред, представляет собой саморегулирующуюся обучающую систему. Эта система, как казалось авторам, не нуждалась в каких-либо допол­нительных способах управления действиями учащегося, так как в его распоряжении были все необходимые для обучения материалы, тесно связанные между собой гипертекстовыми отсылками, системами кон­текстуальной и общей помощи. Пути доступа к ним были достаточно разнообразны и продуманы на основе прогнозирования возможных действий ученика в зависимости от выбора им стратегии обучения: от теории к практике или от практики к теории; от синтеза к анали­зу или от анализа к синтезу.

Обучающий комплекс в течение 2 лет после выпуска проходил апро­бацию в школах разных регионов России (около двухсот школ получи­ли возможность познакомиться с ним). Наряду с положительными от­зывами были и замечания, суть которых сводилась к тому, что полная свобода навигации учащегося в обучающей среде комплекса не в полной мере отвечает задачам коррекции знаний, умений и навыков учащихся старших классов в условиях школьного обучения. Задачу целенаправ­ленного обучения, отбора материала по-прежнему приходилось брать на себя учителю, в то время как ему самому трудно было даже бегло озна­комиться со всем содержанием комплекса, который при возможности перевода в бумажную форму насчитывал бы более 5 тысячи страниц.

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

До последнего времени самым простым и распространенным спо­собом доступа к учебным материалам и организации работы с ними в определенной, заданной последовательности были системы меню -локальность методических задач не требовала большего. С развитием технологии гипертекста меню, оставаясь обязательным элементом программы, перестало быть единственно возможным способом досту­па к ее различным составляющим и перестало отражать все возмож­ные внутренние связи между компонентами комплекса и все возмож­ные пути освоения учебного материала в зависимости от индивидуаль­ных запросов пользователя. Именно на это обращали внимание многие учителя русского языка, использовавшие «1С: Репетитор. Рус­ский язык» в своей практике — им не хватало специального инструмен­та для организации контролируемой самостоятельной работы учени­ка, направленной ориентации его в обучающей среде мультимедиа комплекса, создания индивидуальных обучающих мини-программ.

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

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

Диагностический тест - новый тип теста в области дидактики.

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

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

Поставив перед собой такую задачу, мы разработали систему кон­трольно-диагностических тестов для организации работы учащегося в среде мультимедиа учебника. Она была использована в работе «1С: Репетитор. Тесты по пунктуации», затем получила развитие в элек­тронном пособии «1С: Репетитор. Тесты по орфографии» и в мульти­медиа комплексе по русскому языку для иностранцев.

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

Чем объясняется такое построение теста?

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

Как уже было сказано, второй субтест проверяет знания теории по теме. Если таковые отсутствуют, то вряд ли можно говорить о том, что учащийся ею владеет. Что делать? Прерывать тестирование и Учить правила? Но сначала нужно выяснить, может ли учащийся ос­воить данные правила, ведь вполне вероятно, что причины неуспеха лежат глубже: правило опирается на те знания, которых учащийся в силу каких-либо причин не имеет.

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

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

Отражение результатов тестирования. А теперь обратимся к очень важной части контрольно-диагностического теста - к информацион­ному экрану с результатами его выполнения. Для примера мы выбрали экран результата работы по теме «Сложноподчиненное предложение».

Работа с экраном результата начинается со знакомства с несколь­кими заранее открытыми позициями. Тестируемый может узнать, сколько времени он потратил на прохождение теста и сравнить его с рекомендуемым временем. Ниже располагается информация об об­щем количестве предложенных заданий и общем количестве допу­щенных ошибок. В специальной позиции - результаты по первым трем этапам тестирования. По первым трем этапам также выводится вербальный итоговый комментарий, дающий оценку практическим навыкам и теоретической подготовке учащегося по теме и совет обра­титься к рекомендациям (в случае, если были допущены ошибки)' Данный комментарий формируется автоматически из блоков текста, соответствующих поэтапным оценкам. Приведем комментарий, полу­ченный учащимся, выполнившим задания первых трех этапов неуд0" влетворительно: «Учащийся не обладает интуитивной пунктуацион­ной грамотностью, плохо знает правила и грамматику. Прежде чем учить правила, следует восполнить пробелы в знаниях русского язы­ка в соответствии с рекомендациями».

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

Раздел «Рекомендации» формируется на основе анализа работы пользователя по всем четырем этапам. Рекомендации даются в виде анализа ошибки и гипертекстовой отсылки в соответствующий раз­дел мультимедиа комплекса. Выйдя через отсылку в комплекс, поль­зователь может работать над нужной темой по своему усмотрению: читать статью «Учебника», выполнять упражнения к ней, знакомить­ся со всеми доступными материалами. Но при этом выход в мульти­медиа комплекс через контрольно-диагностический тест концент­рирует учащегося на решении конкретной учебной задачи - он уже не уходит в бесконечный свободный поиск как это было ранее до под­ключения к комплексу диагностических систем (что отмечали в сво­их отзывах учителя, по-разному интерпретируя это - и как достоин­ство, и как недостаток программы). Именно этот раздел контрольно-диагностических тестов можно рассматривать как узел, управляющий последующими самостоятельными учебными действиями учащегося. Безусловно, рекомендациями может пользоваться и учитель для со­ставления программы обучения, но что очень важно для компьютер­ных обучающих материалов, - основа программы дальнейшей работы составляется автоматически по результатам тестирования, доступна пользователю, руководит его действиями. Раздел «Просмотр работы. Апелляция» дает возможность озна­комиться с результатами работы по каждому заданию. Эту часть кон­трольно-диагностических тестов также можно назвать обучающей, поскольку каждая ошибка снабжена комментарием, а «Апелляция» Позволяет связаться по электронной почте с авторами комплекса. Как показывает опыт, учащиеся не пренебрегают этой возможностью: задают вопросы, опротестовывают оценки, выражают претен­зии и благодарности. За два последних года авторам были присланы десятки писем.

Компьютерное диагностическое тестирование при обучении РКИ. На основе проанализированной выше модели компьютерного диагностического тестирования, представленной в электронных посо­биях «1С: Репетитор. Тесты по пунктуации», «1С: Репетитор. Тесты по орфографии», на факультете иностранных языков и общеобразователь­ных дисциплин РУДН была разработана система контрольно-диагно­стических тестов по русскому языку как иностранному (РКИ). Необхо­димость ее создания диктовалась тем, что задача внедрения гибкой си­стемы обучения иностранному языку, удовлетворяющей потребности разных контингентов учащихся, всегда была актуальна в условиях под­готовительных факультетов российских вузов, где изучают русский язык студенты разных национальностей, с разным исходным уровнем лингвистической подготовки и способностей и, в силу объективных факторов, в разные сроки осваивающие программу, рассчитанную на десятимесячное обучение. Чтобы такая система работала эффективно, недостаточно иметь учебные материалы, учитывающие все необходи­мые характеристики, - нужны механизмы оперативного выбора инди­видуальных стратегий обучения. Мы предположили, что роль такого механизма могут выполнить диагностические тесты.

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

С достаточной долей уверенности можно предположить, что вне­дрение диагностической системы в учебный процесс позволит интен­сифицировать обучение и обеспечит его гибкость, так как в результа­те тестирования выявляются и классифицируются не только ошибки студентов-иностранцев (что уже осуществлялось в практике тестиро­вания в области РКИ), но и их причины (что является принципиаль­но новым). Разрабатывая тесты, авторы в полной мере использовали технические и интеллектуальные возможности редактора «1С: Репе­титор 2.0». Так, с его помощью, на основе прогнозирования, была осу­ществлена детальная классификация ошибок. Это обеспечило кор­ректную проверку практических навыков студентов-иностранцев (из­вестно, как трудно тестировать именно этот уровень владения языком), что, в свою очередь, привело к уточнению диагностических выводов.

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

Использование компьютерных программ в филологическом образовании

www.wikiznanie.ru

Методы тестирования программного обеспечения - Блог веб-программиста

Подробности марта 31, 2016 Просмотров: 42366

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

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

 

Что такое тестирование программного обеспечения?

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

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

 

Методика тестирования

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

 

1) Модульное тестирование

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

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

4) Приемочные испытания

 

Модульное тестирование

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

 

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

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

 

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

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

 

Приемочные испытания

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

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

 

Основные тесты

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

 

Тестирование методом черного ящика

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

 

Тестирование методом белого ящика

Тестирование методом "Белого ящика", в отличие от "черного ящика", учитывает внутреннее функционирование и логику работы кода. Для выполнения этого теста, тестер должен иметь знания кода, чтобы узнать точную часть кода, имеющую ошибки. Этот тест также известен как White-box, Open-Box или Glass box тестирование.

Подробнее о тестирование методом белого ящика

 

Тестирование методом серого ящика

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

 

Нефункциональные тесты

Тестирование безопасности

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

 

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

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

 

Тестирование на совместимость

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

 

Тестирование эффективности

Как подсказывает название, эта методика тестирования проверяет объем кода или ресурсов, которые используются программой при выполнении одной операции.

 

Юзабилити-тестирование

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

 

Тесты в процессе разработки программного обеспечения

 

Каскадная модель

Каскадная модель использует подход "сверху-вниз", независимо от того, используется ли она для разработки программного обеспечения или для тестирования.

Основными шагами, участвующими в данной методике тестирования программного обеспечения, являются:

  • Анализ потребностей
  • Тест дизайна
  • Тест реализации
  • Тестирование, отладка и проверка кода или продукта
  • Внедрение и обслуживание

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

 

Agile Model

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

 

Rapid Application Development (RAD). Методология быстрой разработки приложений

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

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

 

Спиральная модель

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

 

Rational Unified Process (RUP). Рациональный унифицированный процесс

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

 

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

Читайте также

 

 

 

juice-health.ru

Программы для тестирования. Тестовые оболочки. Редакторы тестов.

Широкое распространение в настоящее время получают инструментальные авторские системы по созданию педагогических средств: обучающих программ, электронных учебников, компьютерных тестов. Особую актуальность для преподавателей школ и вузов приобретают программы для создания компьютерных тестов - тестовые оболочки. Подобных программных средств существует множество, и программисты-разработчики готовы строить новые варианты для удовлетворения возрастающих потребностей. Однако широкое распространение этих программных средств сдерживается отсутствием простых и нетрудоемких методик составления тестовых заданий. Внедрение даст положительный результат, когда тесты, создаваемые с привлечением компьютерных технологий, были максимально просты в использовании, и не требовали специальной подготовки для работы на компьютере. Программа для тестирования в общем случае должны обладать следующими возможностями.
  1. Применения подготовленного теста не только для контроля, но и для самоконтроля знаний.
  2. Применения мультимедийных технологий при тестировании текст, анимированная графика и звуковое сопровождение.
  3. Возможность использования различных типов вопросов, в том числе и нестандартных.
  4. Возможность создания собственных форм выходных документов по результатам теста.
  5. Проведение компьютерного тестирования в сетевом варианте.
  6. Интуитивно понятный пользовательский интерфейс.
  7. Простота подготовки тестовых материалов.
  8. Хранение и анализ результатов тестирования.
В раздел сайта включены краткие описания программ для составления тестов и тестовые оболочки различных авторов.Предложенные в списке программы для создания тестов разные по функциональным возможностям и удобству составления тестов.Это небольшое количество программ для компьютерного тестирования, не исчерпывают всего многообразия программ для тестов. Сделайте свой анализ тестовых оболочек по созданию и использованию компьютерных тестов.

Каталог тестовых оболочек, редакторов тестов, программ разработки тестов и проведения тестирования

AnsTesterСайт http://ansoft.net.ru Программа для создания и проведения тестов. Программа написана для школы, подробно описывается процесс установки программ, создания тестов и проведения теста в компьютерном классе. MultiTesterСайт http://ru.romexoft.com Универсальная сетевая тестовая оболочка предназначена для подготовки и проведения тестирования знаний с возможностью наблюдать за ходом работы тестируемых в режиме реального времени. В состав системы входят: Программа преподавателя. Редактор вопросов для составления тестов. Программа учащегося. Tests2009Сайт http://tests2009.ucoz.ua Универсальная программа тестирования знаний на компьютере, которая позволяет быстро создавать тесты используя математические формулы, рисунки, форматированный текст и т.п. Программа тестирования имеет возможности полноценной работы по сети. TestBuilderСайт http://testbuilder.narod.ru Программный комплекс, предназначенный для создания и проведения автоматизированного тестирования учащихся, сотрудников фирмы и т.д. Программный комплекс состоит из трех модулей: Модуль создания теста для составления тестов (редактор тестов). Модуль проведения тестирования на основе созданного теста. Модуль для просмотра и анализа результатов тестирования. ADSoft TesterСайт http://adtester.org Пакет программ для тестирования. Возможна организация проведения тестирования в любых образовательных учреждениях. Конструктор тестов - программа для создания тестов. Позволяет создавать и редактировать тесты любой сложности. Тестер - программа для проведения тестирования. Админ панель - программа администрирования и анализ результатов тестирования. Tест 1.0Сайт http://www.leo-prog.narod.ru Программа предназначена для создания тестов. С помощью данной программы можно тестировать учащихся. Существует несколько вариантов выставления оценки. В тест можно включать текстовую, графическую информации. До 6 вариантов ответов на каждый вопрос. До 100000 вопросов в одном тесте. NetTestСайт http://kpolyakov.narod.ru Программа для составления тестов с использованием локальной сети.Состоит из двух программ: серверной и клиентской.Серверная программа позволяет создавать тесты и управлять компьютерным тестированием, Клиентская программа обеспечивает непосредственно контроль знаний. МастерТестСайт http://tvy.narod.ru Программа для создания тестов и проведения компьютерного тестирования. Возможность создавать как текстовые вопросы в тестах, так и мультимедийные (документы Word ; просто картинки типа *.bmp; видеоклипы; аудиофайлы). STSСайт http://taalgeo.narod.ru Программа обеспечивает создание тестов проведение тестирования анализ результатов тестирования. Поддерживает 5 типов вопросов. Позволяет тестировать как в локальной сети, так и без нее. TestManСайт http://rafsoft.narod.ru Программа для создания учебных тестов и проведения тестирования при индивидуальных или групповых занятиях по любым учебным дисциплинам. Достоинством программы является простота использования, создания и разработка новых тестов. SurveyorСайт http://seesoft.ru Программа, предназначенная для составления различных тестов со стандартными вариантами и типами ответов. Количество тестов не ограничено. Для запуска программы для создания тестов необходим .NET Framework 3.5. ТесТaРедактоРСайт http://alexalex.ru Программа для создания тестов и проведения тестирования. Тестовая оболочка состоит из следующих приложений: Непосредственно сама программа для тестирования. Программа для создания и редактирования тестов, редактор тестов. Экспорт вопросов теста в текстовые файлы. Создание самостоятельных тестов, представляющих из себя веб-страницы. NewТеstСайт http://newtest-vb.narod.ru Программа для тестирования Программный комплекс состоит из трёх подсистем, которые удовлетворяют основным требованиям при разработке и проведении тестирований. -подсистема создания и редактирования тестов - редактор тестов, ввода исходных данных; -подсистема проведения тестирований и оценки результатов; -подсистема контроля результатов тестирований. RichTestСайт http://maestro-kit.ucoz.ru Программа для создания тестов состоит из 3-модулей. Вопросы 3-х типов: с одним вариантом ответа, множественным выбором и вводом текста. Устанавливать стоимость вопроса отдельно для каждого вопроса. Задать режим перемешивания вопросов и вариантов ответов. Встроенный тестовый редактор для составления тестов. TTestСайт http://www.softelectro.ru Программа позволяет создавать, редактировать и проводить различные тесты и экзамены на ПК. Для каждого экзамена возможно создать 20 тем по 100 вопросов в каждой теме. В каждой теме вопросы могут быть разбиты на 10 групп. easyQuizzyСайт http://easyquizzy.ru Программа для создания и редактирования тестов знаний. Каждый тест представляет собой независимую программу, которую достаточно скопировать на любой компьютер и запустить, чтобы начать тестирование. Шёлковый тестСайт http://labfreetech.org Программа для создания тестов. Предназначена для профессионального составления тестов и проведения сетевого тестирования. Тестовая оболочка состоит из 3-х модулей: редактор тестов, тестирование, модуль отчёта. Обладает особенностью вставки изображения во все типы вопросов. Можно создать вопрос типа "Что показано на изображении". Для тестов используется база данных SQLite3 eTestСайт http://etest.ru Программный комплекс для подготовки и проведения тестов на компьютере. Состоит из двух частей: редактор тестов (рабочее место преподавателя) и программа для тестирования (рабочее место учащегося). Созданные тесты можно использовать как для проведения тестирования, так и для самостоятельного использования студентами в процессе обучения. DSG Tester ProСайт http://dsg-n.ru Инструмент создания и прохождения тестов состоит из двух частей: Редактор тестов - позволяет создавать новые тесты, а так же редактировать ранее созданные. Тестер - программа прохождения тестов. При установке программы файлы тестов ассоциируются именно с этой программой, PikaTestСайт http://kripexx.narod.ru Программа для создания и проведения двухуровневых тестов с неограниченным количеством вопросов по типу ЕГЭ. Основные функции: Добавление вопросов с вариантами ответов и без них, с указанием стоимости вопроса в баллах; Создание тестов с ограниченным временем прохождения; Проведение тестов; Просмотр статистики и сохранение подробного отчёта о тестировании. MуTestСайт http://mytest.klyaksa.net Система программ (тестирования учащихся, редактор тестов и журнал результатов) для создания и проведения компьютерного тестирования, сбора и анализа результатов, выставления оценки по указанной в тесте шкале. ЗнаниеСайт http://type-soft.ru Программный комплекс для создания тестов, проведения тестирования, контроля и оценки знаний. Позволяет автоматизировать процесс проведения тестирования и обработки результатов. Программа имеет малый вес и не требует дополнительных компонентов и внешних баз данных. KnowingСайт http://www.globalpage.ru Программа предназначена для создания тестов и организации тестирования в компьютерных классах школ, университетов и других учебных заведениях, а так же дома, для укрепления знаний в различных областях. TestYourSelfСайт http://www.alonewolfsoft.ru Программа для тестирования учащихся школ или студентов вузов. Тематика тестов определяется составителем с возможностью подключения к вопросу графического, аудио или видео файла. Тест состоит из вопроса и 4х возможных вариантов ответа - один правильный. Критерий оценки тестирования (в процентах по 5-балльной шкале). Есть возможность разрешить режим подсказок (со снижением результата или без оного), TestEditСайт http://ciocca.narod.ru Редактор тестов создает тесты в виде HTML-страниц, которые выполняются браузером. Для составления теста используется текстовый редактор блокнот. Созданный тест представляет собой набор вопросов с выбором варианта ответа из четырех возможных. Редактор тестов позволяет задать критерии выставления оценки и время, в течение которого вопрос будет выводиться на экран. Также предусмотрена возможность регистрации пользователя и сохранения результатов тестирования в отдельный файл. TestDelСайт http://gromdel.net Программа для тестирования учеников согласно пройденного школьного материала. Основные возможности: прохождение тестов, создание тестов, хранение результатов в базе, создание автоматических отчетов. Имеется база встроенных тестов для школы. Возможно тестирование в локальной сети. Комплекс программ для тестированияСайт http://kompleksprogram.narod2.ru Программа для создания тестов и проведения тестирования по различным научным категориям. Обеспечивает быструю разработку тестов, удобное проведение тестирования. Программный продукт состоит из трех программ: - программа для составления тестов ( редактор тестов ). - серверная часть программа для тестирования. - клиентская часть программа для тестов. Экзаменаторhttp://pisoft.ru Программа для тестирования, обучения и проведения экзаменов, контрольных и тестовых работ. В качестве вопроса может использоваться текст и/или графическое изображение Количество тестов и вопросов в тесте не ограничено. Состоит из двух частей: программы тестирования и программы преподавателя. Может использоваться для проведения тестирования в компьютерных классах с использованием локальной сети.    Программы для создания тестов. Готовые тесты. Компьютерное тестирование в образовании  Copyright © 2005-2017 г. Sergey Logoshny   

slmini.narod.ru

Предлагаю Вашему вниманию простую программу для составления тестов! - Полезные программы - Каталог файлов

MyTest X- система программ для создания и проведения компьютерного тестирования, сбора и анализа их результатов.

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

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

Тестирование — более справедливый метод, оно ставит всех учащихся в равные условия, как в процессе контроля, так и в процессе оценки, практически исключая субъективизм преподавателя.Следует отметить, что именно тестирование постепенно становится и основной формой сдачи экзаменов. С 2009 года для всех выпускников школ основной формой итоговой государственной аттестации в школе Российской Федерации является Единый Государственный Экзамен. И реалии таковы, что требуется обязательно вводить тестовые технологии в систему обучения. С их помощью в течение года следует оценить уровень усвоения материала учениками и формировать у них навык работы с тестовыми заданиями. Такие тренировки позволят учащимся при сдаче ЕГЭ реально повысить балл. Также во время таких тренировок развиваются соответствующие психотехнические навыки саморегулирования и самоконтроля. В связи с этим тестирование, как средство измерения и контроля знаний учеников, становится основой обучающего процесса в российской школе.Тестовые задания могут составляться с использованием разнообразных компьютерных инструментов, начиная от различных редакторов и программ для разработки презентаций и до использования языков программирования и возможностей сети Интернет. И, наверное, любой учитель информатики и ИКТ создавал для своей работы свою тестовую среду. Но разработка качественного тестового инструментария — длительный, трудоемкий и дорогостоящий процесс.Программа MyTest разрабатывается Башлаковым Александром Сергеевичем с 2003 года. За это время вышло немало совершенно разных версий.  Каждая новая версия включала в себя лучшее предыдущей версии и предлагала новые возможности. Первые версии были простыми, но удобными тестовыми оболочками, текущая же версия MyTest X - это уже не одна программа, а мощный комплекс программ для подготовки и проведения компьютерного тестирования.С помощью программы MyTest X возможна организация и проведение тестирования, экзаменов в любых образовательных учреждениях (вузы, колледжи, школы) как с целью выявить уровень знаний по любым учебным дисциплинам, так и с обучающими целями. Предприятия и организации могут осуществлять аттестацию и сертификацию своих сотрудников. MyTest X это - система программ (программа тестирования учащихся, редактор тестов и журнал результатов) для создания и проведения компьютерного тестирования, сбора и анализа результатов, выставления оценки по указанной в тесте шкале.

Программа легка и удобна в использовании. Все учителя и учащиеся быстро и легко осваивают ее. Вот слова одного из пользователей программы: «На мой взгляд, MyTest достигла совершенного состояния: имеет все мыслимые функции, очень компактная, ее возможности и простота использования находятся в золотом балансе».Программа MyTest X работает с девятью типами заданий: одиночный выбор, множественный выбор, установление порядка следования, установление соответствия, указание истинности или ложности утверждений, ручной ввод числа, ручной ввод текста, выбор места на изображении, перестановка букв. В тесте можно использовать любое количество любых типов, можно только один, можно и все сразу. В заданиях с выбором ответа (одиночный, множественный выбор, указание порядка, указание истинности) можно использовать до 10 (включительно) вариантов ответа.Программа состоит из трех модулей: Модуль тестирования (MyTestStudent), Редактор тестов (MyTestEditor) и Журнал тестирования (MyTestServer). Для создания тестов имеется очень удобный редактор тестов с дружественным интерфейсом. Любой учитель-предметник, даже владеющий компьютером на начальном уровне, может легко составить свои тесты для программы MyTest и использовать их на уроках. В программе имеются богатые возможности форматирования текста вопросов и вариантов ответа. Вы можете определить шрифт, цвет символов и фона, использовать верхний и нижний индекс, разбивать текст на абзацы и применять к ним расширенное форматирование, использовать списки, вставлять рисунки и формулы... Для большего удобства в программе имеется собственный текстовый редактор.К каждому заданию можно задать сложность (количество баллов за верный ответ), прикрепить подсказку (показ может быть за штрафные баллы) и объяснение верного ответа (выводится в случае ошибки в обучающем режиме), настроить другие параметры…В MyTest X можно использовать любую систему оценивания. Система оценки и ее настройки можно задать или изменить в редакторе теста.При наличии компьютерной сети можно, используя модуль журнала MyTest, можно легко:

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

С помощью программ MyTest X вы можете организовать как локальное так и сетевое тестирование. Делайте так как удобнее вам. Программа поддерживает несколько независимых друг от друга режимов: обучающий, штрафной, свободный и монопольный. В обучающем режиме тестируемому выводятся сообщения об его ошибках, может быть показано объяснение к заданию. В штрафном режиме за не верные ответы у тестируемого отнимаются баллы и можно пропустить задания (баллы не прибавляются и не отнимаются). В свободном режиме тестируемый может отвечать на вопросы в любой последовательности, переходить (возвращаться) к любому вопросу самостоятельно. В монопольном режиме окно программы занимает весь экран и его невозможно свернуть. При правильном отборе контрольного материала содержание теста может быть использовано не только для контроля, но и для обучения. Таким образом, позволяя испытуемому самостоятельно обнаруживать пробелы в структуре своих знаний и принимать меры для их ликвидации. В таких случаях можно говорить о значительном обучающем потенциале тестовых заданий, использование которого станет одним из эффективных направлений практической реализации принципа единства и взаимосвязи обучения и контроля.Каждый тест имеет оптимальное время тестирования, уменьшение или превышение которого снижает качественные показатели теста. Поэтому, в настройках теста, предусмотрено ограничение времени выполнения как всего теста, так и любого ответа на задание (для разных заданий можно выставить разное время). Параметры тестирования, задания, изображения к заданиям для каждого отдельного теста - все хранится в одном файле теста. Никаких баз данных, никаких лишних файлов - один тест – один файл. Файл с тестом зашифрован и сжат. MyTest X имеет хорошую степень защиты, как тестовых заданий, так и результатов. Благодаря тому, что для теста можно задать несколько различных паролей (для открытия, редактирования, тестирования), испортить (отредактировать) тест лицам не имеющим на это право становится практически не возможно, плюс ко всему, не возможно украсть ключи (правильные ответы) к тестовым заданиям. Так как результаты тестирования могут сохранятся в защищенный файл, который не возможно отредактировать, то оценки учащихся всегда объективны и не зависят от лояльности тестолога. Ввиду того, что результаты тестирования могут сохранятся как на локальном ПК, так и параллельно на ПК тестолога, вероятность потери результатов сводится к 0% . Программа продемонстрировала высокую надежность работы как в школах так и в ВУЗах России и стран ближнего зарубежья. В программе предусмотрены различные варианты защиты тестов от несанкционированного получения ответов.Программа постоянно развивается, грамотно учитывая нужды многих пользователей и при этом никого не ущемляя, то есть новые функции добавляют интересные возможности для тестирования и при этом не являются лишними для тех, кому нужны тесты попроще.Ко многим полезным функциям, которые имеются в программе для проведения компьютерного тестирования, можно ещё присоединить то, что если ученик по каким-либо причинам не может выполнять тест за ПК (например по состоянию здоровья), то буквально за 1-2 минуты можно сформировать "бумажный” вариант теста.Программа MyTest X распространяется бесплатно. Не коммерческое использование программы не требует денежных выплат. Любое образовательное учреждение, учитель и ученик могут бесплатно использовать программу на основе лицензионного соглашения без каких либо денежных отчислений. Программа работает под ОС Windows 2000, XP, Vista, 7. Для работы под Linux можно использовать Wine.Сложно сразу перечислить все возможности MyTest X, указать на все те мелочи, которые делают работу с программой легкой и удобной. Но стоит только попробовать ее в работе, создать и провести несколько тестов и она займет достойное место в списке ваших любимых программ.

Скачать программу.

Скачать банк тестов. (если архивы не открываются, сообщите мне: [email protected] или в гостевой книге)

Скачать видеоуроки по использованию программы (одним файлом)

Урок 1. Скачиваем и устанавливаем MyTestX

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

 

 

 

Урок 2. Создание и редактирование тестов в MyTestX

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

 

Урок 3. Настройка модулей Server и Student, распространение и получение тестов по сети

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

 

Урок 4. Как получить и выполнять тест

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

 

 

 

Урок 5. Дополнительные настройки и информация

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

Формат видео: .mp4

По материалам сайта www.klyaksa.net и http://subscribe.videouroki.net

psnovikov.ucoz.ru

НОУ ИНТУИТ | Лекция тестирования программ и систем

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

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

Теоретические средства определяют процесс программирования и тестирования программного продукта. К ним относятся методы верификации и доказательства правильности спецификации программ (см. "Формальные спецификации, доказательство и верификация программ" ), метрики измерения (Холстеда, цикломатичная сложность Маккейба и др.) в качестве отдельных характеристик как формализованных элементов теории определения правильности и гарантии свойств конечного ПО. Например, концепция " чистая комната " базируется на формализмах доказательства и изучения свойств процессов кодирования и тестирования программ. Что касается тестирования как процесса, то это проверка правильности работы программы по заданным описаниям тестов и покрытия данными соответствующих критериев программы [7.1-7.5].

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

При проверке правильности программ и систем рассматриваются процессы верификации, валидации и тестирования ПС, которые регламентированы в стандарте ISO/IEC 12207 [7.7] жизненного цикла ПО. В некоторой зарубежной литературе процессы верификации и тестирования отождествляются. С теоретической точки зрения верификация была рассмотрена в "Формальные спецификации, доказательство и верификация программ" , здесь же будут определены задачи и действия, соответствующих процессов ЖЦ.

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

7.1. Процессы ЖЦ верификация и валидация программ

Верификация и валидация, как методы, обеспечивают соответственно проверку и анализ правильности выполнения заданных функций и соответствия ПО требованиям заказчика, а также заданным спецификациям. Они представлены в стандартах [7.7-7.8] как самостоятельные процессы ЖЦ и используются, начиная от этапа анализа требований и кончая проверкой правильности функционирования программного кода на заключительном этапе, а именно, тестировании.

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

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

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

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

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

Процесс валидации.Цель процесса - убедиться, что специфические требования для программного продукта выполнены, и осуществляется это с помощью:

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

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

На других процессах ЖЦ выполняются дополнительные действия:

  • проверка и контроль проектных решений с помощью методик и процедур просмотра хода разработки;
  • обращение к CASE-системам [7.10], которые содержат процедуры проверки требований к продукту;
  • просмотры и инспекции промежуточных результатов на соответствие их требованиям для подтверждения того, что ПО имеет корректную реализацию требований и удовлетворяет условиям выполнения системы.

Таким образом, основные задачи процессов верификации и валидации состоят в том, чтобы проверить и подтвердить, что конечный программный продукт отвечает назначению и удовлетворяет требованиям заказчика. Эти процессы взаимосвязаны и определяются, как правило, одним общим термином "верификация и валидация" или "Verification and Validation" (V&V) [7.7].

V&V основаны на планировании их как процессов, так и проверки для наиболее критичных элементов проекта: компонент, интерфейсов (программных, технических и информационных), взаимодействий объектов (протоколов и сообщений), передач данных между компонентами и их защиты, а также оставленных тестов и тестовых процедур.

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

7.2. Тестирование программ

Тестирование можно рассматривать, как процесс семантической отладки (проверки) программы, заключающийся в исполнении последовательности различных наборов контрольных тестов, для которых заранее известен результат. Т.е. тестирование предполагает выполнение программы и получение конкретных результатов выполнения тестов [7.1-7.5, 7.11, 7.12].

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

Исторически первым видом тестирования была отладка.

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

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

7.2.1. Статические методы тестирования

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

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

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

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

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

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

7.2.2. Динамические методы тестирования

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

Динамическое тестирование ориентировано на проверку корректности ПС на множестве тестов, прогоняемых по ПС, в целях проверки и сбора данных на этапах ЖЦ и проведения измерения отдельных показателей (число отказов, сбоев) тестирования для оценки характеристик качества, указанных в требованиях, посредством выполнения системы на ЭВМ. Тестирование основывается на систематических, статистических, (вероятностных) и имитационных методах.

Дадим краткую их характеристику.

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

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

Методы "черного ящика" обеспечивают:

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

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

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

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

Метод "белого ящика" позволяет исследовать внутреннюю структуру программы, причем обнаружение всех ошибок в программе является критерием исчерпывающего тестирования маршрутов потоков (графа) передач управления, среди которых рассматриваются:

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

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

Тестирование по принципу "белого ящика" ориентировано на проверку прохождения всех путей программ посредством применения путевого и имитационного тестирования.

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

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

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

www.intuit.ru

Когда прекращать тестирование программ?

С.Трофимов

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

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

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

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

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

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

Сократить количество ошибок можно несколькими путями:

применить специальные методы и средства написания программ, например, CASE-средства Rational Rose;

применить надежные, многократно протестированные компоненты и библиотеки;

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

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

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

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

Поэтому важно определить несколько уровней достижения необходимого качества программ:

отсутствие синтаксических ошибок и аварийных остановок в программе, что достигается прогоном программы с различными данными по максимальному числу ветвей. Для определения участков, которые ни разу небыли запущены при прогоне программы, существуют специальные средства, например Rational Pure Coverage. Из практики работы я могу сделать вывод, что участок кода, который ни разу не был запущен при тестировании, примерно в 80% случаев неработоспособен;

выполняемые функции программ соответствуют технической документации;

расчетные значения, полученные при помощи процедур расчета, соответствуют эталонным.

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

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

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

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

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

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

mirznanii.com


Смотрите также