Top Banner
естирование и отладка п
23

технология и отладка по (47)

Jan 12, 2017

Download

Engineering

romachka_pole
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: технология и отладка по (47)

Тестирование и отладка по

Page 2: технология и отладка по (47)

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

Page 3: технология и отладка по (47)

Существуют следующие подходы к формулированию стратегии тестирования:1. Определение объемов тестовых работ;2. Определение подхода к тестированию;3. Определение критериев тестирования и

точек контроля качества;4. Определение стратегии автоматизации.

Этапы тестирования программного продукта

Page 4: технология и отладка по (47)

•Повысить вероятность того, что приложение, предназначенное для тестирования, будет работать правильно при любых обстоятельствах;•Повысить вероятность того, что приложение,

предназначенное для тестирования, будет соответствовать всем описанным требованиям;•Провести полное тестирование приложения за

короткий срок.

Цели тестирования программного продукта

Page 5: технология и отладка по (47)

1) Проверить, что система работает в соответствии с определенными временами отклика клиента и сервера;

2) Проверить, что наиболее критические последовательности действий с системой конечного пользователя выполняются верно;

3) Проверить работу пользовательских интерфейсов;4) Проверить, что изменения в базах данных не

оказывают неблагоприятного влияния на существующие программные модули;

Задачи тестирования программного продукта

Page 6: технология и отладка по (47)

5) При проектировании тестов свести к минимуму переработку тестов при возможных изменениях приложения;

6) Использовать инструменты автоматизированного тестирования там, где это целесообразно;

7) Проводить тестирование таким образом, чтобы не только обнаруживать, но и предупреждать дефекты;

8) При проектировании автоматизированных тестов использовать стандарты разработки таким образом, чтобы создать многократно используемые и сопровождаемые скрипты.

Задачи тестирования программного продукта

Page 7: технология и отладка по (47)

По типу тестов:Функциональные типы тестов;

(рассматривают внешнее поведение системы)Нефункциональные типы тестов;

(описывает тесты, необходимые для определения характеристик ПО, которые могут быть измерены различными величинами)

Типы тестов, связанные с изменениями.(для подтверждения того факта, что после изменения проблема

была действительно решена)

Классификация тестирования программных продуктов

Page 8: технология и отладка по (47)

По уровням тестирования:

•Компонентное (модульное) тестирование(Проверка отдельных модулей программы, тестирование носит изолированный характер. Включает в себя как функциональные, так и нефункциональные виды тестирования); •Интеграционное тестирование(Тестирования

взаимодействия между компонентами (модулями) системы. Включает в себя как функциональные, так и нефункциональные виды тестирования); •Системное тестирование(Проверяется поведение системы в

целом. Включает в себя как функциональные, так и нефункциональные виды тестирования);•Приемочное тестирование(Целью приемочного тестирования

является оценка готовности системы для ее выпуска).

Page 9: технология и отладка по (47)

ПО ЗНАНИЮ СИСТЕМЫ (ДОСТУПНОСТИ КОДА):

•Тестирование чёрного ящика(Тестирование проводится без доступа к исходному коду); •Тестирование белого ящика(Тестирование

проводится с доступом к исходу коду и с возможностью модификации кода);•Тестирование серого ящика(Представляет

собой объединение двух выше перечисленных видов тестирования).

Page 10: технология и отладка по (47)

По объекту тестирования:•Функциональное тестирование(Проверка функций и характеристик

разрабатываемого ПО на основе проектной документации);

•Тестирование производительности (Проверка работоспособности системы под нагрузкой. Может служить для проверки и подтверждения других атрибутов качества системы, таких как масштабируемость, надёжность и потребление ресурсов);

•Юзабилити-тестирование/Тестирование интерфейса; пользователя (Цель данного вида тестирования заключается в определении степени удобства и практичности пользовательского интерфейса) ;

•Тестирование безопасности (Проверка надежности системы от возможных рисков и угроз (потеря, конфиденциальность, целостность и доступность данных));

•Тестирование локализации (Корректность перевода и работы отдельных компонентов системы (форматы дат, единицы измерения и т.д.));

•Тестирование совместимости (Проверка возможности приложения взаимодействовать с различными программными продуктами, операционными системами и окружением).

Page 11: технология и отладка по (47)

По степени автоматизации:•Ручное тестирование(Тестирование проводится без

инструментов автоматизации); •Автоматизированное тестирование (Тестирование на

всех уровнях выполняется с использованием средств автоматизации); •Полуавтоматизированное тестирование

(Предполагается, что для определенных целей применяется автоматизации (автоматизации развертки окружения, автоматизация функционального тестирования, автоматизация генерации данных и т.д.).

Page 12: технология и отладка по (47)

По времени проведения тестирования:•Тестирование при приёмке (Минимальный набор тестов на явные

ошибки); •Тестирование новой функциональности(Тестируется новые

функции системы); •Регрессионное тестирование(Проверка изменений сделанных в

системе для подтверждения того факта, что существующая ранее функциональность работает как и прежде) ;•Тестирование при сдаче(Целью приемочного тестирования

является оценка готовности системы для его выпуска на рынок или передачи клиенту. Может включать в себя альфа-тестирование (alpha testing) и бета-тестирование (beta testing)).

Page 13: технология и отладка по (47)

По признаку позитивности сценариев:•Позитивное тестирование(Проверка позитивных (правильных)

пользовательских сценариев. На вход подается разрешенные (ожидаемые) данные); •Негативное тестирование(Проверка реакции системы на ввод негативных

(не разрешенных) данных) .По степени подготовленности к тестированию•Тестирование по документации(Тестирование приложения проводится по

заранее подготовленным данным (тест-кейсы, чек-листы, чит-листы, спецификация и т.д.)); •Тестирование ad hoc или интуитивное тестирование(тестирование

проводится при полном отсутствии документации, без плана и цели); •Тестирование методом свободного поиска или

исследовательское тестирование(предполагается наличие минимально необходимой для тестирования документации).

Page 14: технология и отладка по (47)

-Модульное тестирование (заключается в изолированной проверке каждого отдельного элемента путем запуска тестов в

искусственной среде)-Интеграционное тестирование 

(предназначено для проверки связи между компонентами, а также взаимодействия с различными частями системы (операционной системой, оборудованием либо связи между различными системами))

-Системное тестирование (задачей CТ является проверка как функциональных, так и не функциональных требований в системе в целом)

– Альфа-тестирование((имитация реальной работы с системой штатными разработчиками, либо реальная работа с системой

потенциальными пользователями/заказчиком. )– Бета-тестирование 

(интенсивное использование почти готовой версии продукта (как правило, программного или аппаратного обеспечения) с целью выявления максимального

числа ошибок в его работе для их последующего устранения перед окончательным выходом (Релизом) продукта на рынок, к массовому потребителю )

Уровни тестирования программных продуктов

Page 15: технология и отладка по (47)

Воспроизведение дефекта;Анализ дефекта;Дизайн исправления дефекта;Кодирование исправления дефекта;Валидация исправления;Интеграция исправления в кодовую базу;Дополнительные валидации после интеграции.

Этапы отладки программного обеспечения

Page 16: технология и отладка по (47)

Запуск программы из под отладчика;Логировании кода;Анализ кода без исполнения программы;Анализ поведения системы или ее части;Unit тестирование;Прототипирование;Отладка с помощью memory-dump-ов или crash-дампов;Отладка с помощью перехватов;Профилирование кода;Выполнение программы в другой среде;Отладка методом RPC;Отладка путем анализа документации;Отладка трансляцией кода;Отладка разработкой интерпретатора.

Методы отладки

Page 17: технология и отладка по (47)

•Ошибки анализа; •Ошибки общего характера;•Ошибки физического характера;•Правильность программ;•Синтаксические ошибки;•Неопределенные переменные. 

Отладка. Виды ошибок

Page 18: технология и отладка по (47)

Связаны либо с неполным учетом ситуации, которые могут возникнуть, либо с неверным решением задачи. К 1 случаю относятся, например, пренебрежение возможностью появления отрицательных значений переменных, малых и больших величин. Во 2 случае обычно имеют место крупные и мелкие логические ошибки, из которых можно назвать: Отсутствие заданий начальных значений переменных.• Неверные условия окончания цикла;• Неверную индексацию цикла;• Отсутствие задания условий инициирования цикла;• Неправильное указание ветви алгоритма для продолжения процесса

решения задачи.

Ошибки анализа

Page 19: технология и отладка по (47)

После того, как найден подходящий алгоритм решения задачи, на этапе программирования также могут появиться ошибки, независимо от выбранного языка. Такими ошибками могут быть :• ошибки из-за недостаточного знания или понимания

программистом языка программирования или самой машины;• ошибки, допущенные при программировании

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

Ошибки общего характера

Page 20: технология и отладка по (47)

Можно назвать несколько типов ошибок, вызываемых неверными действиями программиста:•Пропуск некоторых операторов;•Отсутствие необходимых данных;•Непредусмотренные данные;•Неверный формат данных.

Ошибки физического характера

Page 21: технология и отладка по (47)

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

Правильность программ

Page 22: технология и отладка по (47)

Выявление транслятором синтаксических ошибок представляет собой самый важный и необходимый этап отладки программы. Если под синтаксической ошибкой понимать "всякое нарушение требований языка программирования", то следует признать, что многие ошибки остаются необнаруженными. Советы по устранению ошибок:• Если ошибок много, то в первую очередь устранить очевидные;• Обратиться к руководству по программированию на данном

языке (справка);• Выбрать хороший отладочный компилятор.

Синтаксические ошибки 

Page 23: технология и отладка по (47)

Распространенными источниками программных ошибок являются неопределенные переменные и переменные, для которых не заданы начальные значения. Определение начальных значений:• Присваивание;• Ввод;• Чтение из файла.Разные прогоны программы с одними и теми же данными могут привести к различным результатам. 

Неопределенные переменные