- •1. Определение и сущность основных характеристик качества программ: функциональности, корректности и надежности, эффективности, сложности, трудоемкости и ресурсоемкости, производительности.
- •2. Понятие метрики. Типы метрик и шкал. Понятие критерия оценки качества. Функциональные и конструктивные критерии оценки качества программ.
- •3. Этапы жизненного цикла программ и обеспечение качества программ на различных этапах. Характеристика статических и динамических составляющих качества программ.
- •4. Классификация видов сложности программных продуктов и их краткая характеристика.
- •9. Методы и средства измерения характеристик программ. Схема проведения измерений. Способы регистрации измеряемых параметров. Типы измерительных мониторов и требования к ним.
- •11. Аппаратные измерительные мониторы (аим). Общая структура. Аим с фиксированной программой. Достоинства и недостатки.
- •12. Аппаратные измерительные мониторы (аим) с изменяемой программой (гибридные). Достоинства и недостатки.
- •17. Надежность программ. Основные понятия: отказ, сбой, ошибки и восстановление - применительно к программам. Количественные оценки(показатели) надежности.
- •27. Тестирование программных изделий. Методы и критерии тестирования. Понятие теста. Основные принципы тестирования.
- •28. Объекты тестирования. Категории тестов, для различных объектов тестирования.
- •29. Тестирование на основе потока управления. Критерий покрытия решений.
- •30. Тестирование на основе потока управления. Критерий покрытия условий.
- •31. Тестирование на основе потока управления. Критерий комбинаторного покрытия условий
- •32. Функциональное тестирование. Метод эквивалентного разбиения.
- •33. Функциональное тестирование. Анализ граничных значений.
- •34. Метод тестирования на основе предположения об ошибке. Критерии завершения тестирования.
27. Тестирование программных изделий. Методы и критерии тестирования. Понятие теста. Основные принципы тестирования.
Тестирование– это контролируемое выполнение программы на конечном множестве наборов данных и анализ результатов этого выполнения с целью обнаружения ошибок (динамическоетестирование).Статическоетестирование не требует выполнения программы.
Методы тестирования –это совокупность правил, регламентирующих последовательность шагов по тестированию.
Критерии тестирования– соображения, позволяющие судить о достаточности проведенного тестирования.
Ошибка– различие между вычисленным/обозреваемым/измеренным значением/условием и действительным/специфицированным/теоретически корректным значением/условием, т.е. в программе имеется ошибка, если ее выполнение не оправдывает ожиданий пользователя (Любой программный продукт, не свободен от ошибок).
Удачный тест, если обнаружили ошибку. Тогда тестирование – процесс деструктивный (обратный созидательному, конструктивному).
Тест– это набор входных значений, условий выполнения и ожидаемых значений на выходе, разработанных для проверки конкретного пути выполнения программы.
(возможно лишнее) Особенности тестированияПП в отличие от аппаратного тестирования: 1. Отсутствие полностью определенного единого эталона, которому должны соответствовать все результаты тестирования проверяемой программы; 2. Высокая сложность программ и принципиальная невозможность построения тестовых наборов, достаточных для исчерпывающего тестирования; 3. Наличие в программах вычислительных и логических компонент, а также компонент, характеризующихся стохастическим и динамическим поведением; 4. Относительно невысокая степень формализации критериев завершения процесса тестирования и оценки качества тестирования.
Основные принципытестирования: 1.Описание предполагаемых значений выходных данных или результатов; 2. Следует избегать тестирования программы ее автором. Авторы отлаживают; 3. Организация не должна сама тестировать разработанные ею программные продукты; 4. Необходиимо досконально изучать результаты применения каждого теста; 5. Тесты для неправильных и непредусмотренных входных данных следует разрабатывать так же тщательно, как для правильных и предусмотренных данных; 6. Необходимо проверять программу на нежелательные побочные эффекты; 7. Не следует выбрасывать тесты, даже если программа уже не нужна; 8. Нельзя планировать тестирование в предположении, что ошибки не будут обнаружены.
28. Объекты тестирования. Категории тестов, для различных объектов тестирования.
Объекты тестирования: 1. Спецификации программных модулей, групп программ и программных комплексов; 2. Программные модули (код программных модулей); 3. Группы программ, решающие законченные функциональные задачи; 4. Комплексы программ, для которых завершены все виды отладки; 5. Программные средства, подлежащие испытаниям перед сдачей в эксплуатацию; 6. Сопровождаемый программный продукт до завершения его жизненного цикла.
От 1 к 4 сложность тестирования возрастает. Трудоемкость тестирования всей совокупности программных модулей, может быть выше, чем сложность тестирования при испытаниях и сопровождении. Уровень разработки тестов зависит от объектов. Методы тестирования прогр-х модулей написанных на процедурных языках исследованы хорошо, на объектно-ориентированных плохо, а для комплексов ваще нихера нет. Чес сложней объект тем больше затрат на его тестирование. Автоматизация тестирования есть только для процедурных языков программирования.
Категории тестовдля вышеописанных объектов тестирования (На этапе тестирования): 1) • полноты и согласованности функций программных компонент; • согласованности интерфейса в спецификациях программных компонент. 2) • структуры программного модуля; • вычислений и преобразований данных программным модулем; • полноты функций, выполняемых модулем. 3) • структуры группы программ; • межмодульного интерфейса в группе программ; • выполнения ограничений по использованию памяти и длительности исполнения группы программ; • полноты решения функциональных задач группой программ. 4) • полноты решения функциональных задач комплексом программ для типовых исходных данных; • функционирования программ в критических ситуациях по условиям и логике решения задач; • корректности использования ресурсов памяти и производительности вычислительной системы; • параллельного (одновременного) исполнения различных программ; • эффективности защиты от искажения входных данных; • определения надежности комплекса программ; • оценки эффективности защиты от сбоев аппаратуры и не выявленных ошибок программ. 5) • испытаний на соответствие комплекса программ техническому заданию; • удобства эксплуатации и взаимодействия человека с комплексом программ; • удобства установки и подготовки рабочей версии; • работы комплекса программ при конфигурациях оборудования; • корректности документации; • удобства сопровождения и модификации программ. 6) практически все вышеперечисленные. Сопровождение является процессом создания программ или его отдельных компонентов (редко применяем все категории тестов).
Одним из общих принципов тестирования ПО является проведение работ по тестированию в течение всего ЖЦ.
