Рис.2 Синонимы

Иногда тестирование подразумевается как некоторая отдельная форма контроля качества.
Внешние определения

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

Это определения, которые приведены в стандарт терминологии, используемой в программной инженерии, например, в стандарт де-факто, который называется SWEBOK.
Такие определения конструктивно объясняют, ЧТО представляет из себя деятельность по тестированию, но не дают ни малейшего представления о том, для чего нужно тестирование, для чего потом будут использоваться все полученные результаты проверки соответствия между реальным поведением программы и ее ожидаемым поведением.
Итак, тестирование — это

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


Отсюда и далее будем считать это рабочим определением «тестирования» (рис.3).

Рис.3 Схема тестирования

Общая схема тестирования примерно следующая:

Тестировщик на входе получает программу и/или требования. Он с ними что-то делает, наблюдает за работой программы в определенных, искуственно созданных им ситуациях. На выходе он получает информацию о соответствиях и несоответствиях. Далее эта информация используется для того, чтобы улучшить уже существующую программу. Либо для того, чтобы изменить требования к еще только разрабатываемой программе. (источник[4]).

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

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

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

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

    Пользовательский интерфейс (UI) Программный интерфейс (API) Сетевой протокол Файловая система Состояние окружения События


Наиболее распространенные интерфейсы это

    пользовательский, графический, текстовый, консольный, и речевой.


Используя все эти интерфейсы, тестировщик:

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

Другие классификации видов тестирования
Чаще всего используется разбиение на три уровня, это

модульное тестирование, интеграционное тестирование, системное тестирование.

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

Рис.4 Виды тестирования


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

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

Классификацию по целям удобно выполнять с использованием «магического квадрата» (рис. 5), который был изначально придуман Брайаном Мариком и потом улучшен Эри Тенненом.

Рис.5 Магический квадрат

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

Обучающие игры

Первая попытка дать компьютеру геймерскую огранку произошла в 1952 году. Такая возможность появилась, когда к монитору подсоединили электроннолучевую трубку. Монитор демонстрировал состояние одной из ртутных линий задержки, которые использовались как оперативная память. И хотя патент на подобное «развлекающее устройство» был оформлен в США еще в 1948 году, к компьютеру это устройство не имело никакого отношения. И официальных свидетельств о его реализации тоже не наблюдалось. Пионером компьютерных игр стала (вполне привычная нам в виде настольной) игра «Крестики-нолики». Самые обыкновенные, с полем 3х3 клеточки. Наибольшей проблемой была не ограниченная мощность компьютеров, а ограничение машинного времени. Ведь основными сферами использования компьютеров были военная, правительственная и научная. Лишь спустя шесть лет появилась вторая известная миру компьютерная игра. И это, не смотря на стремительное усовершенствование компьютерных технологий! Игра называлась «Теннис на двоих», но помимо названия информации об игре сохранилось мало. Это была «видеоигра», и в отличие от пошаговых аналогов, где игроки могут сделать перерыв и поразмышлять, здесь приходилось действовать в реальном времени, управляя теннисистом. Игра представлялась в виде стандартного осциллографа, подключенного к аналоговому компьютеру. Прилагались также два устройства для управления. Один «опытный образец» был построен в Брукхэвенской лаборатории, США. Настоящим прорывом в мирёе компьютерных игр стала созданная в 1962 году в Массачусетском технологическом институте игра SpaceWar! Впервые именно для этой игры был разработан игровой контроллер. Впервые появляется виртуальный мир - примитивный, но не имеющий аналога в мире реальном. Игра SpaceWar! была предназначена для компьютера PDP-1, компания DEC. Поскольку компания распространяла игру вместе с компьютером в качестве тестовой программы, SpaceWar! вскоре стала популярна по всему миру, получив статус массовой игры.

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

«Эдьютейнмент» это: «представление опыта и развлечений через созидание» (Я. Ванг), «эффективный баланс между информацией, мультимедийными продуктами, психологическими приемами и современными технологиями» (Ш. Де Вари), «соединение социального заказа с развлекательным механизмом» (Р. Донован). (источник[17]).

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

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4