Стандарты качества ПО. Атрибуты и характеристики качества ПО. 8
Стандарт ISO 9126. ГОСТ Р ИСО/МЭК 9126-93. 8
Атрибуты и характеристики качества ПО. 8
IEEE 829 Standard for Software Test Documentation. 14
Цели и задачи тестирования. 18
Полный цикл тестирования. Фазы тестирования. 20
Фазы процесса тестирования. 20
Модуль 2. Методы И виды тестирования. Анализ требований к программному обеспечению. 24
Методы и виды тестирования. 24
Методы тестирования: стеклянный ящик; черный ящик; 30
Особенности требований к программному обеспечению. 31
Характеристики качества превосходных требований: 32
Пример. Требования к подсистеме Front-office. 34
Анализ требований с точки зрения пригодности к тестированию. 35
Тестирование требований (документации) 35
Составление тестов на основе требований. 37
Модуль 3. Тестовая документация (общие сведения). Тестовая документация (Test Plan) 38
Документы, создаваемые в ходе жизненного цикла проекта. 38
Подготовка наборов тестовых данных (Test Case). 42
Правила составления описаний ошибок, понятие приоритета, критичности. 44
Отчеты о проблемах (баг-репорты). 45
Ведение системы отслеживания ошибок (багтрекинговые системы). 46
Модуль 4. Техники тестирования. Подготовка Тестовых данных. 50
Техники тестирования (Test Techniques) 50
Техники, базирующиеся на спецификации (Specification-based techniques) 51
Случайное тестирование (Random testing) 51
Допустимые данные. Граничные данные. Отсутствие данных. 51
Попарное тестирование. Все попарное тестирование (AllPairs Algorithm). 60
Модуль 5. Техники тестрирования. 68
Тестирование бизнес-логики. 68
Методология разработки тестовых случаев на основе сценариев использования. 75
Тестирование на основе Диаграмм состояний и переходов. 79
Тестирование на основе моделей. 85
Модуль 6. Покрытие программного кода. 90
Процедурное и объектно-ориентированное программирование. 99
Тестирование наследования. 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
Оценка рисков требований, ранжирование тестов. 127
Изменение требований в процессе разработки. 128
Критерий начала тестирования. 130
Критерии прекращения и завершения тестирования. 131
Информационные технологии являются одним из основных элементов инфраструктуры современного общества. Они служат базой для экономической деятельности и социального и культурного развития человечества, обеспечивая людям доступ к огромным массивам разнообразной информации и связывая их друг с другом, где бы они не находились.
Ошибки в программном обеспечении иногда приводят к серьезным инцидентам и значительным убыткам для организаций, использующим такое ПО. Гораздо чаще возникают более мелкие ошибки, не приводящие к серьезным последствиям. Зависимость между количеством ошибок и размером их последствий подчиняется закону Ципфа (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го года. Эти сбои привели к физическим, материальным и/или моральным убыткам.
Ссылка на первоисточник http://www.net-security.org/secworld.php?id=10354
ISO 9126 это международный стандарт, определяющий оценочные характеристики качества программного обеспечения. Стандарт разделяется на 4 части, описывающие следующие вопросы: модель качества; внешние метрики качества; внутренние метрики качества; метрики качества в использовании.
Первая часть стандарта - характеристики качества программного обеспечения (software quality characteristics) - набор свойств (атрибутов) программной продукции, по которым ее качество описывается и оценивается. Характеристики качества программного обеспечения могут быть уточнены на множестве уровней комплексных показателей.
ГОСТ Р ИСО/МЭК 9126-93. «Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению».
http://protect.gost.ru/document.aspx?control=7&id=135185
Качество (quality): весь объем признаков и характеристик продукции или услуги, который относится к их способности удовлетворять установленным и предполагаемым потребностям.
Функциональность (functionality). Способность ПО в определенных условиях решать задачи, нужные пользователям. Определяет, что именно делает ПО, какие задачи оно решает.
Надежность undefined Набор атрибутов, относящихся к способности ПО сохранять свой уровень качества функционирования в установленных условиях за определенный период времени. Детализируется следующими подхарактеристиками (субхарактеристиками):
Величина, обратная частоте отказов ПО. Обычно измеряется средним временем работы без сбоев и величиной, обратной вероятности возникновения отказа за данный период времени.
Способность поддерживать заданный уровень работоспособности при отказах и нарушениях правил взаимодействия с окружением.
Способность восстанавливать определенный уровень работоспособности и целостность данных после отказа, необходимые для этого время и ресурсы.
Этот атрибут добавлен в 2001 году.
Удобство использования (usability) или практичность - способность ПО быть удобным в обучении и использовании, а также привлекательным для пользователей.
Показатель, обратный к усилиям, которые затрачиваются пользователями на восприятие основных понятий ПО и осознание их применимости для решения своих задач.
Показатель, обратный усилиям, затрачиваемым пользователями на обучение работе с ПО.
Показатель, обратный усилиям, предпринимаемым пользователями для решения своих задач с помощью ПО.
Способность ПО быть привлекательным для пользователей. Этот атрибут добавлен в 2001 году.
Этот атрибут добавлен в 2001 году.
Производительность (efficiency) или эффективность. Способность ПО при заданных условиях обеспечивать необходимую работоспособность по отношению к выделяемым для этого ресурсам. Можно определить ее и как отношение получаемых с помощью ПО результатов к затрачиваемым на это ресурсам всех типов.
Способность ПО выдавать ожидаемые результаты, а также обеспечивать передачу необходимого объема данных за отведенное время.
wefewМодуль 1. Введение в тестирование программного обеспечения. Анализ требований к программному обеспечению
Стандарты качества ПО. Атрибуты и характеристики качества ПО. 8 Стандарт ISO 9126. ГОСТ Р ИСО/МЭК 9126-93. 8 Атрибуты и характеристики качества ПО. 8 IEEE 829 Standard for Software Test Documentation. 14 Цели и задачи тестирования. 18 Полный цикл тестирования. Фазы тестирования. 20 Фазы процесса тестирования. 20 Модуль 2. Методы И виды тестирования. Анализ требований к программному обеспечению. 24 Методы и виды тестирования. 24 Методы тестирования: стеклянный ящик; черный ящик; 30 Особенности требований к программному обеспечению. 31 Характеристики качества превосходных требований: 32 Пример. Требования к подсистеме Front-office. 34 Анализ требований с точки зрения пригодности к тестированию. 35 Тестирование требований (документации) 35 Составление тестов на основе требований. 37 Модуль 3. Тестовая документация (общие сведения). Тестовая документация (Test Plan) 38 Документы, создаваемые в ходе жизненного цикла проекта. 38 Подготовка наборов тестовых данных (Test Case). 42 Правила составления описаний ошибок, понятие приоритета, критичности. 44 Отчеты о проблемах (баг-репорты). 45 Ведение системы отслеживания ошибок (багтрекинговые системы). 46 Модуль 4. Техники тестирования. Подготовка Тестовых данных. 50 Техники тестирования (Test Techniques) 50 Техники, базирующиеся на спецификации (Specification-based techniques) 51 Случайное тестирование (Random testing) 51 Допустимые данные. Граничные данные. Отсутствие данных. 51 Попарное тестирование. Все попарное тестирование (AllPairs Algorithm). 60 Модуль 5. Техники тестрирования. 68 Тестирование бизнес-логики. 68 Методология разработки тестовых случаев на основе сценариев использования. 75 Тестирование на основе Диаграмм состояний и переходов. 79 Тестирование на основе моделей. 85 Модуль 6. Покрытие программного кода. 90 Процедурное и объектно-ориентированное программирование. 99 Тестирование наследования. 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 Оценка рисков требований, ранжирование тестов. 127 Изменение требований в процессе разработки. 128 Критерий начала тестирования. 130 Критерии прекращения и завершения тестирования. 131
Модуль 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го года. Эти сбои привели к физическим, материальным и/или моральным убыткам.
Ссылка на первоисточник http://www.net-security.org/secworld.php?id=10354 ISO 9126 это международный стандарт, определяющий оценочные характеристики качества программного обеспечения. Стандарт разделяется на 4 части, описывающие следующие вопросы: модель качества; внешние метрики качества; внутренние метрики качества; метрики качества в использовании. Первая часть стандарта - характеристики качества программного обеспечения (software quality characteristics) - набор свойств (атрибутов) программной продукции, по которым ее качество описывается и оценивается. Характеристики качества программного обеспечения могут быть уточнены на множестве уровней комплексных показателей. ГОСТ Р ИСО/МЭК 9126-93. «Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению». http://protect.gost.ru/document.aspx?control=7&id=135185 Качество (quality): весь объем признаков и характеристик продукции или услуги, который относится к их способности удовлетворять установленным и предполагаемым потребностям. Функциональность (functionality). Способность ПО в определенных условиях решать задачи, нужные пользователям. Определяет, что именно делает ПО, какие задачи оно решает.
Надежность undefined Набор атрибутов, относящихся к способности ПО сохранять свой уровень качества функционирования в установленных условиях за определенный период времени. Детализируется следующими подхарактеристиками (субхарактеристиками):
Величина, обратная частоте отказов ПО. Обычно измеряется средним временем работы без сбоев и величиной, обратной вероятности возникновения отказа за данный период времени.
Способность поддерживать заданный уровень работоспособности при отказах и нарушениях правил взаимодействия с окружением.
Способность восстанавливать определенный уровень работоспособности и целостность данных после отказа, необходимые для этого время и ресурсы.
Этот атрибут добавлен в 2001 году. Удобство использования (usability) или практичность - способность ПО быть удобным в обучении и использовании, а также привлекательным для пользователей.
Показатель, обратный к усилиям, которые затрачиваются пользователями на восприятие основных понятий ПО и осознание их применимости для решения своих задач.
Показатель, обратный усилиям, затрачиваемым пользователями на обучение работе с ПО.
Показатель, обратный усилиям, предпринимаемым пользователями для решения своих задач с помощью ПО.
Способность ПО быть привлекательным для пользователей. Этот атрибут добавлен в 2001 году.
Этот атрибут добавлен в 2001 году. Производительность (efficiency) или эффективность. Способность ПО при заданных условиях обеспечивать необходимую работоспособность по отношению к выделяемым для этого ресурсам. Можно определить ее и как отношение получаемых с помощью ПО результатов к затрачиваемым на это ресурсам всех типов.
Способность ПО выдавать ожидаемые результаты, а также обеспечивать передачу необходимого объема данных за отведенное время. | Стандарты качества ПО. Атрибуты и характеристики качества ПО. 8 Стандарт ISO 9126. ГОСТ Р ИСО/МЭК 9126-93. 8 Атрибуты и характеристики качества ПО. 8 IEEE 829 Standard for Software Test Documentation. 14 Цели и задачи тестирования. 18 Полный цикл тестирования. Фазы тестирования. 20 Фазы процесса тестирования. 20 Модуль 2. Методы И виды тестирования. Анализ требований к программному обеспечению. 24 Методы и виды тестирования. 24 Методы тестирования: стеклянный ящик; черный ящик; 30 Особенности требований к программному обеспечению. 31 Характеристики качества превосходных требований: 32 Пример. Требования к подсистеме Front-office. 34 Анализ требований с точки зрения пригодности к тестированию. 35 Тестирование требований (документации) 35 Составление тестов на основе требований. 37 Модуль 3. Тестовая документация (общие сведения). Тестовая документация (Test Plan) 38 Документы, создаваемые в ходе жизненного цикла проекта. 38 Подготовка наборов тестовых данных (Test Case). 42 Правила составления описаний ошибок, понятие приоритета, критичности. 44 Отчеты о проблемах (баг-репорты). 45 Ведение системы отслеживания ошибок (багтрекинговые системы). 46 Модуль 4. Техники тестирования. Подготовка Тестовых данных. 50 Техники тестирования (Test Techniques) 50 Техники, базирующиеся на спецификации (Specification-based techniques) 51 Случайное тестирование (Random testing) 51 Допустимые данные. Граничные данные. Отсутствие данных. 51 Попарное тестирование. Все попарное тестирование (AllPairs Algorithm). 60 Модуль 5. Техники тестрирования. 68 Тестирование бизнес-логики. 68 Методология разработки тестовых случаев на основе сценариев использования. 75 Тестирование на основе Диаграмм состояний и переходов. 79 Тестирование на основе моделей. 85 Модуль 6. Покрытие программного кода. 90 Процедурное и объектно-ориентированное программирование. 99 Тестирование наследования. 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 Оценка рисков требований, ранжирование тестов. 127 Изменение требований в процессе разработки. 128 Критерий начала тестирования. 130 Критерии прекращения и завершения тестирования. 131
Модуль 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го года. Эти сбои привели к физическим, материальным и/или моральным убыткам.
Ссылка на первоисточник http://www.net-security.org/secworld.php?id=10354 ISO 9126 это международный стандарт, определяющий оценочные характеристики качества программного обеспечения. Стандарт разделяется на 4 части, описывающие следующие вопросы: модель качества; внешние метрики качества; внутренние метрики качества; метрики качества в использовании. Первая часть стандарта - характеристики качества программного обеспечения (software quality characteristics) - набор свойств (атрибутов) программной продукции, по которым ее качество описывается и оценивается. Характеристики качества программного обеспечения могут быть уточнены на множестве уровней комплексных показателей. ГОСТ Р ИСО/МЭК 9126-93. «Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению». http://protect.gost.ru/document.aspx?control=7&id=135185 Качество (quality): весь объем признаков и характеристик продукции или услуги, который относится к их способности удовлетворять установленным и предполагаемым потребностям. Функциональность (functionality). Способность ПО в определенных условиях решать задачи, нужные пользователям. Определяет, что именно делает ПО, какие задачи оно решает.
Надежность undefined Набор атрибутов, относящихся к способности ПО сохранять свой уровень качества функционирования в установленных условиях за определенный период времени. Детализируется следующими подхарактеристиками (субхарактеристиками):
Величина, обратная частоте отказов ПО. Обычно измеряется средним временем работы без сбоев и величиной, обратной вероятности возникновения отказа за данный период времени.
Способность поддерживать заданный уровень работоспособности при отказах и нарушениях правил взаимодействия с окружением.
Способность восстанавливать определенный уровень работоспособности и целостность данных после отказа, необходимые для этого время и ресурсы.
Этот атрибут добавлен в 2001 году. Удобство использования (usability) или практичность - способность ПО быть удобным в обучении и использовании, а также привлекательным для пользователей.
Показатель, обратный к усилиям, которые затрачиваются пользователями на восприятие основных понятий ПО и осознание их применимости для решения своих задач.
Показатель, обратный усилиям, затрачиваемым пользователями на обучение работе с ПО.
Показатель, обратный усилиям, предпринимаемым пользователями для решения своих задач с помощью ПО.
Способность ПО быть привлекательным для пользователей. Этот атрибут добавлен в 2001 году.
Этот атрибут добавлен в 2001 году. Производительность (efficiency) или эффективность. Способность ПО при заданных условиях обеспечивать необходимую работоспособность по отношению к выделяемым для этого ресурсам. Можно определить ее и как отношение получаемых с помощью ПО результатов к затрачиваемым на это ресурсам всех типов.
Способность ПО выдавать ожидаемые результаты, а также обеспечивать передачу необходимого объема данных за отведенное время. |