Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Чем больше времени затрачено на разработку, тестирование и отладку, тем лучше качество программы, однако, так же существенна точка оптимального соотношения цена/качество/программа.

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

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

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

Концепция абсолютного качества – то есть требования к обнаружению и исправлению более 98% ошибок, замедляет проект. Оно имеет смысл, только для проектов с повышенными требованиями к надёжности.

6s (шесть сигма) – s – единица стандартного отклонения при нормальном распределении в процессе или продукте. Она фиксирует максимально допустимое соотношение, количества допущенных ошибок к общему количеству возможно допустимых ошибок. Чаще всего этот критерий формулируют в терминах максимально допустимых ошибок на объём строк. Для того что бы можно было сравнивать плотность ошибок в программе, написанных на разных языках программирования, исходный код приводят к эквивалентному Assembler’овскому коду, путём применения стандартных масштабных коэффициентов.

Наиболее распространённые критерии завершения тестирования:

1. Истечения времени, отведённого на тестирование.

2. Все тесты выполнены без выявления ошибок.

Критерии, основанные на использовании определённых методологий позволяют провести исчерпывающее тестирование программных модулей. Существует несколько методов тестирования всех функций:

1. Метод функциональных диаграмм.

2. Метод анализа граничных значений.

3. Метод предположения об ошибке.

Полезные критерии окончания тестирования:

График ошибок.

1. Стоимость затрат на исправление ошибок.

2. Метод подсадки ошибок.

3. Метод тестирования двумя группами.

Все они основаны на статических предсказаниях количества неисправленных или ненайденных ошибок.

 

 

Отладка – процесс обнаружения причин возникновения ошибки и последующие исправления. В отличие от тестирования, отладка – процесс обнаружения самого факта существования ошибки. Включает в себя элементы тестирования и разработки. На некоторых проектах отладка может занимать до 50% всего времени разработки. При соответствующем подходе количество ошибок, требующих отладки, должно сократиться. Отладка не является способом улучшения качества ПО. Это способ исправления дефектов в программе. Качество программы должно обеспечиваться тщательным анализом требований, прототипированием и т. д.

Ряд исследований, подтверждающих общий принцип качества – повышение качества снижает стоимость разработки.

Критерии качества: стоимость и время могут быть оптимизированы одновременно.

При изучении своих ошибок в программе программист должен:

1. Понять программу, над которой работает.

2. Осознать свои типичные виды ошибок.

3. Оценить удачность подхода к решению проблем.

4. Оценить удачность подхода к исправлению ошибок.

Обобщённый подход к отладке программ может быть сформулирован:

1. Сбор данных через повторяемые эксперименты.

2. Создание гипотезы отражения максимума доступных данных.

3. Разработка эксперимента для проверки гипотезы.

4. Подтверждение или опровержение гипотезы.

5. Повторение при необходимости предыдущих шагов.

Этот подход находит отражение в отладке:

1. Стабилизация ошибки.

2. Обнаружение точного места ошибки.

3. Исправление ошибки.

4. Тестирование исправлений.

5. Поиск похожих ошибок.

Если проблема возникает нестабильно, то её невозможно диагностировать. Поэтому вначале стабилизируют ошибки, минимизируют тест и переходят к нахождению причины ошибки. При поиске ошибок могут быть предложены рекомендации:

1. Использовать все доступные данные при выдвижении гипотезы.

2. Минимальные тесты, показывающие ошибки.

3. Воспроизведение ошибок различными способами.

4. Использовать результаты негативных тестов.

5. Сужать подозрительные элементы кода, проверять процедуры, в которых встречаются ошибки.

6. Проверять недавние исправления.

7. Поставить временное ограничение.

8. Искать типичные ошибки.

9. Рассказать о проблеме кому-нибудь.

10. Отдохнуть.

Исправление ошибок – относительно простая задача, нужно учитывать, что 50% исправлений неправильны. Существую рекомендации по исправлению ошибок:

1. Разобраться в проблеме, прежде чем её исправлять.

2. Разобраться в самой программе.

3. Убедиться в правильности диагноза до исправлений.

4. Сохранить исходную версию кода.

5. Вносить изменения по одному и тогда, когда вы уверены.

6. Проверять все исправления.

7. Искать похожие ошибки.

Существует много средств, которые могут помочь при отладке, например отдатчики, они могут:

Создавать точки останова на конкретных строках кода.

Останавливаться на i-ой операции цикла.

Останавливаться при изменении значения переменной.

Останавливаться при присваивании конкретного значения.

Исследовать все данные в программе, включая типы, определённые пользователем.

Присваивать новые значения переменным.

Покоммандно выполнять программу.

 

Результаты исследований подтверждают общий принцип качества. Улучшение качества снижает стоимость разработки. Критерии качества: стоимость и время - могут быть оптимизированы одновременно.

При изучении своих ошибок в программах программист должен: 1)понять программу, над которой работает; 2) осознать свои типичные виды ошибок; 3)оценить удачность своего подхода к решению проблем; 4) оценить удачность своего подхода к решению ошибок.

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

1)Сбор данных через повторяемые эксперименты.

2) Создание гипотезы, отражающей максимум доступных данных.

3) Разработка эксперимента для проверки гипотезы.

4) Подтверждение или опровержение гипотезы.

5) При необходимости повторение предыдущих шагов.

Этот подход находит следующее отражение в отладке:

1)Стабилизация ошибки.

2) Обнаружение точного места ошибки.

3) Исправление ошибки.

4) Тестирование, исправление.

5) Поиск похожих ошибок.

Если проблема возникает нестабильно, те ее практически невозможно диагностировать, поэтому сначала необходимо стабилизировать ошибку, минимизировать тест, а затем перейти к нахождению причины ошибки.

При поиске ошибок могут быть предложены следующие рекомендации:

1)Использовать все доступные данные при выдвижении гипотез.

2) Минимизировать тесты, показывающие ошибки.

3) Воспроизвести ошибку различными способами.

4) Использовать результаты негативных тестов.

5) Сужать подозрительные фрагменты кода.

6) Проверить процедуры, в которых уже встречались ошибки.

7) Проверить недавние исправления.

8) Поставить временные ограничения.

9) Искать типичные ошибки.

Исправление ошибок – относительно простая задача, но нужно учитывать, что примерно 50% исправлений неправельны, поэтому существуют следующие рекомендации по исправлению ошибок:

1)Разобраться в проблеме, прежде чем ее исправлять.

2) Разобраться в самой программе.

3) Необходимо убедиться в правельности диагноза до исправления.

4) Необходимо сохранять исходную версию кода.

5) Необходимо вносить изменения по одному и только тогда, когда вы уверены.

6) Необходимо проверять все исправления.

7) Необходимо искать похожие ошибки.

Существует множество средств, которые могут помочь при отладке. В первую очередь это отладчики, которые могут:

1) Создавать точки останова на конкретных точках кода.

2) Останавливаться на I-ой операции цикла.

3) Останавливаться при изменении переменных.

4) Останавливаться при присваивании конкретного значения.

5) Исследовать все данные в программе, включая типы, определенные пользователями.

6) Присваивать новое значение переменным.

По командно выполнять программу.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.