SlideShare a Scribd company logo
1 of 54
Download to read offline
Введение в тестирование
программного обеспечения
ЕСЛИ ВЫ ЧТО-НИБУДЬ МОЖЕТЕ УЗНАТЬ ИЗ ЭТОГО,
ТО ЭТО - ПРОВЕРИТЬ СВОЙ КОД ТАК, КАК БУДТО ЖИЗНЬ ЗАВИСИТ ОТ НЕГО.
Программное обеспечение проникло во
все аспекты нашей жизни
Беспилотный грузовик
 грузовик Freightliner Inspiration компании Daimler получил разрешение на перевозки
по дорогам общего пользования штата Невада
Неисправности программного
обеспечения
Мы разрабатываем программы, которые
содержат дефекты
• Сколько? Какие?
Трудно предсказать будущее, однако ... Это
весьма вероятно, что программное
обеспечение будет развиваться в будущем не
будет значительно лучше.
Что такое компьютерный "баг“ ?
 В 1947 году в Гарвардском университете
работал компьютер под названием Mark II.
Этот компьютер занимал целую комнату.
 механические реле для реализации как 50 регистров с плавающей
запятой, так и для арифметического устройства
 светящиеся вакуумные трубки
 техники программирования компьютера с помощью изменения
конфигурации
Жук (bug), забравшись в Harvard Mark II, привел к ошибкам при
проведении операций с плавающей точкой.
Запись в лабораторном журнале гласила:
«Сегодня обнаружен первый настоящий баг».
Bugs также известны, как ...
 ошибки
 заблуждение
 проблема
 инцидент
 аномалия
 дисперсия
 дефект
 отказ
 несоответствие
 погрешность
 огреха
 особенность
программы :-)
Ariane 5 – Европейское космическое
агенство
 4 июня 1996 года, полет Ариан-5
закончился отказом.
 Лишь около 40 секунд после стартовой
последовательности, на высоте 3700 м,
носитель свернул с траектории полета,
распалася и взорвался
Ариан-5 - Основная причина
Ariane 5 Полет 501 Отказ,
Доклад по расследованию причин:
программный сегмент для преобразования числа с плавающей запятой в знаковое
16-битное целое было выполнено со значением входных данных вне диапазона
представления 16-разрядного целого числа.
Эта ошибка во время выполнения (выход из диапазона, переполнение), которая
возникла в обоих (активном и резервном) компьютерах примерно в то же время, не
была обнаружена и оба компьютера отключились.
Это привело к полной потере управления ориентацией. Ариан-5 оказался
бесконтрольным и аэродинамические силы свернули его с пути.
Этот разрыв был обнаружен бортовым монитором, который воспламенил
взрывчатку, предназначенную для уничтожения носителя в воздухе при
некорректном поведении.
Mariner 1 (1962 г.) : Ошибка в коде для
космической программы
 Код был написан на Фортране и имел ошибку:
DO 3 I = 1.10 вместо ... DO 3 I = 1,10
 компилятор воспринял это как допустимое
выражение, поскольку в ФОРТРАНе (DO3I = 1.10 )
Другой вариант:
 Математик написал на бумаге формулу с "NOT-R", т.е.
букву R с чертой над ней;
 программист не заметил черту, и использовал "R"
вместо "NOT-R".
Проблемы военной авиации
 F-18 разбился из-за пропущенного условия else в блоке If...
then ... поэтому не было возможности перехода.
 В симуляции F-16 программаная ошибка
пыталась перевернуть виртуальный
самолет всякий раз, когда он пересекал
экватор. Это происходило из-за
пропущенного минуса для указания
южной широты.
Therac-25: Фатальная радиация
 В 1986 году человек в Техасе получил от
16,500- 25000 рад в менее чем 10 сек, на
площади около 1 см(вместо 180 рад,)
 Он потерял левую руку, и умер от
осложнений 5 месяцев спустя.
 Терак-25 – аппарат для лучевой терапии (онкология).
 В 1985-87 гг. 6 человек получили смертельную дозу облучения
(количество пациентов, также подвергшихся переоблучению, но
выживших, точно не известно).
Therac-25: Ошибки
Была разработана специальная мультизадачная ОС реального времени для
компьютера PDP-11/23 с 32Kбайт и написанная на языке ассемблера
 Неправильная синхронизация процессов
 Если в пределах 8 сек. курсор покидает командную строку и - после быстрого
редактирования параметров - успевает вернуться на нее, то Keyboard Handler этого
события просто не заметит,.
 дозиметр давал показания в "условных единицах"
 Программная блокировка
 Во время установки и подгонки параметров подпрограмма Set Up Test вызывается
несколько сотен раз. Проверка - переменная F$mal равна 0 . Иначе цикл повторяется.
 Эта переменная – однобайтовая : каждый 256-й проход она сбрасываться в ноль. А
ведь этот ноль - свидетельство, что все параметры, наконец, установлены.
Авария в энергосистеме в США и
Канаде (2003)
Около 10 млн человек в
Канаде (примерно треть
населения)
40 млн человек в США
Денежный ущерб
составил 6 миллиардов
долларов.
Авария в энергосистеме в США и Канаде (Причины )
 В Кливленде, Огайо не подстригли деревья под проводами.
 Линии электропередачи в Кливленде нагрелись, провисли и коснулись
деревьев. Произошло короткое замыкание.
 Электростанция в Кливленде вышла из строя.
 Из-за ошибки в компьютерной системе и нехватки персонала, другие
центры управления не были извещены.
 Произошло цепное отключение около 100 других электростанций.
баг в программе, отвечающей за систему оповещения
 Две части системы «соревновались» за один ресурс и не могли разрешить
конфликт (ошибка проектирования под названием «состояние гонки»), из-за
этого система оповещения не сработала.
 остановка системы оповещения была «тихой». Не было произведено никаких
звуковых или визуальных оповещений.
Происшествие на авианосце USS
Yorktown
 21 сентября 1997 года движущая система USS Yorktown
полностью остановилась, оставив авианосец
беспомощным в воде на 3 часа, когда один из членов
экипажа корабля ввѐл ноль в бортовую систему
управления базами данных, а система попыталась
произвести операцию деления на ноль. Программное
обеспечение было установлено в ходе проекта по
использованию компьютеров для уменьшения
необходимого количества людей в экипажах некоторых
кораблей.
ЦРУ дает Советам газа (1982)
 миллионы долларов, значительный ущерб для
советской экономики
 Из-за сбоя в работе программного обеспечения,
контролирующего транспортировку газа по
магистральному трубопроводу, произошло резкое,
скачкообразное повышение давления в Транссибирском
газопроводе, в результате чего произошел крупнейший
техногенный неядерный взрыв в истории нашей
планеты.
 Этот сбой относится к разряду запрограммированных - по одной из версий агенты ЦРУ
намеренно внесли изменения в исходники канадского программно-технического
комплекса, приобретенного Советским Союзом для того, чтобы управлять своими
газопроводами. Приобретение было частью стратегического плана СССР по хищению
или получению доступа к секретным технологиям США. Когда ЦРУ получило
информацию об этой покупке, в качестве контрмер оно приступило к программному
саботажу,
Обвал на Уолл-стрит (1987)
 Всего за один день,"Черный понедельник" (19 октября 1987 года), котировки Dow Jones упали на 508
пунктов, потеряв 22,6% своей стоимости. Фондовый индекс S&P 500 упал на 20,4%(500 млрд долларов ).
Это были самые большие потери за всю историю Уолл-стрит, которые произошли в течение одного дня.
 к октябрю 1987 года многие инвесторы решили выйти из игры, чтобы спокойно подождать прихода более
стабильных времен и условий ведения бизнеса,
 биржевые игроки стремились избавиться от акций и облигаций. Это породило панику на бирже.
 Поскольку инвесторы обратились в массовое бегство, компьютерная программа биржевой торговли
начала генерировать поток ордеров на продажу, рынок зашатался и... рухнул,
 последовал сбой системы, который сделал инвесторов
слепыми, фактически в эти часы они не могли что-либо
контролировать и влиять на ситуацию, они не знали что
они продают и по какой цене.
Патриот не защищает своих солдат (1991)
 25 февраля 1991 года, во время первой войны
в Персидском заливе американской системе
противоракетной обороны Patriot,
установленной в Саудовской Аравии, не
удалось перехватить атаку иракских ракет
Скад (Scud). Ракетами были уничтожены
армейские казармы и солдаты, которые в них
находились во время атаки.
 28 солдат погибли, 100 получили ранения
Патриот не защищает своих
солдат (1991)
 Ошибка программного обеспечения, из-за некорректного округления (при
переводе десятых долей секунды в секунды) было неправильно рассчитано
время, в результате чего система Patriot просто проигнорировала
приближающиеся ракеты Scud. Погрешность составила всего около 0,34
секунды, но за это время ракета преодолевает расстояние в полкилометра.
Ошибка операции деления у Pentium (1993)
 чип процессора Intel Pentium периодически допускал незначительные
ошибки при делении чисел с плавающей точкой в пределах
определенного диапазона.
 Например, деление 4195835.0/3145727.0 давало результат 1,33374
вместо 1,33382, (погрешность 0,006%.)
 реальные неудобства от ошибка испытали лишь несколько
пользователей
 Из 5 миллионов дефектных чипов, находящихся в обращении, Intel
первоначально предложила заменить чипы Pentium только тем
потребителям, которые смогли бы доказать, что им действительно
необходима такая высокая точность вычислений. В конце концов, Intel
заменила чипы для всех, кто обратился с жалобой.
 Потери: 475 млн долларов и престиж компании Intel.
 floating-point unit (FPU), математический сопроцессор. использовались
специальные таблицы деления, которые и хранились в математическом
сопроцессоре, и в которых просто недоставало около пяти тысяч записей
Y2K (1999)
 Потери: 500 млрд долларов.
 Для экономии памяти компьютера, программное обеспечение часто
сохраняло год в формате даты-времени в виде двух цифр, например
"99" вместо "1999".
 Поэтому при пересечении векового порога программа вполне могла
интерпретировать "00" как исторические "1900", а не современные
"2000".
 Поэтому, когда 2000 год все-таки наступил, многие серьезно
опасались, что результат перевода стрелок компьютерных часов
будет поистине катастрофическим. Компьютерного апокалипсиса не
произошло только потому, что на устранение ошибки было потрачено
достаточное количество средств.
Последствия плохого качества
 Standish Group обследовала 350 компаний, более 8000 проектов в
1994 году
 31% отменена до завершения, 9-16% были прерваны из-за стоимости
и бюджета
 исследование в США (1995): 81 млрд долларов США тратят в год на
проекты по разработке программного обеспечения
 исследование Национальный институт стандартов и технологий NIST
(2002): ошибки стоят $ 59.5 млрд. в год. Раннее обнаружение может
сохранить $ 22 млрд.
Тестирование
Определения и Цели
Определение Тестов
Тестирование программного обеспечения:
 Методы выполнения программы с целью нахождения так
много дефектов как возможно и / или получения
достаточной уверенности в тестируемой программе (или
системе)
"Программа тестирования может показать наличие ошибок, но
никогда не докажет их отсутствие "(Дейкстра)
Базовые определения тестирования
 Ошибки: Люди совершают ошибки
 Неисправность: Неисправность - это результат ошибки в
программном обеспечении, документация, коде и т.д.
 Отказ: Отказ происходит, когда срабатывает неисправность
 Многие люди используют вышеперечисленные три термина
заменяя один другим. Этого следует избегать
 Аварии: последствия отказов - появление Отказ может или не может
быть очевидным для пользователя
 Цепочка зависимости основных понятий надежности
Мотивации
 Независимо от того, как строги мы,
программное обеспечение будет иметь
неисправности
 Тестирование представляет собой функцию
ограниченных ресурсов на разработку
программного обеспечения и время выхода
на рынок
 Невозможно проверить в отпущенное время
все варианты, возможные при эксплуатации -
на основе неполного тестирования, мы
должны быть достаточно уверены, что
система имеет желаемое поведение
 Тестирование больших систем является
комплексным - это требует стратегию и
соответствующую технологию и часто
неэффективно на практике
Обзор процесса тестирования
тестирование
 Эффективность показывает количество ненайденных
багов.
 Помогает локализовать неисправность для дебаггинга.
 Повторяемость позволяет понять как неисправность
может быть проверена.
 Автоматизация также уменьшет стоимость и время
тестирования.
 Систематический настолько, чтобы быть предсказуемым
в плане его влияния на надежность
Процесс тестирования
 Процесс тестирования программного обеспечения
 Является средством, в котором тестовые деятельности, люди,
методы и инструменты обьединяются для проверки продукта
 Тестовая деятельность - это задачи, необходимые для
тестирования программного продукта
 Люди - это тест-менеджеры, руководители и тестеровщики,
отвечающие за выполнение тестов
 Инструменты - аппаратные средства или программное
обеспечение, используемое для автоматизации всех или части
ручных тестов деятельности
Качество и эффективность тестирования программного обеспечения,
прежде всего, определяется качеством процесса испытаний используется.
- [Тестирование в реальном мире, Эдвард комплект]
Тестовая деятельность
 Тестирование как деятельность может быть
сгруппировано в:
 Подготовка испытания
 Планирование испытаний
 Дизайн и разработка тестов
 Выполнение теста и управления дефектами
 Подведение итогов тестов
планирование производстворазработкаисследование
завершениеразработкапланирование
исполнение
Выполнение тестов
• Основные виды деятельности:
– Запуск тестов
– Исследование, протоколирование и проверка
дефектов
– Монитор выполнения тестов
– Продолжить создание автоматизации
Phases
Выполнение теста является основным видом деятельности обнаружение дефектов
Unit & Integration
Testing System Testing
BAT* Regression Testing Progressive Testing
System Testing
Cycle 1 Cycle 2
Test Cycle
* Build Acceptance Test
Build / Eng.
Relelase
Build / Eng.
Relelase
Люди
 Процесс тестирования является профессиональной
дисциплиной, требующей подготовленных,
квалифицированных людей
 Тестирование - это не работа начального уровня
 Хорошие тестеры должны
Иметь мироощущение тестировщика
 Обучиться процессу тестирования
 Не принимать ничего на веру
 Уметь работать в команде
Process
Мироощущение тестировщика
 Охота на ошибки
 Фокус на поиск ошибок
 Получить личное удовлетворение
 Быть творчески разрушительным
 Использовать воображение, настойчивость, чтобы
систематически находить дефекты
 Преследовать ошибки, а не людей
 Не нападайте на разработчика, который сделал ошибку
People
Обучение
 Некоторые ключевые навыки инженеров-тестировщиков
 Планирование тестов
 Использование инструментов тестирования
 Выполнение тестов
 Протоколирование дефектов
 Анализ риска
 Контрольные измерения
 Проэктирование тестов
 Построение тестового окружения
 Знание технологий тестирования
 Потребности конечного пользователя и рабочей среды
People
Создание прочных отношений
 Развивать следующие характеристики
 достоверность
 Разработка технических знаний
 Положительный настрой
 Не злорадствовать, не хныкать, не показывать превосходство
 Целесообразность
 Не чувствовать виноватым, легко адаптироваться
 Надежность
 Быть ответственным за обеспечение последовательную, качественную
поддержку
В эффективном проекте, тестеры и разработчики дополняют друг друга, каждый из которых
обеспечивает перспективы и навыки, которые другим может не хватать
People
Инструменты
 Инструменты автоматизируют некоторые
виды тестирования
 Чтобы успешно использовать инструменты,
вы должны
 Иметь четкое определение процесса
 быть обучены пользоваться инструментами
 Должна быть доступна поддержка
 Есть достаточно времени в расписании для
развертывания инструмента
Инструменты не решение, но часть решения
Tools
Intel Confidential
Выбор инструментов
 Интеграция
 Должен поддерживать ваш процесс
 Должен поддерживать использование других инструментов
 Понимание и подготовка
 Какое обучение требуется?
 Удобно ли пользоваться инструментом?
 Общая стоимость
 Стоимость лицензии или покупки
 Установка
 Техническое обслуживание и поддержка
Tools
Базовые методы тестирования
Два основных типа тестирования:
 Тестирование методом черного ящика (black box)
 Тестирование методом белого ящика (white box)
Method
Black-box Testing
 Тесты основаны на том, что должна делать система (требования к
продукции)
 Требуется четкие и полные спецификации, но не нужны внутренние
знания о системе
 Это наиболее распространенный тип тестирования в SW
промышленности
Method
Недостатки:
Невозможно проверить функции, которые были реализованы, но не
описаны в спецификации
Невозможно проверить внутреннее функционирование системы
White-box Testing
 Стратегия тестов основана на знании реализации системы
 Тесты основаны на знании внутренней разработки и реализации
 Требуется от тестера детальное знание системы
Method
Func()
{
a=1;
}
Недостатки:
Невозможно тестировать возможности программы, которые не были описаны
в реализации
Тестировщик должет иметь знания о коде не меньше разработчика
Что лучше?
 Black-box testing!
Потому что знание внутренних кодов вызывает
предвзятое мнение еще до тестирования
 White-box testing!
Потому что углубленное знание системы также дает
знание слабых мест
Результат: ни Black Box,ни White Box!
Базовые методы тестирования
 Типичное использование для Black-box/White-box
 Black-box тестирование находит дефекты в
высокоуровневых тестах (характеристики)
 White-Box тестирование находит дефекты в
низкоуровневых тестах (код)
Method
Тесты по степени изолированности компонентов
Уровни тестирования - это разбиения процесса
выполнения тестов на несколько последовательных
уровней
Levels
Разработка системы
Модуль
Модульное
тестирование
Интеграционное
тестирование
Системное
тестирование
Dev Dev Test
Модульное тестирование проверяет каждый
компонент системы отдельно от других
 Цель - выполнить все операторы, ветви и основные пути
программы
 Обнаружить и устранить ошибки на ранних стадиях проекта
(недорого)
 Обычно используется метод тестирования White-box
 Требуется выделить время в общем графике для модульного
тестирования
 Требуется заглушки и драйверов для отдельных модулей
 Обычно делается разработчиками
 Ошибки, как правило, не учитываются для конечного продукта
Модульное тестирование
Правильно разработанные модульные тесты потенциально способны
обнаруживать 70% дефектов в программе [Тайер и Lipow]
Level
Интеграционное тестирование
Используется комбинации white-box и black-box методов тестирования
Level
Интеграционное тестирование - это тестирование
интерфейсов между компонентами
 Цель - проверить, что новые части работают в составе системы так, как
спроектированно
 Обнаруживает и устраняет ошибки в API, и плохое взаимодействие между
функциями.
 Два типа методов интеграции:
 интеграция большого взрыва : все компоненты были объединены сразу
 инкрементальная интеграция: компоненты добавляются в восходящем или
нисходящем порядке
 интеграция большого взрыва является менее эффективным
 Тяжело определить причины ошибок
 Выполняется коллективом разработчиков, тестировщиков, или группой
интеграции
 Ошибки иногда протоколируются
Системное тестирование
Системное тестирование производится на
полностью собранной системе
 Цель - проверить, что она отвечает требованиям пользователей
 Чаще всего - метод Black-box
 Находит различия между текущим и желаемым поведением
системы
 Тестирование сосредоточены на факторах, таких как
функциональность, производительность, совместимость, удобство
использования
 Обычно выполняется коллективом тестиривщиков
 Ошибки, как правило, протоколируются
"Если вы не написали требования для вашего продукта, или
если ваши требования не поддаются измерению, то вы не
можете выполнить проверку системы" [Майерс]
Level
По объекту тестирования
 Функциональное тестирование
 Обнаруживает расхождения между функциональной
спецификации программы и ее фактическим поведением
 Требуются четко определенные требования
 Тестирование производительности
 Определяет разницу между реальной производительностью
системы и желаемой при пиковых и нормальных условиях
 Требуются характеристики производительности, которые трудно
составить
Types
Типы тестирования
 Тестирование на совместимость
 Тест на совместимость, взаимодействие, совместное
функционирование
 Дорогое и трудоемкое тестирование
 Тестирование надежности
 Проверяется надежность и доступность пока система
работает с типичной нагрузкой
 Включает в себя работу системы в течение длительного
времени
 Это не проверяется непосредственно. Эти задачи
оцениваются путем измерения времени до сбоя
Types
Типы тестирования
 Нагрузка / Стресс-тестирование
 Определяет условия пиковой нагрузки, при которой система
падает ("тест на провал")
 Оценка пиковой нагрузки производится для ключевых
эксплуатационных параметров, в том числе
 Объем транзакций
 Операционная / пользовательская нагрузка
 Активность файловой системы
 Уровень ошибок
 Сетевой трафик
Types
Примечание: эти тесты могут потребовать сложных конфигураций
Типы тестирования
 Исследовательское тестирование
 Одновременно процесс исследования продукта, разработки
тестов и выполнения тестирования
 Полезно как дополнение к другим видам тестов
 Регрессивное тестирование
 Тесты проверяют влияние последних изменений на ранее
протестированный код
 Включает повторное выполнение всех или выбранных тестов
"Вероятность при изменении ввести новые дефекты случайно в
существующую систему высокая (от 20% до 50%)." [Росс Коллар]
Types
Основные методы тестирования
 Есть бесконечное число тестов
 Чтобы быть эффективным, тестеровщики должны выбрать те
испытания, которые быстрее всего найдут дефекты
 Некоторые методы, используемые дла этого:
 Класс эквивалентности разделов
 Граничные значения
 Анализ пути
 Таблицы решений
 диаграммы переходных состояний
 Пользовательские сценарии
 Ортогональные массивы / тестирование пары
Итак,
 Процесс тестирования
- это процесс, в котором тестовая деятельность,
инструменты, люди объединяются вместе, чтобы
проверить продукт
Параллельно процессу разработки идет процесс
подготовки тестов, планирование, разработка и
выполнение всех подготовительных мероприятий
Вопросы ???????????
 Ученик спросил мастера-программиста: "Когда я могу перестать писать
тесты?"
 Мастер ответил: "Когда ты перестаешь писать код"
 У: “Когда я перестаю писать код?"
 М: "Когда ты становишься менеджером"
 У:"Когда я становлюсь менеджером?"
 М:"Когда ты перестаешь писать тесты"
 Ученик побежал писать тесты.
Если код заслуживает быть написанным, он заслуживает иметь тесты

More Related Content

Viewers also liked

Варвара Гарнюк - Как работает иммунная система
Варвара Гарнюк - Как работает иммунная системаВарвара Гарнюк - Как работает иммунная система
Варвара Гарнюк - Как работает иммунная системаШкольная лига РОСНАНО
 
А.О.Гринбаум Абстракция и композиция - квантовая механика в стакане сока
А.О.Гринбаум   Абстракция и композиция - квантовая механика в стакане сокаА.О.Гринбаум   Абстракция и композиция - квантовая механика в стакане сока
А.О.Гринбаум Абстракция и композиция - квантовая механика в стакане сокаШкольная лига РОСНАНО
 
Ю.А.Белоусов Наноолимпиада. Нанохимия в олимпиадных задачах
Ю.А.Белоусов Наноолимпиада. Нанохимия в олимпиадных задачахЮ.А.Белоусов Наноолимпиада. Нанохимия в олимпиадных задачах
Ю.А.Белоусов Наноолимпиада. Нанохимия в олимпиадных задачахШкольная лига РОСНАНО
 
Образование как фактор счастья. Л.С. Илюшин 1 июля
Образование как фактор счастья. Л.С. Илюшин 1 июляОбразование как фактор счастья. Л.С. Илюшин 1 июля
Образование как фактор счастья. Л.С. Илюшин 1 июляШкольная лига РОСНАНО
 
Т.Г.Галактионова - Работа с понятиями. Наноград
Т.Г.Галактионова - Работа с понятиями. НаноградТ.Г.Галактионова - Работа с понятиями. Наноград
Т.Г.Галактионова - Работа с понятиями. НаноградШкольная лига РОСНАНО
 
М.М. Эпштейн, С.С. Михельсон STEM в образовании
М.М. Эпштейн, С.С. Михельсон STEM в образованииМ.М. Эпштейн, С.С. Михельсон STEM в образовании
М.М. Эпштейн, С.С. Михельсон STEM в образованииШкольная лига РОСНАНО
 
STEM presentation SP Times 2.02.2012
STEM presentation SP Times 2.02.2012STEM presentation SP Times 2.02.2012
STEM presentation SP Times 2.02.2012stem-agency
 
Проектные задания для стажерских площадок «Наноград. Калмыкия»
Проектные задания для стажерских площадок «Наноград. Калмыкия»Проектные задания для стажерских площадок «Наноград. Калмыкия»
Проектные задания для стажерских площадок «Наноград. Калмыкия»Школьная лига РОСНАНО
 

Viewers also liked (20)

Space business
Space businessSpace business
Space business
 
Варвара Гарнюк - Как работает иммунная система
Варвара Гарнюк - Как работает иммунная системаВарвара Гарнюк - Как работает иммунная система
Варвара Гарнюк - Как работает иммунная система
 
А.О.Гринбаум Абстракция и композиция - квантовая механика в стакане сока
А.О.Гринбаум   Абстракция и композиция - квантовая механика в стакане сокаА.О.Гринбаум   Абстракция и композиция - квантовая механика в стакане сока
А.О.Гринбаум Абстракция и композиция - квантовая механика в стакане сока
 
И.В.Яминский 3D в нанотехнологиях
И.В.Яминский   3D в нанотехнологияхИ.В.Яминский   3D в нанотехнологиях
И.В.Яминский 3D в нанотехнологиях
 
Ю.А.Белоусов Наноолимпиада. Нанохимия в олимпиадных задачах
Ю.А.Белоусов Наноолимпиада. Нанохимия в олимпиадных задачахЮ.А.Белоусов Наноолимпиада. Нанохимия в олимпиадных задачах
Ю.А.Белоусов Наноолимпиада. Нанохимия в олимпиадных задачах
 
Образование как фактор счастья. Л.С. Илюшин 1 июля
Образование как фактор счастья. Л.С. Илюшин 1 июляОбразование как фактор счастья. Л.С. Илюшин 1 июля
Образование как фактор счастья. Л.С. Илюшин 1 июля
 
А.А.Свитцов Мембранные технологии
А.А.Свитцов Мембранные технологииА.А.Свитцов Мембранные технологии
А.А.Свитцов Мембранные технологии
 
Т.Г.Галактионова - Работа с понятиями. Наноград
Т.Г.Галактионова - Работа с понятиями. НаноградТ.Г.Галактионова - Работа с понятиями. Наноград
Т.Г.Галактионова - Работа с понятиями. Наноград
 
И.В. Гольдт Сколково и космос
И.В. Гольдт Сколково и космос И.В. Гольдт Сколково и космос
И.В. Гольдт Сколково и космос
 
М.М. Эпштейн, С.С. Михельсон STEM в образовании
М.М. Эпштейн, С.С. Михельсон STEM в образованииМ.М. Эпштейн, С.С. Михельсон STEM в образовании
М.М. Эпштейн, С.С. Михельсон STEM в образовании
 
А.В. Земсков. "Миф инноваций"
А.В. Земсков. "Миф инноваций"А.В. Земсков. "Миф инноваций"
А.В. Земсков. "Миф инноваций"
 
Н.Г.Журавлева - Nanotechnology review Саранск 2015
Н.Г.Журавлева - Nanotechnology review Саранск 2015Н.Г.Журавлева - Nanotechnology review Саранск 2015
Н.Г.Журавлева - Nanotechnology review Саранск 2015
 
STEM presentation SP Times 2.02.2012
STEM presentation SP Times 2.02.2012STEM presentation SP Times 2.02.2012
STEM presentation SP Times 2.02.2012
 
2 eremin pdf
2 eremin pdf2 eremin pdf
2 eremin pdf
 
Сергій Дзюба. Робототехніка як складова частина STEM-освіти
Сергій Дзюба. Робототехніка як складова частина STEM-освітиСергій Дзюба. Робототехніка як складова частина STEM-освіти
Сергій Дзюба. Робототехніка як складова частина STEM-освіти
 
Как общаться с учеными
Как общаться с ученымиКак общаться с учеными
Как общаться с учеными
 
Наталія Морзе. STEM: проблеми і перспективи
Наталія Морзе. STEM: проблеми і перспективиНаталія Морзе. STEM: проблеми і перспективи
Наталія Морзе. STEM: проблеми і перспективи
 
Проектные задания для стажерских площадок «Наноград. Калмыкия»
Проектные задания для стажерских площадок «Наноград. Калмыкия»Проектные задания для стажерских площадок «Наноград. Калмыкия»
Проектные задания для стажерских площадок «Наноград. Калмыкия»
 
Между учёным и журналистом
Между учёным и журналистомМежду учёным и журналистом
Между учёным и журналистом
 
Наука как блокбастер
Наука как блокбастерНаука как блокбастер
Наука как блокбастер
 

Similar to Ицхак Цал-Крупп, Павел Фесенко - Software testing

Exactpro Kostroma: High Availability Systems
Exactpro Kostroma: High Availability SystemsExactpro Kostroma: High Availability Systems
Exactpro Kostroma: High Availability SystemsIosif Itkin
 
Приёмы программирования
Приёмы программированияПриёмы программирования
Приёмы программированияTimur Shaporev
 
Virt2real - есть ли жизнь в железе?
Virt2real - есть ли жизнь в железе?Virt2real - есть ли жизнь в железе?
Virt2real - есть ли жизнь в железе?Maxim Krentovskiy
 
20120218 model cheсking_karpov_lecture01
20120218 model cheсking_karpov_lecture0120120218 model cheсking_karpov_lecture01
20120218 model cheсking_karpov_lecture01Computer Science Club
 
IATE Lecture 3: Quality Assurance for Highload Systems
IATE Lecture 3: Quality Assurance for Highload SystemsIATE Lecture 3: Quality Assurance for Highload Systems
IATE Lecture 3: Quality Assurance for Highload SystemsIosif Itkin
 
Введение в тестирование (что такое тестирование, основные принципы тестирования)
Введение в тестирование (что такое тестирование, основные принципы тестирования)Введение в тестирование (что такое тестирование, основные принципы тестирования)
Введение в тестирование (что такое тестирование, основные принципы тестирования)DressTester
 
ТОП-20 ошибок при проектировании дата-центров и их последствия для эксплуатации
ТОП-20 ошибок при проектировании дата-центров и их последствия для эксплуатацииТОП-20 ошибок при проектировании дата-центров и их последствия для эксплуатации
ТОП-20 ошибок при проектировании дата-центров и их последствия для эксплуатацииDataLine
 
Калейдоскоп № 3
Калейдоскоп № 3Калейдоскоп № 3
Калейдоскоп № 3apschool
 

Similar to Ицхак Цал-Крупп, Павел Фесенко - Software testing (11)

Exactpro Kostroma: High Availability Systems
Exactpro Kostroma: High Availability SystemsExactpro Kostroma: High Availability Systems
Exactpro Kostroma: High Availability Systems
 
Приёмы программирования
Приёмы программированияПриёмы программирования
Приёмы программирования
 
ОС 2
ОС 2ОС 2
ОС 2
 
QA Лекция1
QA Лекция1QA Лекция1
QA Лекция1
 
Virt2real - есть ли жизнь в железе?
Virt2real - есть ли жизнь в железе?Virt2real - есть ли жизнь в железе?
Virt2real - есть ли жизнь в железе?
 
20120218 model cheсking_karpov_lecture01
20120218 model cheсking_karpov_lecture0120120218 model cheсking_karpov_lecture01
20120218 model cheсking_karpov_lecture01
 
IATE Lecture 3: Quality Assurance for Highload Systems
IATE Lecture 3: Quality Assurance for Highload SystemsIATE Lecture 3: Quality Assurance for Highload Systems
IATE Lecture 3: Quality Assurance for Highload Systems
 
Введение в тестирование (что такое тестирование, основные принципы тестирования)
Введение в тестирование (что такое тестирование, основные принципы тестирования)Введение в тестирование (что такое тестирование, основные принципы тестирования)
Введение в тестирование (что такое тестирование, основные принципы тестирования)
 
ТОП-20 ошибок при проектировании дата-центров и их последствия для эксплуатации
ТОП-20 ошибок при проектировании дата-центров и их последствия для эксплуатацииТОП-20 ошибок при проектировании дата-центров и их последствия для эксплуатации
ТОП-20 ошибок при проектировании дата-центров и их последствия для эксплуатации
 
Калейдоскоп № 3
Калейдоскоп № 3Калейдоскоп № 3
Калейдоскоп № 3
 
Калейдоскоп № 3
Калейдоскоп № 3Калейдоскоп № 3
Калейдоскоп № 3
 

More from Школьная лига РОСНАНО

Презентация проекта "Национальная открытая школа"
Презентация проекта "Национальная открытая школа"Презентация проекта "Национальная открытая школа"
Презентация проекта "Национальная открытая школа"Школьная лига РОСНАНО
 
Преподавание естественнонаучных дисциплин: проблематика и решения
Преподавание естественнонаучных дисциплин: проблематика и решенияПреподавание естественнонаучных дисциплин: проблематика и решения
Преподавание естественнонаучных дисциплин: проблематика и решенияШкольная лига РОСНАНО
 
Стратегия научно-технологического развития страны: образовательные решения
Стратегия научно-технологического развития страны: образовательные решенияСтратегия научно-технологического развития страны: образовательные решения
Стратегия научно-технологического развития страны: образовательные решенияШкольная лига РОСНАНО
 
Школьная студия науки, технологии и искусства
Школьная студия науки, технологии и искусстваШкольная студия науки, технологии и искусства
Школьная студия науки, технологии и искусстваШкольная лига РОСНАНО
 
STA-cтудия как ресурс для школы в рамках НВТиТ
STA-cтудия как ресурс для школы в рамках НВТиТSTA-cтудия как ресурс для школы в рамках НВТиТ
STA-cтудия как ресурс для школы в рамках НВТиТШкольная лига РОСНАНО
 
Как отбирают стартапы в бизнес-инкубаторах и работают с ними
Как отбирают стартапы в бизнес-инкубаторах и работают с нимиКак отбирают стартапы в бизнес-инкубаторах и работают с ними
Как отбирают стартапы в бизнес-инкубаторах и работают с нимиШкольная лига РОСНАНО
 
Психологический портрет молодых звёзд стартапов
Психологический портрет молодых звёзд стартаповПсихологический портрет молодых звёзд стартапов
Психологический портрет молодых звёзд стартаповШкольная лига РОСНАНО
 
Школьные стартапы: социо-культурный тренд
Школьные стартапы: социо-культурный трендШкольные стартапы: социо-культурный тренд
Школьные стартапы: социо-культурный трендШкольная лига РОСНАНО
 
Педагогическое и психолого-педагогическое сопровождение “технологического ста...
Педагогическое и психолого-педагогическое сопровождение “технологического ста...Педагогическое и психолого-педагогическое сопровождение “технологического ста...
Педагогическое и психолого-педагогическое сопровождение “технологического ста...Школьная лига РОСНАНО
 
Социальное предпринимательство на примере просветительских проектов
Социальное предпринимательство на примере просветительских проектовСоциальное предпринимательство на примере просветительских проектов
Социальное предпринимательство на примере просветительских проектовШкольная лига РОСНАНО
 
Успешный нанотехнологический стартап глазами создателя
Успешный нанотехнологический стартап глазами создателяУспешный нанотехнологический стартап глазами создателя
Успешный нанотехнологический стартап глазами создателяШкольная лига РОСНАНО
 
Школьный опыт бизнес-инициатив и развитие экспертного сообщества старшекласс...
Школьный опыт бизнес-инициатив  и развитие экспертного сообщества старшекласс...Школьный опыт бизнес-инициатив  и развитие экспертного сообщества старшекласс...
Школьный опыт бизнес-инициатив и развитие экспертного сообщества старшекласс...Школьная лига РОСНАНО
 
Стартап - культурный и образовательный контексты
Стартап - культурный и образовательный контекстыСтартап - культурный и образовательный контексты
Стартап - культурный и образовательный контекстыШкольная лига РОСНАНО
 
«Мобильная Электронная Школа» как средство реализации требований ФГОС
«Мобильная Электронная Школа» как средство реализации требований ФГОС«Мобильная Электронная Школа» как средство реализации требований ФГОС
«Мобильная Электронная Школа» как средство реализации требований ФГОСШкольная лига РОСНАНО
 
«Мобильная Электронная Школа»: общая характеристика LMS и её функциональные в...
«Мобильная Электронная Школа»: общая характеристика LMS и её функциональные в...«Мобильная Электронная Школа»: общая характеристика LMS и её функциональные в...
«Мобильная Электронная Школа»: общая характеристика LMS и её функциональные в...Школьная лига РОСНАНО
 

More from Школьная лига РОСНАНО (20)

Охотники за микробами
Охотники за микробамиОхотники за микробами
Охотники за микробами
 
О модуле STA-студии "Загадки природы"
О модуле STA-студии "Загадки природы"О модуле STA-студии "Загадки природы"
О модуле STA-студии "Загадки природы"
 
Презентация проекта "Национальная открытая школа"
Презентация проекта "Национальная открытая школа"Презентация проекта "Национальная открытая школа"
Презентация проекта "Национальная открытая школа"
 
Игровые технологии в обучении
Игровые технологии в обученииИгровые технологии в обучении
Игровые технологии в обучении
 
Преподавание естественнонаучных дисциплин: проблематика и решения
Преподавание естественнонаучных дисциплин: проблематика и решенияПреподавание естественнонаучных дисциплин: проблематика и решения
Преподавание естественнонаучных дисциплин: проблематика и решения
 
Стратегия научно-технологического развития страны: образовательные решения
Стратегия научно-технологического развития страны: образовательные решенияСтратегия научно-технологического развития страны: образовательные решения
Стратегия научно-технологического развития страны: образовательные решения
 
Школьная студия науки, технологии и искусства
Школьная студия науки, технологии и искусстваШкольная студия науки, технологии и искусства
Школьная студия науки, технологии и искусства
 
STA-cтудия как ресурс для школы в рамках НВТиТ
STA-cтудия как ресурс для школы в рамках НВТиТSTA-cтудия как ресурс для школы в рамках НВТиТ
STA-cтудия как ресурс для школы в рамках НВТиТ
 
Как отбирают стартапы в бизнес-инкубаторах и работают с ними
Как отбирают стартапы в бизнес-инкубаторах и работают с нимиКак отбирают стартапы в бизнес-инкубаторах и работают с ними
Как отбирают стартапы в бизнес-инкубаторах и работают с ними
 
Психологический портрет молодых звёзд стартапов
Психологический портрет молодых звёзд стартаповПсихологический портрет молодых звёзд стартапов
Психологический портрет молодых звёзд стартапов
 
Школьные стартапы: социо-культурный тренд
Школьные стартапы: социо-культурный трендШкольные стартапы: социо-культурный тренд
Школьные стартапы: социо-культурный тренд
 
"Экопродукт" - реальный стартап в школе
"Экопродукт" - реальный стартап в школе"Экопродукт" - реальный стартап в школе
"Экопродукт" - реальный стартап в школе
 
Педагогическое и психолого-педагогическое сопровождение “технологического ста...
Педагогическое и психолого-педагогическое сопровождение “технологического ста...Педагогическое и психолого-педагогическое сопровождение “технологического ста...
Педагогическое и психолого-педагогическое сопровождение “технологического ста...
 
Социальное предпринимательство на примере просветительских проектов
Социальное предпринимательство на примере просветительских проектовСоциальное предпринимательство на примере просветительских проектов
Социальное предпринимательство на примере просветительских проектов
 
Успешный нанотехнологический стартап глазами создателя
Успешный нанотехнологический стартап глазами создателяУспешный нанотехнологический стартап глазами создателя
Успешный нанотехнологический стартап глазами создателя
 
Создаём стартапы в школе
Создаём стартапы в школеСоздаём стартапы в школе
Создаём стартапы в школе
 
Школьный опыт бизнес-инициатив и развитие экспертного сообщества старшекласс...
Школьный опыт бизнес-инициатив  и развитие экспертного сообщества старшекласс...Школьный опыт бизнес-инициатив  и развитие экспертного сообщества старшекласс...
Школьный опыт бизнес-инициатив и развитие экспертного сообщества старшекласс...
 
Стартап - культурный и образовательный контексты
Стартап - культурный и образовательный контекстыСтартап - культурный и образовательный контексты
Стартап - культурный и образовательный контексты
 
«Мобильная Электронная Школа» как средство реализации требований ФГОС
«Мобильная Электронная Школа» как средство реализации требований ФГОС«Мобильная Электронная Школа» как средство реализации требований ФГОС
«Мобильная Электронная Школа» как средство реализации требований ФГОС
 
«Мобильная Электронная Школа»: общая характеристика LMS и её функциональные в...
«Мобильная Электронная Школа»: общая характеристика LMS и её функциональные в...«Мобильная Электронная Школа»: общая характеристика LMS и её функциональные в...
«Мобильная Электронная Школа»: общая характеристика LMS и её функциональные в...
 

Ицхак Цал-Крупп, Павел Фесенко - Software testing

  • 1. Введение в тестирование программного обеспечения ЕСЛИ ВЫ ЧТО-НИБУДЬ МОЖЕТЕ УЗНАТЬ ИЗ ЭТОГО, ТО ЭТО - ПРОВЕРИТЬ СВОЙ КОД ТАК, КАК БУДТО ЖИЗНЬ ЗАВИСИТ ОТ НЕГО.
  • 2. Программное обеспечение проникло во все аспекты нашей жизни
  • 3. Беспилотный грузовик  грузовик Freightliner Inspiration компании Daimler получил разрешение на перевозки по дорогам общего пользования штата Невада
  • 4. Неисправности программного обеспечения Мы разрабатываем программы, которые содержат дефекты • Сколько? Какие? Трудно предсказать будущее, однако ... Это весьма вероятно, что программное обеспечение будет развиваться в будущем не будет значительно лучше.
  • 5. Что такое компьютерный "баг“ ?  В 1947 году в Гарвардском университете работал компьютер под названием Mark II. Этот компьютер занимал целую комнату.  механические реле для реализации как 50 регистров с плавающей запятой, так и для арифметического устройства  светящиеся вакуумные трубки  техники программирования компьютера с помощью изменения конфигурации Жук (bug), забравшись в Harvard Mark II, привел к ошибкам при проведении операций с плавающей точкой. Запись в лабораторном журнале гласила: «Сегодня обнаружен первый настоящий баг».
  • 6. Bugs также известны, как ...  ошибки  заблуждение  проблема  инцидент  аномалия  дисперсия  дефект  отказ  несоответствие  погрешность  огреха  особенность программы :-)
  • 7. Ariane 5 – Европейское космическое агенство  4 июня 1996 года, полет Ариан-5 закончился отказом.  Лишь около 40 секунд после стартовой последовательности, на высоте 3700 м, носитель свернул с траектории полета, распалася и взорвался
  • 8. Ариан-5 - Основная причина Ariane 5 Полет 501 Отказ, Доклад по расследованию причин: программный сегмент для преобразования числа с плавающей запятой в знаковое 16-битное целое было выполнено со значением входных данных вне диапазона представления 16-разрядного целого числа. Эта ошибка во время выполнения (выход из диапазона, переполнение), которая возникла в обоих (активном и резервном) компьютерах примерно в то же время, не была обнаружена и оба компьютера отключились. Это привело к полной потере управления ориентацией. Ариан-5 оказался бесконтрольным и аэродинамические силы свернули его с пути. Этот разрыв был обнаружен бортовым монитором, который воспламенил взрывчатку, предназначенную для уничтожения носителя в воздухе при некорректном поведении.
  • 9. Mariner 1 (1962 г.) : Ошибка в коде для космической программы  Код был написан на Фортране и имел ошибку: DO 3 I = 1.10 вместо ... DO 3 I = 1,10  компилятор воспринял это как допустимое выражение, поскольку в ФОРТРАНе (DO3I = 1.10 ) Другой вариант:  Математик написал на бумаге формулу с "NOT-R", т.е. букву R с чертой над ней;  программист не заметил черту, и использовал "R" вместо "NOT-R".
  • 10. Проблемы военной авиации  F-18 разбился из-за пропущенного условия else в блоке If... then ... поэтому не было возможности перехода.  В симуляции F-16 программаная ошибка пыталась перевернуть виртуальный самолет всякий раз, когда он пересекал экватор. Это происходило из-за пропущенного минуса для указания южной широты.
  • 11. Therac-25: Фатальная радиация  В 1986 году человек в Техасе получил от 16,500- 25000 рад в менее чем 10 сек, на площади около 1 см(вместо 180 рад,)  Он потерял левую руку, и умер от осложнений 5 месяцев спустя.  Терак-25 – аппарат для лучевой терапии (онкология).  В 1985-87 гг. 6 человек получили смертельную дозу облучения (количество пациентов, также подвергшихся переоблучению, но выживших, точно не известно).
  • 12. Therac-25: Ошибки Была разработана специальная мультизадачная ОС реального времени для компьютера PDP-11/23 с 32Kбайт и написанная на языке ассемблера  Неправильная синхронизация процессов  Если в пределах 8 сек. курсор покидает командную строку и - после быстрого редактирования параметров - успевает вернуться на нее, то Keyboard Handler этого события просто не заметит,.  дозиметр давал показания в "условных единицах"  Программная блокировка  Во время установки и подгонки параметров подпрограмма Set Up Test вызывается несколько сотен раз. Проверка - переменная F$mal равна 0 . Иначе цикл повторяется.  Эта переменная – однобайтовая : каждый 256-й проход она сбрасываться в ноль. А ведь этот ноль - свидетельство, что все параметры, наконец, установлены.
  • 13. Авария в энергосистеме в США и Канаде (2003) Около 10 млн человек в Канаде (примерно треть населения) 40 млн человек в США Денежный ущерб составил 6 миллиардов долларов.
  • 14. Авария в энергосистеме в США и Канаде (Причины )  В Кливленде, Огайо не подстригли деревья под проводами.  Линии электропередачи в Кливленде нагрелись, провисли и коснулись деревьев. Произошло короткое замыкание.  Электростанция в Кливленде вышла из строя.  Из-за ошибки в компьютерной системе и нехватки персонала, другие центры управления не были извещены.  Произошло цепное отключение около 100 других электростанций. баг в программе, отвечающей за систему оповещения  Две части системы «соревновались» за один ресурс и не могли разрешить конфликт (ошибка проектирования под названием «состояние гонки»), из-за этого система оповещения не сработала.  остановка системы оповещения была «тихой». Не было произведено никаких звуковых или визуальных оповещений.
  • 15. Происшествие на авианосце USS Yorktown  21 сентября 1997 года движущая система USS Yorktown полностью остановилась, оставив авианосец беспомощным в воде на 3 часа, когда один из членов экипажа корабля ввѐл ноль в бортовую систему управления базами данных, а система попыталась произвести операцию деления на ноль. Программное обеспечение было установлено в ходе проекта по использованию компьютеров для уменьшения необходимого количества людей в экипажах некоторых кораблей.
  • 16. ЦРУ дает Советам газа (1982)  миллионы долларов, значительный ущерб для советской экономики  Из-за сбоя в работе программного обеспечения, контролирующего транспортировку газа по магистральному трубопроводу, произошло резкое, скачкообразное повышение давления в Транссибирском газопроводе, в результате чего произошел крупнейший техногенный неядерный взрыв в истории нашей планеты.  Этот сбой относится к разряду запрограммированных - по одной из версий агенты ЦРУ намеренно внесли изменения в исходники канадского программно-технического комплекса, приобретенного Советским Союзом для того, чтобы управлять своими газопроводами. Приобретение было частью стратегического плана СССР по хищению или получению доступа к секретным технологиям США. Когда ЦРУ получило информацию об этой покупке, в качестве контрмер оно приступило к программному саботажу,
  • 17. Обвал на Уолл-стрит (1987)  Всего за один день,"Черный понедельник" (19 октября 1987 года), котировки Dow Jones упали на 508 пунктов, потеряв 22,6% своей стоимости. Фондовый индекс S&P 500 упал на 20,4%(500 млрд долларов ). Это были самые большие потери за всю историю Уолл-стрит, которые произошли в течение одного дня.  к октябрю 1987 года многие инвесторы решили выйти из игры, чтобы спокойно подождать прихода более стабильных времен и условий ведения бизнеса,  биржевые игроки стремились избавиться от акций и облигаций. Это породило панику на бирже.  Поскольку инвесторы обратились в массовое бегство, компьютерная программа биржевой торговли начала генерировать поток ордеров на продажу, рынок зашатался и... рухнул,  последовал сбой системы, который сделал инвесторов слепыми, фактически в эти часы они не могли что-либо контролировать и влиять на ситуацию, они не знали что они продают и по какой цене.
  • 18. Патриот не защищает своих солдат (1991)  25 февраля 1991 года, во время первой войны в Персидском заливе американской системе противоракетной обороны Patriot, установленной в Саудовской Аравии, не удалось перехватить атаку иракских ракет Скад (Scud). Ракетами были уничтожены армейские казармы и солдаты, которые в них находились во время атаки.  28 солдат погибли, 100 получили ранения
  • 19. Патриот не защищает своих солдат (1991)  Ошибка программного обеспечения, из-за некорректного округления (при переводе десятых долей секунды в секунды) было неправильно рассчитано время, в результате чего система Patriot просто проигнорировала приближающиеся ракеты Scud. Погрешность составила всего около 0,34 секунды, но за это время ракета преодолевает расстояние в полкилометра.
  • 20. Ошибка операции деления у Pentium (1993)  чип процессора Intel Pentium периодически допускал незначительные ошибки при делении чисел с плавающей точкой в пределах определенного диапазона.  Например, деление 4195835.0/3145727.0 давало результат 1,33374 вместо 1,33382, (погрешность 0,006%.)  реальные неудобства от ошибка испытали лишь несколько пользователей  Из 5 миллионов дефектных чипов, находящихся в обращении, Intel первоначально предложила заменить чипы Pentium только тем потребителям, которые смогли бы доказать, что им действительно необходима такая высокая точность вычислений. В конце концов, Intel заменила чипы для всех, кто обратился с жалобой.  Потери: 475 млн долларов и престиж компании Intel.  floating-point unit (FPU), математический сопроцессор. использовались специальные таблицы деления, которые и хранились в математическом сопроцессоре, и в которых просто недоставало около пяти тысяч записей
  • 21. Y2K (1999)  Потери: 500 млрд долларов.  Для экономии памяти компьютера, программное обеспечение часто сохраняло год в формате даты-времени в виде двух цифр, например "99" вместо "1999".  Поэтому при пересечении векового порога программа вполне могла интерпретировать "00" как исторические "1900", а не современные "2000".  Поэтому, когда 2000 год все-таки наступил, многие серьезно опасались, что результат перевода стрелок компьютерных часов будет поистине катастрофическим. Компьютерного апокалипсиса не произошло только потому, что на устранение ошибки было потрачено достаточное количество средств.
  • 22. Последствия плохого качества  Standish Group обследовала 350 компаний, более 8000 проектов в 1994 году  31% отменена до завершения, 9-16% были прерваны из-за стоимости и бюджета  исследование в США (1995): 81 млрд долларов США тратят в год на проекты по разработке программного обеспечения  исследование Национальный институт стандартов и технологий NIST (2002): ошибки стоят $ 59.5 млрд. в год. Раннее обнаружение может сохранить $ 22 млрд.
  • 24. Определение Тестов Тестирование программного обеспечения:  Методы выполнения программы с целью нахождения так много дефектов как возможно и / или получения достаточной уверенности в тестируемой программе (или системе) "Программа тестирования может показать наличие ошибок, но никогда не докажет их отсутствие "(Дейкстра)
  • 25. Базовые определения тестирования  Ошибки: Люди совершают ошибки  Неисправность: Неисправность - это результат ошибки в программном обеспечении, документация, коде и т.д.  Отказ: Отказ происходит, когда срабатывает неисправность  Многие люди используют вышеперечисленные три термина заменяя один другим. Этого следует избегать  Аварии: последствия отказов - появление Отказ может или не может быть очевидным для пользователя  Цепочка зависимости основных понятий надежности
  • 26. Мотивации  Независимо от того, как строги мы, программное обеспечение будет иметь неисправности  Тестирование представляет собой функцию ограниченных ресурсов на разработку программного обеспечения и время выхода на рынок  Невозможно проверить в отпущенное время все варианты, возможные при эксплуатации - на основе неполного тестирования, мы должны быть достаточно уверены, что система имеет желаемое поведение  Тестирование больших систем является комплексным - это требует стратегию и соответствующую технологию и часто неэффективно на практике
  • 27.
  • 29. тестирование  Эффективность показывает количество ненайденных багов.  Помогает локализовать неисправность для дебаггинга.  Повторяемость позволяет понять как неисправность может быть проверена.  Автоматизация также уменьшет стоимость и время тестирования.  Систематический настолько, чтобы быть предсказуемым в плане его влияния на надежность
  • 30. Процесс тестирования  Процесс тестирования программного обеспечения  Является средством, в котором тестовые деятельности, люди, методы и инструменты обьединяются для проверки продукта  Тестовая деятельность - это задачи, необходимые для тестирования программного продукта  Люди - это тест-менеджеры, руководители и тестеровщики, отвечающие за выполнение тестов  Инструменты - аппаратные средства или программное обеспечение, используемое для автоматизации всех или части ручных тестов деятельности Качество и эффективность тестирования программного обеспечения, прежде всего, определяется качеством процесса испытаний используется. - [Тестирование в реальном мире, Эдвард комплект]
  • 31. Тестовая деятельность  Тестирование как деятельность может быть сгруппировано в:  Подготовка испытания  Планирование испытаний  Дизайн и разработка тестов  Выполнение теста и управления дефектами  Подведение итогов тестов планирование производстворазработкаисследование завершениеразработкапланирование исполнение
  • 32. Выполнение тестов • Основные виды деятельности: – Запуск тестов – Исследование, протоколирование и проверка дефектов – Монитор выполнения тестов – Продолжить создание автоматизации Phases Выполнение теста является основным видом деятельности обнаружение дефектов Unit & Integration Testing System Testing BAT* Regression Testing Progressive Testing System Testing Cycle 1 Cycle 2 Test Cycle * Build Acceptance Test Build / Eng. Relelase Build / Eng. Relelase
  • 33. Люди  Процесс тестирования является профессиональной дисциплиной, требующей подготовленных, квалифицированных людей  Тестирование - это не работа начального уровня  Хорошие тестеры должны Иметь мироощущение тестировщика  Обучиться процессу тестирования  Не принимать ничего на веру  Уметь работать в команде Process
  • 34. Мироощущение тестировщика  Охота на ошибки  Фокус на поиск ошибок  Получить личное удовлетворение  Быть творчески разрушительным  Использовать воображение, настойчивость, чтобы систематически находить дефекты  Преследовать ошибки, а не людей  Не нападайте на разработчика, который сделал ошибку People
  • 35. Обучение  Некоторые ключевые навыки инженеров-тестировщиков  Планирование тестов  Использование инструментов тестирования  Выполнение тестов  Протоколирование дефектов  Анализ риска  Контрольные измерения  Проэктирование тестов  Построение тестового окружения  Знание технологий тестирования  Потребности конечного пользователя и рабочей среды People
  • 36. Создание прочных отношений  Развивать следующие характеристики  достоверность  Разработка технических знаний  Положительный настрой  Не злорадствовать, не хныкать, не показывать превосходство  Целесообразность  Не чувствовать виноватым, легко адаптироваться  Надежность  Быть ответственным за обеспечение последовательную, качественную поддержку В эффективном проекте, тестеры и разработчики дополняют друг друга, каждый из которых обеспечивает перспективы и навыки, которые другим может не хватать People
  • 37. Инструменты  Инструменты автоматизируют некоторые виды тестирования  Чтобы успешно использовать инструменты, вы должны  Иметь четкое определение процесса  быть обучены пользоваться инструментами  Должна быть доступна поддержка  Есть достаточно времени в расписании для развертывания инструмента Инструменты не решение, но часть решения Tools Intel Confidential
  • 38. Выбор инструментов  Интеграция  Должен поддерживать ваш процесс  Должен поддерживать использование других инструментов  Понимание и подготовка  Какое обучение требуется?  Удобно ли пользоваться инструментом?  Общая стоимость  Стоимость лицензии или покупки  Установка  Техническое обслуживание и поддержка Tools
  • 39. Базовые методы тестирования Два основных типа тестирования:  Тестирование методом черного ящика (black box)  Тестирование методом белого ящика (white box) Method
  • 40. Black-box Testing  Тесты основаны на том, что должна делать система (требования к продукции)  Требуется четкие и полные спецификации, но не нужны внутренние знания о системе  Это наиболее распространенный тип тестирования в SW промышленности Method Недостатки: Невозможно проверить функции, которые были реализованы, но не описаны в спецификации Невозможно проверить внутреннее функционирование системы
  • 41. White-box Testing  Стратегия тестов основана на знании реализации системы  Тесты основаны на знании внутренней разработки и реализации  Требуется от тестера детальное знание системы Method Func() { a=1; } Недостатки: Невозможно тестировать возможности программы, которые не были описаны в реализации Тестировщик должет иметь знания о коде не меньше разработчика
  • 42. Что лучше?  Black-box testing! Потому что знание внутренних кодов вызывает предвзятое мнение еще до тестирования  White-box testing! Потому что углубленное знание системы также дает знание слабых мест Результат: ни Black Box,ни White Box!
  • 43. Базовые методы тестирования  Типичное использование для Black-box/White-box  Black-box тестирование находит дефекты в высокоуровневых тестах (характеристики)  White-Box тестирование находит дефекты в низкоуровневых тестах (код) Method
  • 44. Тесты по степени изолированности компонентов Уровни тестирования - это разбиения процесса выполнения тестов на несколько последовательных уровней Levels Разработка системы Модуль Модульное тестирование Интеграционное тестирование Системное тестирование Dev Dev Test
  • 45. Модульное тестирование проверяет каждый компонент системы отдельно от других  Цель - выполнить все операторы, ветви и основные пути программы  Обнаружить и устранить ошибки на ранних стадиях проекта (недорого)  Обычно используется метод тестирования White-box  Требуется выделить время в общем графике для модульного тестирования  Требуется заглушки и драйверов для отдельных модулей  Обычно делается разработчиками  Ошибки, как правило, не учитываются для конечного продукта Модульное тестирование Правильно разработанные модульные тесты потенциально способны обнаруживать 70% дефектов в программе [Тайер и Lipow] Level
  • 46. Интеграционное тестирование Используется комбинации white-box и black-box методов тестирования Level Интеграционное тестирование - это тестирование интерфейсов между компонентами  Цель - проверить, что новые части работают в составе системы так, как спроектированно  Обнаруживает и устраняет ошибки в API, и плохое взаимодействие между функциями.  Два типа методов интеграции:  интеграция большого взрыва : все компоненты были объединены сразу  инкрементальная интеграция: компоненты добавляются в восходящем или нисходящем порядке  интеграция большого взрыва является менее эффективным  Тяжело определить причины ошибок  Выполняется коллективом разработчиков, тестировщиков, или группой интеграции  Ошибки иногда протоколируются
  • 47. Системное тестирование Системное тестирование производится на полностью собранной системе  Цель - проверить, что она отвечает требованиям пользователей  Чаще всего - метод Black-box  Находит различия между текущим и желаемым поведением системы  Тестирование сосредоточены на факторах, таких как функциональность, производительность, совместимость, удобство использования  Обычно выполняется коллективом тестиривщиков  Ошибки, как правило, протоколируются "Если вы не написали требования для вашего продукта, или если ваши требования не поддаются измерению, то вы не можете выполнить проверку системы" [Майерс] Level
  • 48. По объекту тестирования  Функциональное тестирование  Обнаруживает расхождения между функциональной спецификации программы и ее фактическим поведением  Требуются четко определенные требования  Тестирование производительности  Определяет разницу между реальной производительностью системы и желаемой при пиковых и нормальных условиях  Требуются характеристики производительности, которые трудно составить Types
  • 49. Типы тестирования  Тестирование на совместимость  Тест на совместимость, взаимодействие, совместное функционирование  Дорогое и трудоемкое тестирование  Тестирование надежности  Проверяется надежность и доступность пока система работает с типичной нагрузкой  Включает в себя работу системы в течение длительного времени  Это не проверяется непосредственно. Эти задачи оцениваются путем измерения времени до сбоя Types
  • 50. Типы тестирования  Нагрузка / Стресс-тестирование  Определяет условия пиковой нагрузки, при которой система падает ("тест на провал")  Оценка пиковой нагрузки производится для ключевых эксплуатационных параметров, в том числе  Объем транзакций  Операционная / пользовательская нагрузка  Активность файловой системы  Уровень ошибок  Сетевой трафик Types Примечание: эти тесты могут потребовать сложных конфигураций
  • 51. Типы тестирования  Исследовательское тестирование  Одновременно процесс исследования продукта, разработки тестов и выполнения тестирования  Полезно как дополнение к другим видам тестов  Регрессивное тестирование  Тесты проверяют влияние последних изменений на ранее протестированный код  Включает повторное выполнение всех или выбранных тестов "Вероятность при изменении ввести новые дефекты случайно в существующую систему высокая (от 20% до 50%)." [Росс Коллар] Types
  • 52. Основные методы тестирования  Есть бесконечное число тестов  Чтобы быть эффективным, тестеровщики должны выбрать те испытания, которые быстрее всего найдут дефекты  Некоторые методы, используемые дла этого:  Класс эквивалентности разделов  Граничные значения  Анализ пути  Таблицы решений  диаграммы переходных состояний  Пользовательские сценарии  Ортогональные массивы / тестирование пары
  • 53. Итак,  Процесс тестирования - это процесс, в котором тестовая деятельность, инструменты, люди объединяются вместе, чтобы проверить продукт Параллельно процессу разработки идет процесс подготовки тестов, планирование, разработка и выполнение всех подготовительных мероприятий
  • 54. Вопросы ???????????  Ученик спросил мастера-программиста: "Когда я могу перестать писать тесты?"  Мастер ответил: "Когда ты перестаешь писать код"  У: “Когда я перестаю писать код?"  М: "Когда ты становишься менеджером"  У:"Когда я становлюсь менеджером?"  М:"Когда ты перестаешь писать тесты"  Ученик побежал писать тесты. Если код заслуживает быть написанным, он заслуживает иметь тесты