
Лекции / Лекция 1. Основные понятия тестирования
.pdf
Системы показателей качества ПО
Качество ПО
Концепция качества ПО заключается в сочетании свободы в выборе показателей качества с формализацией оценки управления качеством, осуществляемого организацией – разработчиком ПО, а под качеством в целом понимается то, насколько хорошо и как долго разработанный программный продукт и его сопровождение отвечают требованиям заказчика.
При оценке качества ПО необходимо оценивать не только значения характеризующих его показателей, но и технологию и схемы процессов контроля качества, используемые данным разработчиком и называемые моделью качества и чем эффективнее организовано управление качеством в организации-разработчике, тем выше качество создаваемого ПО.
Модели качества ПО
Стандарты "ISO 9000" не являются стандартами качества продукции или даже качества производственного процесса, но устанавливают стандартные требования к системе качества. "Система качества – совокупность организационной структуры, методик, процессов и ресурсов, необходимых для общего руководства качеством" (ISO 8402).
Модель Capability Maturity Model (CMM) была разработана Software Engineering Institute (SEI) совместно с Университетом Карнеги-Меллона и рассматривает процесс разработки программного обеспечения как поэтапное достижение компанией определенного уровня зрелости. Согласно модели CMM выделяется пять уровней управления качеством в ходе создания ПО – на первом уровне каждый проект рассматривается как абсолютно новая задача, а на пятом все действия заранее расписаны и происходит постоянный процесс их усовершенствования.
Существуют и другие модели качества ПО, среди которых можно выделить модель Trillium, созданную фирмами Bell Canada, Nothern Telecom и Bell-Nothern Research. Будучи основанной на CMM, эта модель учитывает требования группы стандартов ISO и дает иную трактовку уровней.
Модели качества ПО не ограничиваются описанием уровней, а представляют собой достаточно большую совокупность положений нормативного и методологического характера, раскрывающих содержание этих уровней.
Определение уровней управления качеством по CMM и Trillium
|
Определение уровня |
||
|
|
|
|
|
CMM |
Trillium |
|
|
|
|
|
|
Процесс разработки носит хаотичный |
Характеризуется хаотичностью. Качество |
|
|
характер. Успех проекта зависит только от |
продуктов низкое, сроки завершения проектов |
|
Начальный |
способностей персонала. Отсутствует |
нарушаются. Риск высокий. |
|
(initial) |
стабильная среда разработки и |
|
|
|
сопровождения, а планы и сроки работы |
|
|
|
зависят от возникающих проблем. |
|
|
|
|
|
|
|
Успешная реализация проектов |
Повторяемый и ориентированный на процессы. |
|
|
становится возможной благодаря |
Успех проектов обусловлен внедрением систем |
|
|
жесткому управлению, планированию и |
управления проектами, планирования и |
|
Повторяем |
контролю. Акцент делается на выработку |
менеджмента. Особое внимание уделяется |
|
ый |
исходных требований, методы оценки и |
выработке исходных требований, |
|
конфигурационный менеджмент. |
конфигурационному менеджменту и оценке |
||
(repeatable) |
|||
|
Разработка новых проектов ведется на |
качества готовых систем. Риск средний. |
|
|
основе ранее накопленного опыта и в |
|
|
|
соответствии со стандартами на |
|
|
|
разработку ПО. |
|
|
|
|
|
|
|
Процессы, относящиеся к сфере |
Определенный и ориентированный на процессы. |
|
|
управления и инженерной деятельности, |
Все производственные процессы определены и |
|
Фиксирова |
полностью документированы, |
используются в масштабе всей компании, хотя их |
|
стандартизованы и интегрированы в |
адаптация в целях выполнения проектов |
||
нный |
единый технологический поток, |
допускается. Процессы полностью |
|
(defined) |
|||
контролируемый управляющим |
контролируются и постоянно совершенствуются. |
||
|
|||
|
персоналом. |
Стандарты ISO 9001 внедрены в части обучения |
|
|
|
персонала и внутреннего аудита. Риск невысокий. |
Определение уровней управления качеством по CMM и Trillium
|
Определение уровня |
||
|
|
|
|
|
CMM |
Trillium |
|
|
|
|
|
|
Организации пытаются оценить качество |
Управляемый и интегрированный. Основным |
|
|
процессов и готового продукта |
средством повышения качества процессов |
|
|
количественно. Для контроля над |
становятся анализ и инструментальные |
|
Управляемый |
процессами используются |
системы. Функции отслеживания изменений и |
|
(managed) |
количественные показатели (метрики). |
профилактики ошибок встраиваются в |
|
|
Все процессы предсказуемы и |
процессы. Активно используются CASE- |
|
|
укладываются в заранее определенные |
средства. Риск довольно небольшой. |
|
|
рамки. |
|
|
|
|
|
|
|
Компания строит свою деятельность, |
Полностью интегрированный. Широко |
|
|
руководствуясь уже количественными |
применяются формализованные методологии. |
|
Оптимизируе |
критериями качества. Основная цель – |
Для хранения истории разработки применяется |
|
производство и внедрение полностью |
репозитарий. Риск минимальный. |
||
мый |
|||
отлаженных разработок |
|
||
(optimizable) |
|
||
|
|
||
|
|
|
Качество ПО
Современное состояние в области качества ПО характеризуется:
-отсутствием единой системы показателей качества;
-осуществлением перехода от попыток стандартизации понятия и показателей качества ПО к унификации и стандартизации систем управления качеством, используемых организациямиразработчиками;
-выполнением оценок производителей ПО с позиций качества создаваемого ПО по степени совершенства используемой ими системы управления качеством, определяемой в результате
аудита и сертификации. |
_ |
|
Тестирование ПО
Тестирование является одним из наиболее устоявшихся способов обеспечения качества разработки программного обеспечения и входит в набор эффективных средств современной системы обеспечения качества программного продукта.
Тестирование ПО заключается в выполнении приложения на некотором множестве исходных данных и сверке получаемых результатов с заранее известными (эталонными) с целью установить соответствие различных свойств и характеристик приложения заказанным свойствам.

Тестирование ПО
Оценка трудоемкости обнаружения и исправления ошибок при создании программного продукта
Без автоматизации |
40% |
20% |
40% |
С автоматизацией |
60% |
20% 20% |
Общая концепция тестирования ПО
Программа – это аналог формулы в обычной математике. Формула для функции f, полученной суперпозицией функций f1, f2, ... fn – выражение, описывающее эту суперпозицию.
f = f1* f2* f3*... * fn
если аналог f1,f2,... fn – операторы языка программирования, то их формула – программа.
Существует два подхода обоснования истинности формул:
Формальный подход применяется, когда из исходных формул-аксиом с помощью формальных процедур (правил вывода) выводятся искомые формулы и утверждения (теоремы). Вывод осуществляется путем перехода от одних формул к другим по строгим правилам, которые позволяют свести процедуру перехода от формулы к формуле к последовательности текстовых подстановок. Преимущество формального подхода заключается в том, что с его помощью удается избегать обращений к бесконечной области значений и на каждом шаге доказательства оперировать только конечным множеством символов.
Интерпретационный подход применяется, когда осуществляется подстановка констант в формулы, а затем интерпретация формул как осмысленных утверждений в элементах множеств конкретных значений. Истинность интерпретируемых формул проверяется на конечных множествах возможных значений. Сложность подхода состоит в том, что на конечных множествах комбинации возможных значений для реализации исчерпывающей проверки могут оказаться достаточно велики. Интерпретационный подход используется при экспериментальной проверке соответствия программы своей спецификации. Применение интерпретационного подхода в форме экспериментов над исполняемой программой составляет суть отладки и тестирования.
Тестирование ПО
Отладка (debug, debugging) – процесс поиска, локализации и исправления ошибок в программе.
Термин "отладка" в отечественной литературе используется двояко:
- как для обозначения непосредственной активности по поиску ошибок (собственно процесс тестирования),
-так и для нахождения причин их появления и исправления (процесс локализации и исправления ошибок).
Тестирование – это:
-процесс выполнения ПО системы или компонента в условиях анализа или записи получаемых результатов с целью проверки (оценки) некоторых свойств тестируемого объекта.
-процесс анализа пункта требований к ПО с целью фиксации различий между существующим состоянием ПО и требуемым (что свидетельствует о проявлении ошибки) при экспериментальной проверке соответствующего пункта требований
-контролируемое выполнение программы на конечном множестве тестовых данных и анализ результатов этого выполнения для поиска ошибок