ARTTEXT 

111111111111111111111

 

22222222222

 

iso1111

 

iso



rthtrhrth

 

 



 

 

Модуль 1. Введение в тестирование программного обеспечения. Анализ требований к программному обеспечению

Введение. 5

Стандарты качества ПО. Атрибуты и характеристики качества ПО. 8

Стандарт ISO 9126. ГОСТ Р ИСО/МЭК 9126-93. 8

Атрибуты и характеристики качества ПО. 8

ГОСТ 19. 9

ГОСТ 34. 10

CMM/CMMI + ISO/IEC 15504. 12

ГОСТ Р ИСО/МЭК 12207-99. 13

IEEE 829 Standard for Software Test Documentation. 14

Тестирование – QC - QA. 15

Определения. 16

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

Цели и задачи тестирования. 18

Цели тестирования. 18

Задачи тестирования. 20

Полный цикл тестирования. Фазы тестирования. 20

Фазы процесса тестирования. 20

Циклы тестирования. 21

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

Модуль 2. Методы И виды тестирования. Анализ требований к программному обеспечению. 24

Методы и виды тестирования. 24

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

Уровни тестирования. 26

По исполнителю.. 29

Методы тестирования: стеклянный ящик; черный ящик; 30

Особенности требований к программному обеспечению. 31

Какие требования бывают. 31

Характеристики качества превосходных требований: 32

Пример. Требования к подсистеме Front-office. 34

Анализ требований с точки зрения пригодности к тестированию. 35

Тестирование требований (документации) 35

Составление тестов на основе требований. 37

Модуль 3. Тестовая документация (общие сведения). Тестовая документация (Test Plan) 38

Документы, создаваемые в ходе жизненного цикла проекта. 38

Тест план. 39

Тест - дизайн. 41

Подготовка наборов тестовых данных (Test Case). 42

Правила составления описаний ошибок, понятие приоритета, критичности. 44

Отчеты о проблемах (баг-репорты). 45

Ведение системы отслеживания ошибок (багтрекинговые системы). 46

Модуль 4. Техники тестирования. Подготовка Тестовых данных. 50

Техники тестирования (Test Techniques) 50

Техники, базирующиеся на интуиции и опыте инженера (Based on the software engineers intuition and experience) 50

Техники, базирующиеся на спецификации (Specification-based techniques) 51

Случайное тестирование (Random testing) 51

Допустимые данные. Граничные данные. Отсутствие данных. 51

Покрытие данных. 53

Классы эквивалентности. 53

Анализ граничных значений. 57

Прогнозирование ошибок. 60

Сокращение числа тестов. 60

Попарное тестирование. Все попарное тестирование (AllPairs Algorithm). 60

Модуль 5. Техники тестрирования. 68

Тестирование бизнес-логики. 68

Таблицы решений. 68

Методология разработки тестовых случаев на основе сценариев использования. 75

Тестирование на основе Диаграмм состояний и переходов. 79

Тестирование на основе моделей. 85

Конечные автоматы. 86

Генераторы тестов. 89

Модуль 6. Покрытие программного кода. 90

Анализ покрытия. 90

Модуль 7. Виды нефункционального тестирования. Тестирование объектно-ориентированного программного обеспечения. 96

Понятие устойчивости. 96

Процедурное и объектно-ориентированное программирование. 99

Тестирование классов. 100

Тестирование наследования. 101

Модуль 8. Регрессионное тестирование. 102

Цели и задачи регрессионного тестирования. 102

Виды регрессионного тестирования. 103

Модуль 9. Тестирование пользовательского интерфейса (GUI).  Тестирование Web-приложений. 104

Функциональное тестирование пользовательского интерфейса. 104

Тестирование удобства пользовательского интерфейса. 104

Интервьюирование пользователей. 106

Тестирование Web-приложений. 107

Общий оценочный лист тестирования usability web-сайта. 108

Модуль 10. Жизненный цикл ПО. 110

Жизненный цикл разработки программного обеспечения. 110

Методологии описания жизненного цикла ПО. 118

Унифицированный процесс Rational 119

Microsoft Solutions Framework (MSF) 122

Extreme Programming (XP) 124

Права и роли. 126

Оценка рисков требований, ранжирование тестов. 127

Изменение требований в процессе разработки. 128

Критерий начала тестирования. 130

Критерии прекращения и завершения тестирования. 131

Список литературы.. 133

 


Модуль 1. Введение в тестирование программного обеспечения. Анализ требований к программному обеспечению

Введение

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

Ошибки в программном обеспечении иногда приводят к серьезным инцидентам и значительным убыткам для организаций, использующим такое ПО. Гораздо чаще возникают более мелкие ошибки, не приводящие к серьезным последствиям. Зависимость между количеством ошибок и размером их последствий подчиняется закону Ципфа (Zipf) undefined количество случающихся сбоев примерно обратно пропорционально величине наносимого ими ущерба.

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

 

• Ошибка в системе управления космическим аппаратом Mariner 1 . Эта ошибка привела к уничтожению одного из первых кораблей, направлявшегося к Венере, через несколько минут после запуска 22 июля 1962 года. В ходе полета антенна связи вышла из строя, связь со службой управления была потеряна, и управление полетом взял на себя бортовой компьютер. Однако в одной из формул для расчета положения было забыто усреднение скорости по нескольким последовательным измеренным значениям undefined в результате небольшие перепады скорости стали рассматриваться системой как серьезные, она стала предпринимать «корректирующие» действия, в результате чего корабль сошел с курса и был уничтожен.

• Ошибка в программном обеспечении, управляющем аппаратом радиационной терапии Therac-25. За 1985-1987 годы зафиксировано 6 инцидентов, связанных с этой ошибкой. В трех из них причиной смерти пациентов были признаны именно инциденты, приводившие к их повышенному облучению. Аппарат имел два режима облучения undefined мягкое облучение электронами и рентгеновское облучение. Во втором случае с источника электронных лучей снимался фильтр, который ослаблял их интенсивность, но между пациентом и источником излучения устанавливался специальный экран, падая на который мощные электронные лучи вызывали рентгеновское излучение. Ошибка проявлялась, когда оператор сначала включал первый режим, а потом слишком быстро переключал аппарат на второй. При этом ослабляющий фильтр снимался, а экран не устанавливался, и пациент подвергался очень интенсивному облучению электронными лучами. Кроме того, оператору при этом сообщалось, что пациент не получил никакой дозы, что не позволяло адекватно среагировать на происходящее. Ошибка возникала лишь иногда и была связана с несинхронизованным выполнением модулей, управлявших различными элементами аппарата. При эксплуатационном тестировании она не была обнаружена, поскольку операторы тогда еще не научились переключать режимы достаточно быстро.

• 25 февраля 1991 года во время Первой войны в Персидском заливе американская система ПВО Patriot не смогла сбить иракскую ракету Скад, которая в результате попала в барак американской армии, убив 28 человек и ранив около ста. Причиной промаха Patriot, как выяснилось, было накопление ошибок округления за время работы системы. Время в ней измерялось в десятых долях секунды, а числа были представлены в 24-битном двоичном формате с плавающей точкой. При представлении 1/10 как двоичной дроби с 24-мя цифрами возникает небольшая ошибка. В рассматриваемом случае система Patriot работала без перезагрузки около 100 часов. За это время накопление погрешности определения времени дало ошибку около 1/3 секунды. Поскольку ракета Скад летит со скоростью 1700 м/с, ошибка в 1/10 секунды при расчете ее траектории уже не дает возможности ее сбить.

• Ошибка в системе управления ракеты Ариан-5 привела к ее уничтожению при первом запуске этой ракеты 4 июня 1996 года. Долгое время эта ошибка, приведшая к убыткам в размере 500 миллионов долларов США, считалась самой дорогостоящей ошибкой в программной системе. Ошибка состояла в том, что без изменений использовался модуль расчета траектории из системы управления ракетой Ариан-4. В нем горизонтальная составляющая скорости ракеты представлялась 16-битным числом. Ариан-5 могла выдерживать более значительные ускорения и большую кривизну траектории, из-за чего в ходе полета значение горизонтальной скорости вышло за пределы представимых 16-ю битами чисел. Специальной процедуры обработки такой ситуации не было, поэтому возникшее исключение обрабатывалось модулем обработки общих сбоев, который остановил данный процесс и запустил новый с теми же исходными данными, что вновь привело к той же ошибке. В результате система не смогла вычислить правильное текущее положение ракеты и стала использовать ранее полученные данные. Это привело к попытке «скорректировать» курс и «болтанию» ракеты, после чего она была уничтожена.

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

• Наконец, одной из причин сбоя в электроснабжении северо-востока Северной Америки, произошедшего 14 августа 2003 года, на несколько часов оставившего без электричества около 50 миллионов человек и приведшего к потерям на сумму около 6 миллиардов долларов США, была ошибка в программной системе оповещения о сбоях на электростанции.

Компания SQS (Software Quality Systems) приготовила подборку самых худших сбоев ПО 2010го года.  Эти сбои привели к физическим, материальным и/или моральным убыткам.

  • ·         Производители автомобилей – отзыв из-за тормозной системы. Отзыв с рынка двух новых моделей автомобилей из-за сбоя в антиблокировочной тормозной системе (ABS)
  • ·         Органы, удаленные у доноров по ошибке. Дефектное ПО привело к удалению не тех органов у 25 доноров в Великобритании.  Ошибка таилась в ПО, отвечающем за преобразования данных, которое использовалось для загрузки информации об органах, подлежащих трансплантации.
  • ·         Министерство гос. департамента препятствовало онлайн заполнению налоговых деклараций. Сотни людей не смогли заполнить налоговые декларации на сайте департамента, из-за дефекта, приведшего к блокировке акаунтов пользователей.
  • ·         Фондовая биржа. Фондовая биржа пострадала от технических неполадок (попросту глюков) во время первой фазы миграции на новую технологическую платформу, торги на альтернативной платформе были возобновлены лишь часом позже (что естественно повлекло за собой значительные убытки для биржи).
  • ·         Неполадки ПО привели к остановке работы тысяч GPS приемников. Во время установки обновлений на станциях наземного контроля за спутниками GPS,  персонал обнаружил неполадку, приведшею к двухнедельной «слепоте» примерно  10 000 GPS приемников.
  • ·         Баг 2010 года ударил по кредиткам. Дефектный микрочип, встроенный в кредитные карточки, сделал их бесполезными, так как не мог распознать 2010 год в дате, посеяв хаос в одной из Европейских стран. Баг проявился примерно на 30 миллионах кредитных картах.
  • ·         Несанкционированный доступ к мобильному телефону. Баг позволял любому человеку обойти  4х значный пин код для доступа к контактам и голосовым сообщениям в телефоне.

Ссылка на первоисточник http://www.net-security.org/secworld.php?id=10354

Стандарты качества ПО. Атрибуты и характеристики качества ПО.

Стандарт ISO 9126. ГОСТ Р ИСО/МЭК 9126-93

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

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

ГОСТ Р ИСО/МЭК 9126-93. «Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению».

http://protect.gost.ru/document.aspx?control=7&id=135185

Качество (quality): весь объем признаков и характеристик продукции или услуги, который относится к их способности удовлетворять установленным и предполагаемым потребностям.

Атрибуты и характеристики качества ПО.

Функциональность (functionality). Способность ПО в определенных условиях решать задачи, нужные пользователям. Определяет, что именно делает ПО, какие задачи оно решает.

  • ·         Функциональная пригодность (suitability).
  •  Способность решать нужный набор задач.
  • ·         Точность (accuracy).
  • Способность выдавать нужные результаты.
  • ·         Способность к взаимодействию (interoperability).
  • Способность взаимодействовать с нужным набором других систем.
  • ·         Соответствие стандартам и правилам (compliance).
  • Соответствие ПО имеющимся индустриальным стандартам, нормативным и законодательным актам, другим регулирующим нормам.
  • ·         Защищенность (security).
  • Способность предотвращать неавторизированный, т.е. без указания лица, пытающегося его осуществить, и неразрешенный доступ к данным и программам.

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

  • ·         Уровнем завершенности, зрелости (отсутствия ошибок)

Величина, обратная частоте отказов ПО. Обычно измеряется средним временем работы без сбоев и величиной, обратной вероятности возникновения отказа за данный период времени.

  • ·         Устойчивостью к отказам

         Способность поддерживать заданный уровень работоспособности при отказах и нарушениях правил взаимодействия с окружением.

  • ·         Восстанавливаемостью.

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

  • ·         Соответствие стандартам надежности (reliability compliance).

Этот атрибут добавлен в 2001 году.

Удобство использования (usability) или практичность - способность ПО быть удобным в обучении и использовании, а также привлекательным для пользователей.

  • ·         Понятность (understandability).

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

  • ·         Удобство обучения (learnability).

Показатель, обратный усилиям, затрачиваемым пользователями на обучение работе с ПО.

  • ·         Удобство работы (operability).

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

  • ·         Привлекательность (attractiveness).

Способность ПО быть привлекательным для пользователей. Этот атрибут добавлен в 2001 году.

  • ·         Соответствие стандартам удобства использования (usability compliance).

Этот атрибут добавлен в 2001 году.

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

  • ·         Временная эффективность (time behaviour).

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

wefewМодуль 1. Введение в тестирование программного обеспечения. Анализ требований к программному обеспечению

Введение. 5

Стандарты качества ПО. Атрибуты и характеристики качества ПО. 8

Стандарт ISO 9126. ГОСТ Р ИСО/МЭК 9126-93. 8

Атрибуты и характеристики качества ПО. 8

ГОСТ 19. 9

ГОСТ 34. 10

CMM/CMMI + ISO/IEC 15504. 12

ГОСТ Р ИСО/МЭК 12207-99. 13

IEEE 829 Standard for Software Test Documentation. 14

Тестирование – QC - QA. 15

Определения. 16

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

Цели и задачи тестирования. 18

Цели тестирования. 18

Задачи тестирования. 20

Полный цикл тестирования. Фазы тестирования. 20

Фазы процесса тестирования. 20

Циклы тестирования. 21

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

Модуль 2. Методы И виды тестирования. Анализ требований к программному обеспечению. 24

Методы и виды тестирования. 24

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

Уровни тестирования. 26

По исполнителю.. 29

Методы тестирования: стеклянный ящик; черный ящик; 30

Особенности требований к программному обеспечению. 31

Какие требования бывают. 31

Характеристики качества превосходных требований: 32

Пример. Требования к подсистеме Front-office. 34

Анализ требований с точки зрения пригодности к тестированию. 35

Тестирование требований (документации) 35

Составление тестов на основе требований. 37

Модуль 3. Тестовая документация (общие сведения). Тестовая документация (Test Plan) 38

Документы, создаваемые в ходе жизненного цикла проекта. 38

Тест план. 39

Тест - дизайн. 41

Подготовка наборов тестовых данных (Test Case). 42

Правила составления описаний ошибок, понятие приоритета, критичности. 44

Отчеты о проблемах (баг-репорты). 45

Ведение системы отслеживания ошибок (багтрекинговые системы). 46

Модуль 4. Техники тестирования. Подготовка Тестовых данных. 50

Техники тестирования (Test Techniques) 50

Техники, базирующиеся на интуиции и опыте инженера (Based on the software engineers intuition and experience) 50

Техники, базирующиеся на спецификации (Specification-based techniques) 51

Случайное тестирование (Random testing) 51

Допустимые данные. Граничные данные. Отсутствие данных. 51

Покрытие данных. 53

Классы эквивалентности. 53

Анализ граничных значений. 57

Прогнозирование ошибок. 60

Сокращение числа тестов. 60

Попарное тестирование. Все попарное тестирование (AllPairs Algorithm). 60

Модуль 5. Техники тестрирования. 68

Тестирование бизнес-логики. 68

Таблицы решений. 68

Методология разработки тестовых случаев на основе сценариев использования. 75

Тестирование на основе Диаграмм состояний и переходов. 79

Тестирование на основе моделей. 85

Конечные автоматы. 86

Генераторы тестов. 89

Модуль 6. Покрытие программного кода. 90

Анализ покрытия. 90

Модуль 7. Виды нефункционального тестирования. Тестирование объектно-ориентированного программного обеспечения. 96

Понятие устойчивости. 96

Процедурное и объектно-ориентированное программирование. 99

Тестирование классов. 100

Тестирование наследования. 101

Модуль 8. Регрессионное тестирование. 102

Цели и задачи регрессионного тестирования. 102

Виды регрессионного тестирования. 103

Модуль 9. Тестирование пользовательского интерфейса (GUI).  Тестирование Web-приложений. 104

Функциональное тестирование пользовательского интерфейса. 104

Тестирование удобства пользовательского интерфейса. 104

Интервьюирование пользователей. 106

Тестирование Web-приложений. 107

Общий оценочный лист тестирования usability web-сайта. 108

Модуль 10. Жизненный цикл ПО. 110

Жизненный цикл разработки программного обеспечения. 110

Методологии описания жизненного цикла ПО. 118

Унифицированный процесс Rational 119

Microsoft Solutions Framework (MSF) 122

Extreme Programming (XP) 124

Права и роли. 126

Оценка рисков требований, ранжирование тестов. 127

Изменение требований в процессе разработки. 128

Критерий начала тестирования. 130

Критерии прекращения и завершения тестирования. 131

Список литературы.. 133

 


Модуль 1. Введение в тестирование программного обеспечения. Анализ требований к программному обеспечению

Введение

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

Ошибки в программном обеспечении иногда приводят к серьезным инцидентам и значительным убыткам для организаций, использующим такое ПО. Гораздо чаще возникают более мелкие ошибки, не приводящие к серьезным последствиям. Зависимость между количеством ошибок и размером их последствий подчиняется закону Ципфа (Zipf) undefined количество случающихся сбоев примерно обратно пропорционально величине наносимого ими ущерба.

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

 

• Ошибка в системе управления космическим аппаратом Mariner 1 . Эта ошибка привела к уничтожению одного из первых кораблей, направлявшегося к Венере, через несколько минут после запуска 22 июля 1962 года. В ходе полета антенна связи вышла из строя, связь со службой управления была потеряна, и управление полетом взял на себя бортовой компьютер. Однако в одной из формул для расчета положения было забыто усреднение скорости по нескольким последовательным измеренным значениям undefined в результате небольшие перепады скорости стали рассматриваться системой как серьезные, она стала предпринимать «корректирующие» действия, в результате чего корабль сошел с курса и был уничтожен.

• Ошибка в программном обеспечении, управляющем аппаратом радиационной терапии Therac-25. За 1985-1987 годы зафиксировано 6 инцидентов, связанных с этой ошибкой. В трех из них причиной смерти пациентов были признаны именно инциденты, приводившие к их повышенному облучению. Аппарат имел два режима облучения undefined мягкое облучение электронами и рентгеновское облучение. Во втором случае с источника электронных лучей снимался фильтр, который ослаблял их интенсивность, но между пациентом и источником излучения устанавливался специальный экран, падая на который мощные электронные лучи вызывали рентгеновское излучение. Ошибка проявлялась, когда оператор сначала включал первый режим, а потом слишком быстро переключал аппарат на второй. При этом ослабляющий фильтр снимался, а экран не устанавливался, и пациент подвергался очень интенсивному облучению электронными лучами. Кроме того, оператору при этом сообщалось, что пациент не получил никакой дозы, что не позволяло адекватно среагировать на происходящее. Ошибка возникала лишь иногда и была связана с несинхронизованным выполнением модулей, управлявших различными элементами аппарата. При эксплуатационном тестировании она не была обнаружена, поскольку операторы тогда еще не научились переключать режимы достаточно быстро.

• 25 февраля 1991 года во время Первой войны в Персидском заливе американская система ПВО Patriot не смогла сбить иракскую ракету Скад, которая в результате попала в барак американской армии, убив 28 человек и ранив около ста. Причиной промаха Patriot, как выяснилось, было накопление ошибок округления за время работы системы. Время в ней измерялось в десятых долях секунды, а числа были представлены в 24-битном двоичном формате с плавающей точкой. При представлении 1/10 как двоичной дроби с 24-мя цифрами возникает небольшая ошибка. В рассматриваемом случае система Patriot работала без перезагрузки около 100 часов. За это время накопление погрешности определения времени дало ошибку около 1/3 секунды. Поскольку ракета Скад летит со скоростью 1700 м/с, ошибка в 1/10 секунды при расчете ее траектории уже не дает возможности ее сбить.

• Ошибка в системе управления ракеты Ариан-5 привела к ее уничтожению при первом запуске этой ракеты 4 июня 1996 года. Долгое время эта ошибка, приведшая к убыткам в размере 500 миллионов долларов США, считалась самой дорогостоящей ошибкой в программной системе. Ошибка состояла в том, что без изменений использовался модуль расчета траектории из системы управления ракетой Ариан-4. В нем горизонтальная составляющая скорости ракеты представлялась 16-битным числом. Ариан-5 могла выдерживать более значительные ускорения и большую кривизну траектории, из-за чего в ходе полета значение горизонтальной скорости вышло за пределы представимых 16-ю битами чисел. Специальной процедуры обработки такой ситуации не было, поэтому возникшее исключение обрабатывалось модулем обработки общих сбоев, который остановил данный процесс и запустил новый с теми же исходными данными, что вновь привело к той же ошибке. В результате система не смогла вычислить правильное текущее положение ракеты и стала использовать ранее полученные данные. Это привело к попытке «скорректировать» курс и «болтанию» ракеты, после чего она была уничтожена.

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

• Наконец, одной из причин сбоя в электроснабжении северо-востока Северной Америки, произошедшего 14 августа 2003 года, на несколько часов оставившего без электричества около 50 миллионов человек и приведшего к потерям на сумму около 6 миллиардов долларов США, была ошибка в программной системе оповещения о сбоях на электростанции.

Компания SQS (Software Quality Systems) приготовила подборку самых худших сбоев ПО 2010го года.  Эти сбои привели к физическим, материальным и/или моральным убыткам.

  • ·         Производители автомобилей – отзыв из-за тормозной системы. Отзыв с рынка двух новых моделей автомобилей из-за сбоя в антиблокировочной тормозной системе (ABS)
  • ·         Органы, удаленные у доноров по ошибке. Дефектное ПО привело к удалению не тех органов у 25 доноров в Великобритании.  Ошибка таилась в ПО, отвечающем за преобразования данных, которое использовалось для загрузки информации об органах, подлежащих трансплантации.
  • ·         Министерство гос. департамента препятствовало онлайн заполнению налоговых деклараций. Сотни людей не смогли заполнить налоговые декларации на сайте департамента, из-за дефекта, приведшего к блокировке акаунтов пользователей.
  • ·         Фондовая биржа. Фондовая биржа пострадала от технических неполадок (попросту глюков) во время первой фазы миграции на новую технологическую платформу, торги на альтернативной платформе были возобновлены лишь часом позже (что естественно повлекло за собой значительные убытки для биржи).
  • ·         Неполадки ПО привели к остановке работы тысяч GPS приемников. Во время установки обновлений на станциях наземного контроля за спутниками GPS,  персонал обнаружил неполадку, приведшею к двухнедельной «слепоте» примерно  10 000 GPS приемников.
  • ·         Баг 2010 года ударил по кредиткам. Дефектный микрочип, встроенный в кредитные карточки, сделал их бесполезными, так как не мог распознать 2010 год в дате, посеяв хаос в одной из Европейских стран. Баг проявился примерно на 30 миллионах кредитных картах.
  • ·         Несанкционированный доступ к мобильному телефону. Баг позволял любому человеку обойти  4х значный пин код для доступа к контактам и голосовым сообщениям в телефоне.

Ссылка на первоисточник http://www.net-security.org/secworld.php?id=10354

Стандарты качества ПО. Атрибуты и характеристики качества ПО.

Стандарт ISO 9126. ГОСТ Р ИСО/МЭК 9126-93

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

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

ГОСТ Р ИСО/МЭК 9126-93. «Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению».

http://protect.gost.ru/document.aspx?control=7&id=135185

Качество (quality): весь объем признаков и характеристик продукции или услуги, который относится к их способности удовлетворять установленным и предполагаемым потребностям.

Атрибуты и характеристики качества ПО.

Функциональность (functionality). Способность ПО в определенных условиях решать задачи, нужные пользователям. Определяет, что именно делает ПО, какие задачи оно решает.

  • ·         Функциональная пригодность (suitability).
  •  Способность решать нужный набор задач.
  • ·         Точность (accuracy).
  • Способность выдавать нужные результаты.
  • ·         Способность к взаимодействию (interoperability).
  • Способность взаимодействовать с нужным набором других систем.
  • ·         Соответствие стандартам и правилам (compliance).
  • Соответствие ПО имеющимся индустриальным стандартам, нормативным и законодательным актам, другим регулирующим нормам.
  • ·         Защищенность (security).
  • Способность предотвращать неавторизированный, т.е. без указания лица, пытающегося его осуществить, и неразрешенный доступ к данным и программам.

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

  • ·         Уровнем завершенности, зрелости (отсутствия ошибок)

Величина, обратная частоте отказов ПО. Обычно измеряется средним временем работы без сбоев и величиной, обратной вероятности возникновения отказа за данный период времени.

  • ·         Устойчивостью к отказам

         Способность поддерживать заданный уровень работоспособности при отказах и нарушениях правил взаимодействия с окружением.

  • ·         Восстанавливаемостью.

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

  • ·         Соответствие стандартам надежности (reliability compliance).

Этот атрибут добавлен в 2001 году.

Удобство использования (usability) или практичность - способность ПО быть удобным в обучении и использовании, а также привлекательным для пользователей.

  • ·         Понятность (understandability).

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

  • ·         Удобство обучения (learnability).

Показатель, обратный усилиям, затрачиваемым пользователями на обучение работе с ПО.

  • ·         Удобство работы (operability).

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

  • ·         Привлекательность (attractiveness).

Способность ПО быть привлекательным для пользователей. Этот атрибут добавлен в 2001 году.

  • ·         Соответствие стандартам удобства использования (usability compliance).

Этот атрибут добавлен в 2001 году.

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

  • ·         Временная эффективность (time behaviour).

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

Модуль 1. Введение в тестирование программного обеспечения. Анализ требований к программному обеспечению.. 5

Введение. 5

Стандарты качества ПО. Атрибуты и характеристики качества ПО. 8

Стандарт ISO 9126. ГОСТ Р ИСО/МЭК 9126-93. 8

Атрибуты и характеристики качества ПО. 8

ГОСТ 19. 9

ГОСТ 34. 10

CMM/CMMI + ISO/IEC 15504. 12

ГОСТ Р ИСО/МЭК 12207-99. 13

IEEE 829 Standard for Software Test Documentation. 14

Тестирование – QC - QA. 15

Определения. 16

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

Цели и задачи тестирования. 18

Цели тестирования. 18

Задачи тестирования. 20

Полный цикл тестирования. Фазы тестирования. 20

Фазы процесса тестирования. 20

Циклы тестирования. 21

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

Модуль 2. Методы И виды тестирования. Анализ требований к программному обеспечению. 24

Методы и виды тестирования. 24

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

Уровни тестирования. 26

По исполнителю.. 29

Методы тестирования: стеклянный ящик; черный ящик; 30

Особенности требований к программному обеспечению. 31

Какие требования бывают. 31

Характеристики качества превосходных требований: 32

Пример. Требования к подсистеме Front-office. 34

Анализ требований с точки зрения пригодности к тестированию. 35

Тестирование требований (документации) 35

Составление тестов на основе требований. 37

Модуль 3. Тестовая документация (общие сведения). Тестовая документация (Test Plan) 38

Документы, создаваемые в ходе жизненного цикла проекта. 38

Тест план. 39

Тест - дизайн. 41

Подготовка наборов тестовых данных (Test Case). 42

Правила составления описаний ошибок, понятие приоритета, критичности. 44

Отчеты о проблемах (баг-репорты). 45

Ведение системы отслеживания ошибок (багтрекинговые системы). 46

Модуль 4. Техники тестирования. Подготовка Тестовых данных. 50

Техники тестирования (Test Techniques) 50

Техники, базирующиеся на интуиции и опыте инженера (Based on the software engineers intuition and experience) 50

Техники, базирующиеся на спецификации (Specification-based techniques) 51

Случайное тестирование (Random testing) 51

Допустимые данные. Граничные данные. Отсутствие данных. 51

Покрытие данных. 53

Классы эквивалентности. 53

Анализ граничных значений. 57

Прогнозирование ошибок. 60

Сокращение числа тестов. 60

Попарное тестирование. Все попарное тестирование (AllPairs Algorithm). 60

Модуль 5. Техники тестрирования. 68

Тестирование бизнес-логики. 68

Таблицы решений. 68

Методология разработки тестовых случаев на основе сценариев использования. 75

Тестирование на основе Диаграмм состояний и переходов. 79

Тестирование на основе моделей. 85

Конечные автоматы. 86

Генераторы тестов. 89

Модуль 6. Покрытие программного кода. 90

Анализ покрытия. 90

Модуль 7. Виды нефункционального тестирования. Тестирование объектно-ориентированного программного обеспечения. 96

Понятие устойчивости. 96

Процедурное и объектно-ориентированное программирование. 99

Тестирование классов. 100

Тестирование наследования. 101

Модуль 8. Регрессионное тестирование. 102

Цели и задачи регрессионного тестирования. 102

Виды регрессионного тестирования. 103

Модуль 9. Тестирование пользовательского интерфейса (GUI).  Тестирование Web-приложений. 104

Функциональное тестирование пользовательского интерфейса. 104

Тестирование удобства пользовательского интерфейса. 104

Интервьюирование пользователей. 106

Тестирование Web-приложений. 107

Общий оценочный лист тестирования usability web-сайта. 108

Модуль 10. Жизненный цикл ПО. 110

Жизненный цикл разработки программного обеспечения. 110

Методологии описания жизненного цикла ПО. 118

Унифицированный процесс Rational 119

Microsoft Solutions Framework (MSF) 122

Extreme Programming (XP) 124

Права и роли. 126

Оценка рисков требований, ранжирование тестов. 127

Изменение требований в процессе разработки. 128

Критерий начала тестирования. 130

Критерии прекращения и завершения тестирования. 131

Список литературы.. 133

 


Модуль 1. Введение в тестирование программного обеспечения. Анализ требований к программному обеспечению

Введение

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

Ошибки в программном обеспечении иногда приводят к серьезным инцидентам и значительным убыткам для организаций, использующим такое ПО. Гораздо чаще возникают более мелкие ошибки, не приводящие к серьезным последствиям. Зависимость между количеством ошибок и размером их последствий подчиняется закону Ципфа (Zipf) undefined количество случающихся сбоев примерно обратно пропорционально величине наносимого ими ущерба.

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

 

• Ошибка в системе управления космическим аппаратом Mariner 1 . Эта ошибка привела к уничтожению одного из первых кораблей, направлявшегося к Венере, через несколько минут после запуска 22 июля 1962 года. В ходе полета антенна связи вышла из строя, связь со службой управления была потеряна, и управление полетом взял на себя бортовой компьютер. Однако в одной из формул для расчета положения было забыто усреднение скорости по нескольким последовательным измеренным значениям undefined в результате небольшие перепады скорости стали рассматриваться системой как серьезные, она стала предпринимать «корректирующие» действия, в результате чего корабль сошел с курса и был уничтожен.

• Ошибка в программном обеспечении, управляющем аппаратом радиационной терапии Therac-25. За 1985-1987 годы зафиксировано 6 инцидентов, связанных с этой ошибкой. В трех из них причиной смерти пациентов были признаны именно инциденты, приводившие к их повышенному облучению. Аппарат имел два режима облучения undefined мягкое облучение электронами и рентгеновское облучение. Во втором случае с источника электронных лучей снимался фильтр, который ослаблял их интенсивность, но между пациентом и источником излучения устанавливался специальный экран, падая на который мощные электронные лучи вызывали рентгеновское излучение. Ошибка проявлялась, когда оператор сначала включал первый режим, а потом слишком быстро переключал аппарат на второй. При этом ослабляющий фильтр снимался, а экран не устанавливался, и пациент подвергался очень интенсивному облучению электронными лучами. Кроме того, оператору при этом сообщалось, что пациент не получил никакой дозы, что не позволяло адекватно среагировать на происходящее. Ошибка возникала лишь иногда и была связана с несинхронизованным выполнением модулей, управлявших различными элементами аппарата. При эксплуатационном тестировании она не была обнаружена, поскольку операторы тогда еще не научились переключать режимы достаточно быстро.

• 25 февраля 1991 года во время Первой войны в Персидском заливе американская система ПВО Patriot не смогла сбить иракскую ракету Скад, которая в результате попала в барак американской армии, убив 28 человек и ранив около ста. Причиной промаха Patriot, как выяснилось, было накопление ошибок округления за время работы системы. Время в ней измерялось в десятых долях секунды, а числа были представлены в 24-битном двоичном формате с плавающей точкой. При представлении 1/10 как двоичной дроби с 24-мя цифрами возникает небольшая ошибка. В рассматриваемом случае система Patriot работала без перезагрузки около 100 часов. За это время накопление погрешности определения времени дало ошибку около 1/3 секунды. Поскольку ракета Скад летит со скоростью 1700 м/с, ошибка в 1/10 секунды при расчете ее траектории уже не дает возможности ее сбить.

• Ошибка в системе управления ракеты Ариан-5 привела к ее уничтожению при первом запуске этой ракеты 4 июня 1996 года. Долгое время эта ошибка, приведшая к убыткам в размере 500 миллионов долларов США, считалась самой дорогостоящей ошибкой в программной системе. Ошибка состояла в том, что без изменений использовался модуль расчета траектории из системы управления ракетой Ариан-4. В нем горизонтальная составляющая скорости ракеты представлялась 16-битным числом. Ариан-5 могла выдерживать более значительные ускорения и большую кривизну траектории, из-за чего в ходе полета значение горизонтальной скорости вышло за пределы представимых 16-ю битами чисел. Специальной процедуры обработки такой ситуации не было, поэтому возникшее исключение обрабатывалось модулем обработки общих сбоев, который остановил данный процесс и запустил новый с теми же исходными данными, что вновь привело к той же ошибке. В результате система не смогла вычислить правильное текущее положение ракеты и стала использовать ранее полученные данные. Это привело к попытке «скорректировать» курс и «болтанию» ракеты, после чего она была уничтожена.

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

• Наконец, одной из причин сбоя в электроснабжении северо-востока Северной Америки, произошедшего 14 августа 2003 года, на несколько часов оставившего без электричества около 50 миллионов человек и приведшего к потерям на сумму около 6 миллиардов долларов США, была ошибка в программной системе оповещения о сбоях на электростанции.

Компания SQS (Software Quality Systems) приготовила подборку самых худших сбоев ПО 2010го года.  Эти сбои привели к физическим, материальным и/или моральным убыткам.

  • ·         Производители автомобилей – отзыв из-за тормозной системы. Отзыв с рынка двух новых моделей автомобилей из-за сбоя в антиблокировочной тормозной системе (ABS)
  • ·         Органы, удаленные у доноров по ошибке. Дефектное ПО привело к удалению не тех органов у 25 доноров в Великобритании.  Ошибка таилась в ПО, отвечающем за преобразования данных, которое использовалось для загрузки информации об органах, подлежащих трансплантации.
  • ·         Министерство гос. департамента препятствовало онлайн заполнению налоговых деклараций. Сотни людей не смогли заполнить налоговые декларации на сайте департамента, из-за дефекта, приведшего к блокировке акаунтов пользователей.
  • ·         Фондовая биржа. Фондовая биржа пострадала от технических неполадок (попросту глюков) во время первой фазы миграции на новую технологическую платформу, торги на альтернативной платформе были возобновлены лишь часом позже (что естественно повлекло за собой значительные убытки для биржи).
  • ·         Неполадки ПО привели к остановке работы тысяч GPS приемников. Во время установки обновлений на станциях наземного контроля за спутниками GPS,  персонал обнаружил неполадку, приведшею к двухнедельной «слепоте» примерно  10 000 GPS приемников.
  • ·         Баг 2010 года ударил по кредиткам. Дефектный микрочип, встроенный в кредитные карточки, сделал их бесполезными, так как не мог распознать 2010 год в дате, посеяв хаос в одной из Европейских стран. Баг проявился примерно на 30 миллионах кредитных картах.
  • ·         Несанкционированный доступ к мобильному телефону. Баг позволял любому человеку обойти  4х значный пин код для доступа к контактам и голосовым сообщениям в телефоне.

Ссылка на первоисточник http://www.net-security.org/secworld.php?id=10354

Стандарты качества ПО. Атрибуты и характеристики качества ПО.

Стандарт ISO 9126. ГОСТ Р ИСО/МЭК 9126-93

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

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

ГОСТ Р ИСО/МЭК 9126-93. «Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению».

http://protect.gost.ru/document.aspx?control=7&id=135185

Качество (quality): весь объем признаков и характеристик продукции или услуги, который относится к их способности удовлетворять установленным и предполагаемым потребностям.

Атрибуты и характеристики качества ПО.

Функциональность (functionality). Способность ПО в определенных условиях решать задачи, нужные пользователям. Определяет, что именно делает ПО, какие задачи оно решает.

  • ·         Функциональная пригодность (suitability).
  •  Способность решать нужный набор задач.
  • ·         Точность (accuracy).
  • Способность выдавать нужные результаты.
  • ·         Способность к взаимодействию (interoperability).
  • Способность взаимодействовать с нужным набором других систем.
  • ·         Соответствие стандартам и правилам (compliance).
  • Соответствие ПО имеющимся индустриальным стандартам, нормативным и законодательным актам, другим регулирующим нормам.
  • ·         Защищенность (security).
  • Способность предотвращать неавторизированный, т.е. без указания лица, пытающегося его осуществить, и неразрешенный доступ к данным и программам.

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

  • ·         Уровнем завершенности, зрелости (отсутствия ошибок)

Величина, обратная частоте отказов ПО. Обычно измеряется средним временем работы без сбоев и величиной, обратной вероятности возникновения отказа за данный период времени.

  • ·         Устойчивостью к отказам

         Способность поддерживать заданный уровень работоспособности при отказах и нарушениях правил взаимодействия с окружением.

  • ·         Восстанавливаемостью.

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

  • ·         Соответствие стандартам надежности (reliability compliance).

Этот атрибут добавлен в 2001 году.

Удобство использования (usability) или практичность - способность ПО быть удобным в обучении и использовании, а также привлекательным для пользователей.

  • ·         Понятность (understandability).

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

  • ·         Удобство обучения (learnability).

Показатель, обратный усилиям, затрачиваемым пользователями на обучение работе с ПО.

  • ·         Удобство работы (operability).

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

  • ·         Привлекательность (attractiveness).

Способность ПО быть привлекательным для пользователей. Этот атрибут добавлен в 2001 году.

  • ·         Соответствие стандартам удобства использования (usability compliance).

Этот атрибут добавлен в 2001 году.

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

  • ·         Временная эффективность (time behaviour).

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


This footer is displayed on all pages.
If it is empty, default text is displayed here.
Delete this text and insert your copyright text or anything else you want.

Powered by Wild Apricot Membership Software