Главная » Просмотр файлов » Лекция 2. Основные задачи и виды тестирования

Лекция 2. Основные задачи и виды тестирования (1186161), страница 2

Файл №1186161 Лекция 2. Основные задачи и виды тестирования (Лекции) 2 страницаЛекция 2. Основные задачи и виды тестирования (1186161) страница 22020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

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

Ведь приэтом нужно не только создавать определенные условия (что иногда трудно, например, втребованиях к системе могут быть определены специфические ограничения на ее работупри очень низких температурах или высоком уровне радиации), но иногда имоделировать различные сценарии их изменения, которые, однако, должны бытьреалистичны — годятся не произвольные сценарии, а те, что могут случиться на самомделе. Например, температура в комнате обычного здания не может меняться за 10секунд от -100°C до +100°C, а, скажем, температура элемента внешней облочкиискусственного спутника вполне может иногда так себя вести.

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

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

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

Чаще всегопри разработке тестов приходится заодно уточнять требования к тестируемой системе идорабатывать представляющие их документы, делая их более ясными и полными, а такжеустраняя имеющиеся противоречия.Для построения систематичных и корректных тестов нужно адекватное пониманиетребований, то есть понимание того, что именно они означают, что из этого может бытьпроверено и, наконец, что именно должно быть проверено в каждой конкретной тестовойситуации.Рассмотрим, например, функцию abs(x), вычисляющую абсолютную величину числа.Вроде бы ясно, что при этом вычисляется — должен возвращаться x, если он неотрицателен,или –x иначе.

На языках C, С++, Java или C# это может быть передано так: ( x >=0 )? x : -x.Можно, например, проверять, что abs(x) >= 0 для любого x.Попробуем взять x = –2147483648, например, в Java. Каков будет результат?Правильный ответ: –2147483648.Этот неожиданный результат — отрицательное число в качестве абсолютной величины— объясняется тем, что в машинной арифметике 32-битных целых чисел выполненосоотношение –(–2147483648) = –2147483648. Приведенное выше определение abs(x) остаетсяправильным, неверно только заключение о том, что abs(x) >= 0.Чтобы объяснить полученное «странное» соотношение, надо понимать, чемруководствовались создатели целочисленной машинной арифметики. Им нужно было целыечисла, которых бесконечно много, представить в машине как некоторое конечное множество.При этом, однако, надо сохранить основополагающие свойства арифметических действий —сложения, вычитания и умножения. Наиболее похожими на целые числа конечнымимножествами с таким набором операций являются множества (кольца) классов целых чиселпо какому-то модулю, например Z2 = {[0], [1]}, где [0] — класс четных чисел, а [1] — класснечетных, или Z3 = {[0], [1], [2]}, где [n] — класс чисел, имеющих остаток n при делении на3.

Поскольку в машине удобно представлять числа в двоичной записи, для эффективногорасхода памяти стоит взять модуль равным степени 2, например 232. То есть, машинноечисло n будет обозначать класс чисел, равных n по модулю 232. Если к тому же хочется,чтобы действия с небольшими числами приводили к привычным результатам: 2+2 = 4, а 3–5= –2, в качестве представителей классов чисел по модулю 232 должны использоватьсянебольшие положительные и отрицательные числа.

Таким образом, в качествепредставителей удобно выбрать числа 0, 1, –1, 2, –2, 3, –3, 4, –4 и т.д. Но, поскольку всего ихдолжно быть 232, для некоторого числа n, мы в итоге выберем n, но не выберем –n илинаоборот — ведь для 0 в этой последовательности уже нет соответствующегоотрицательного числа. Соответственно, конец ее выглядит как 2147483647, –2147483647,–2147483648 = –231. По причинам, связанным с эффективностью и простотой реализацииопераций, проще выбрать –231, чем 231 — при этом можно использовать первый битпредставления числа в значении его знака, а все вычисления производить побитно, по тем жепричинам не стоит вводить специальное число –0, что, например, сделано в арифметикечисел с плавающей точкой.

По модулю 232 выполнено –[–231] = [231] = [232–231] = [–231], что исоответствует выписанному выше соотношению.Другой пример. Как ведет себя tg(arctg(x)) при возрастающем x, которое является числом сплавающей точкой двойной точности? При x <= 1016 все идет как ожидается: tg(arctg(x)) = x снебольшой погрешностью, а вот дальше, как бы ни было велико x, tg(arctg(x)) дает один итот же результат 1.633123935319537⋅1016. Для объяснения этого нужно знать, как устроенычисла с плавающей точкой, что служащее для представления π/2 число с плавающей точкойдвойной точности X = 884279719003555/562949953421312 меньше π/2 примерно на6.1232339957367658⋅10–17, и что получаемый результат является как раз значением tg(X) ≈1/(π/2 – X), вычисленным с двойной точностью.Двоичное число с плавающей точкой имеет следующую структуру [2,3].•Число представлено в виде набора из n бит, из которых первый бит является знаковымбитом числа, следующие k бит представляют его порядок E, а оставшиеся (n-k-1) битпредставляют его мантиссу M.•Знаковый бит S, порядок E и мантисса M числа x определяют его значение последующим правилам.x = (-1)S·2e·m, гдеo S — знаковый бит, равный 0 для положительных чисел, и 1 для отрицательных;o если 0 < E < 2k-1, то e = E-2(k-1)+1;иначе, если E = 0, e = -2(k-1)+2;число b = (2(k-1)-1) называется смещением порядка (exponent bias);o если 0 < E < 2k-1, то m = 1+M/2n-k-1.

Иначе говоря, m имеет двоичноепредставление 1.M, т.е. целая часть m равна 1, а последовательность цифр дробнойчасти совпадает с последовательностью бит M;если же E = 0, то m = M/2n-k-1, или m имеет двоичное представление 0.M.Числа с нулевой экспонентой называются денормализованными, а все остальные— нормализованными.•Максимальное возможное значение порядка E = 2k-1 зарезервировано дляпредставленияисключительныхчисел:положительнойиотрицательнойбесконечностей, +∞ и -∞, а также специального значения NaN (not-a-number, нечисло).

NaN используется, если результат выполняемых действий нельзя корректнопредставить ни обычным числом, ни бесконечностью, как, например, результаты 0/0или (-∞) + (+∞).+∞ имеет нулевой знаковый бит, максимальный порядок и нулевую мантиссу; -∞отличается только единичным знаковым битом.Любое число, имеющее максимальный порядок и ненулевую мантиссу, считаетсяпредставлением NaN.•Стандарты IEEE 754 и IEEE 854 определяют несколько возможных типов чисел сплавающей точкой, из которых чаще всего используются числа однократнойточности (single precision), числа двойной точности (double precision) и числарасширенной двойной точности (double-extended precision).Для чисел однократной точности n = 32 и k = 8. Соответственно, для мантиссыиспользуется 23 бита и смещение порядка равно 127.Для чисел двойной точности n = 64 и k = 11.

Для мантиссы используется 52 бита исмещение порядка равно 1023.Для чисел расширенной двойной точности определенные значения k и n нефиксируются в стандартах, вводятся лишь ограничения 128 ≥ n ≥ 80 и k ≥ 15. Впроцессорах 32-битной архитектуры Intel n = 80 и k = 15. При этом для мантиссыиспользуется 64 бита и смещение порядка равно 16383.Кроме этого, иногда используются числа четырехкратной точности, для которых n= 128 и k = 15.

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

Тип файла
PDF-файл
Размер
245,99 Kb
Материал
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее