Поддержка и тестирование программных модулей

1.

МДК 01.02 ПОДДЕРЖКА И ТЕСТИРОВАНИЕ
ПРОГРАММНЫХ МОДУЛЕЙ

2.

Программная ошибка (иногда называемая багом или дефектом) — это непредвиденное или
нежелательное поведение программы, которое приводит к некорректной работе приложения
или отклонению от ожидаемого поведения.
Термин “Программная ошибка” разделить на два технологических элемента:
1. Причина ошибки – дефект, фрагмент кода, по вине которого возникает ошибка;
2. Следствие – сбой, некорректное поведение программы, выражающееся в фатальной
ошибке, зацикливании, нарушении целостности данных, дефектах структур данных, ошибках
в выходных данных и т.п.
02

3.

02

4.

Требование (requirement) — описание того, какие функции и с соблюдением каких условий
должно выполнять приложение в процессе решения полезной для пользователя задачи.
Одним из аргументом в пользу тестирования требований является то, что, по разным
оценкам, в них зарождается от ½ до ¾ всех проблем с программным обеспечением.
Программа должна обеспечивать не только достоверный результат, но и получать его за
приемлемое время, что соответствует требованиям производительности.
02

5.

При формулировании требований производительности нужно учитывать следующее:
1. Производительность зависит от архитектуры аппаратных средств и системного
программного обеспечения;
2. Производительность программ является производной от трудоемкости
используемых алгоритмов.
3. Может иметь место чувствительность алгоритмов, реализуемых в программе –
различная трудоемкость (и производительность) на разных наборах входных
данных.
02

6.

Некоторые компоненты программы должны реагировать на заданные внешние воздействия
в течение ограниченного интервала времени.
К
требованиям
реального
времени
также
относится
реактивность
программы,
т.е.
способность давать отклик на действия пользователя в ограниченное время.
02

7.

Большинство общих требований графического интерфейса, а также часть требований
производительности и реактивности базируется на субъективных (в лучшем случае,
экспертных) оценках в категориях «удобный», «дружественный», объединяемых общим
термином Useability.
В данный ряд требований можно отнести:
• Случайный вред последовательностью команд;
• Снижение производительности из-за неудобного интерфейса;
02

8.

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

9.

Виды ошибок, от которых следует защищаться программе:
1. «Защита от дурака» - проверка действий пользователя, возможно приводящих к
некорректным результатам или деградации производительности (копирование больших
массивов, недопустимые форматы ввода, перезапись файлов и т.п.);
2. Ошибки форматов – недопустимые форматы файлов или сообщений программ вследствие
ошибок открытия/соединения или намеренного искажения;
02

10.

Виды ошибок, от которых следует защищаться программе:
3. Ошибки предоставления ресурсов – отсутствие ресурса или его ограниченность;
4. Сбои и аварийные завершения – закрытие сетевого потока до окончания передачи
файла и т.п..).
Кроме
средств
максимально
самой
защиты
возможной
необходимы
информации
об
средства
ошибке
фиксации
(дата,
время,
ошибок:
сохранение
версия
программы,
окружение, стек вызова, текущие данные).
02

11.

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

12.

3. Ошибка при определенных временных сочетаниях (гонки).
Ошибка проявляется при некотором значении или наборе значений, имеющих отношение к
данным одного вида.
2. Ошибки со случайным временем появления.
Некоторые
ошибки появляются в программе внезапно и без видимых причин или
закономерностей.
02

13.

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

14.

Ошибки
оказывают
влияние
как
на
результат
работы
программы,
так
и
на
ее
работоспособность:
1. Наблюдаемый или тестируемый ошибочный результат – несоответствие результата
программы ожидаемому.
2. Нарушение целостности внутренних данных (дефект структуры данных) - Программные
ошибки
могут
соответствовать
приводить
тем
к
тому,
соглашениям,
что
конфигурация
которые
приняты
внутренних
при
данных
не
будет
проектировании
для
этой
структуры данных.
02

15.

3. Зацикливание, внешне проявляющееся как зависание программы - Зацикливание
рекурсивного алгоритма приводит к фатальной ошибке, связанной с переполнением стека.
4. Фатальная ошибка - перехваченное исключение, приводящее к аварийному завершению
отдельного
этапа
исполнения
программы
с
последующим
восстановлением,
либо
завершению программы с сообщением об ошибке, либо к ее перезагрузке.
5. Деградация по производительности или ресурсам. Программа снижает свою
производительность, либо использует значительно большее, чем обычно, количество
ресурсов (например, памяти).
02
к

16.

1. Опечатка - Ошибка, внесенная бессознательно или автоматически в одно выражение или
оператор. Исправляется редактированием.
2. Крайняя ситуация (граничное условие) - Ошибка, связанная с пропуском одного из
граничных условий – сочетании данных, с которыми работает программа (например, пустая
строка, строка, состоящая из одних пробелов и не содержащая слов). Либо ошибка,
связанная с пропуском одного шага алгоритма (цикла, рекурсии).
02

17.

3. Методологическая ошибка алгоритма - Алгоритм, положенный в основу программы, не во
всех случаях дает решение, либо в определенных случаях дает неверное решение. Но в
отличие от ошибок граничных условий, эта частичная неработоспособность не может быть
локализована и устранена.
4. Методологическая ошибка архитектуры - Выбранное архитектурное решение не
обеспечивает выполнение требований, предъявляемых к системе, т.е. является ошибкой
проектирования.
02

18.

МДК 01.02 ПОДДЕРЖКА И ТЕСТИРОВАНИЕ
ПРОГРАММНЫХ МОДУЛЕЙ
English     Русский Правила