Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ответы на вопросы зачета / Ответы на вопросы зачета по ТПО

.pdf
Скачиваний:
92
Добавлен:
29.03.2022
Размер:
1 Мб
Скачать
☆

2.Построение древа классов проекта и построение управляющего графа программы для каждого модуля.

3.Модульное тестирование и оценка степени тестированности по критерию на модульном уровне.

4.Построение управляющего графа программы, интегрирующего модули в единую иерархическую (классовую) модель проекта.

5.Выбор тестовых путей для проведения интеграционного или системного тестирования.

6.Генерация тестов, покрывающих тестовые пути шага 5.

7.Интегральная оценка тестированности ПО с учетом оценок тестированности модулей — компонентов.

8.Повторение шагов 5-7 до достижения заданного уровня тестированности программного обеспечения.

16.Разновидности тестирования

Разновидности тестирования: модульное, интеграционное, системное,

регрессионное, автоматизация тестирования, издержки тестирования.

Модульное тестирование — тестирование программы на уровне отдельно взятых модулей, функций или классов. Цель модульного тестирования — в выявлении ошибок в модуле, а также в определении степени готовности системы к переходу на следующий уровень разработки и тестирования. Проводится по принципу «белого ящика», то есть основывается на знании внутренней структуры программы.

Интеграционное тестирование — тестирование части системы,

состоящей из 2-х и более модулей. Основная задача интеграционного тестирования — поиск дефектов, связанных с ошибками в реализации интерфейсного взаимодействия между модулями.

Системное тестирование рассматривает систему в целом и применяется на уровне пользовательских интерфейсов. Основная задача системного тестирования — выявление дефектов, связанных с работой системы в целом,

таких как неверное использование ресурсов системы, несовместимость с

11

окружением, отсутствующая или неверная функциональность, неудобство в использовании и т.п.

Регрессионное тестирование — вид тестирования, который производится при внесении изменений на этапе системного тестирования или сопровождения продукта.

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

Автоматизация тестирования — использование специального ПО для выполнения и контроля выполнения тестов, а также сравнения ожидаемого и фактического результатов работы. Автоматизация позволяет осуществлять выполнение рутинных и нужных для максимизации тестового покрытия задач.

Издержки тестирования. Чем больше трудозатрат вкладывается в процесс тестирования, тем меньше ошибок в продукте остается незамеченными. Но также падает эффективность обнаружения.

17.Пользовательское тестирование

Пользовательское тестирование — разработка и выполнение тестов методом «черного» ящика, в котором тестовые сценарии создаются для выполнения сценариев использования пользователями ПО (тестирование по сценариям использования).

Эргономика — наука о взаимодействии человека с элементами системы для обеспечения сохранности здоровья человека и оптимизации общей производительности системы.

Принципы:

1.Пригодность для выполнения задачи;

2.Информативность;

3.Соответствие ожиданиям пользователя;

4.Пригодность для обучения;

5.Устойчивость к ошибкам.

6.И др.

12

18.Качественные и количественные требования согласованности по скорости восприятия графической информации пользователем

Качественные требования:

1.Требование композиционного соответствия;

2.Требование лаконичности.

3.Требование обобщения.

4.Требование унификации.

5.Требование использования привычных ассоциаций.

6.Требование акцента.

7.Требование к последовательности кодирования.

8.Требование к кодированию состояния.

•Красный цвет является аварийным и запрещающим;

•Желтый цвет означает предупреждение;

•Зеленый цвет — нормальное состояние;

•Серый цвет — состояние не определено, нет данных.

9.Требование к компоновке графических символов.

10.Требование к эстетичности изображения.

11.Требование к временному разделению изображения.

Количественные требования:

1.Требования к длине алфавита (предельные значения длин алфавитов).

2.Требования к граничным порогам графических параметров символа:

•Угловой размер элемента не должен быть меньше 15';

•Количество одновременно воспринимаемых визуальных параметров равно 7±2 (закон Миллера).

3.Требования к дифференциальным порогам графических параметров символа.

4.Требование к контрасту — работа при прямом контрасте (предмет темнее фона) благоприятнее, чем при обратном контрасте (предмет светлее фона).

13

19.Модульное тестирование

Модульное тестирование — тестирование программы на уровне отдельно взятых модулей, функций или классов.

Цель модульного тестирования — в выявлении ошибок в модуле, а

также в определении степени готовности системы к переходу на следующий уровень разработки и тестирования. Проводится по принципу «белого ящика»,

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

Модульные тесты, связанные со структурным тестированием,

формируются по следующим принципам:

•На основе потока управления, когда элементы определяются на основе структурных критериев тестирования С0 (команд), С1 (ветвей), С2 (путей), к которым относятся вершины, дуги, пути управляющего графа программы и др.

•На основе потока данных, когда элементы определяются при помощи потока данных, т. е. информационного графа программы.

20.Особенности интеграционного тестирования для объектноориентированного программирования

Объектно-ориентированное программное обеспечение является событийно управляемым.

Тестирование объектно-ориентированной программы должно включать те же уровни, что и тестирование процедурной программы — модульное,

интеграционное и системное.

Графовая модель класса, как и объектно-ориентированной программы,

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

14

1.ММ-путь msg a → метод 3 → msg 3 → метод 4 → msg d.

2.ММ-путь msg b → метод 1 → msg 1 → метод 4 → msg d.

3.ММ-путь msg b → метод 1 → msg 2 → метод 5.

4.ММ-путь msg c → метод 2.

5.P-путь call → метод 5.

Уровни тестирования классовой модели:

1.Модульное тестирование. Тестирование методов каждого класса программы.

2.Интеграционное тестирование. Тестирование методов класса,

которые образуют контекст интеграционного тестирования каждого класса.

3.Интеграционное тестирование. Протестированный класс включается в общий контекст (дерево классов) программного проекта и

отслеживается реакция программы на внешние события.

Возможность сочетать различные методы и критерии тестирования в ходе работы над программным проектом дает наилучшие результаты.

21.Системное тестирование

Системное тестирование рассматривает систему в целом и применяется на уровне пользовательских интерфейсов. Основная задача системного тестирования — выявление дефектов, связанных с работой системы в целом,

таких как неверное использование ресурсов системы, несовместимость с

15

окружением, отсутствующая или неверная функциональность, неудобство в

использовании и т.п.

Категории тестов системного тестирования:

•Полнота решения функциональных задач;

•Надежность, отказоустойчивость компонентов;

•Корректность использования ресурсов (утечка памяти, возврат ресурсов);

•Оценка производительности;

•Проверка инсталляции и конфигурации (в т.ч. на разных платформах);

•Корректность документации.

Целесообразным подходом является полная или частичная

автоматизация системного тестирования.

22.Комбинирование уровней тестирования

Рисунок 22.1

16

23.Особенности индустриального тестирования

Необходимо определиться с выбором между ручным и автоматизированным тестированием. Иногда проще и быстрее выполнить ручное тестирование, но без автоматизированного чаще всего не обойтись.

Рисунок 23.1

24.Автоматизация тестирования

Автоматизация тестирования — использование специального ПО для выполнения и контроля выполнения тестов, а также сравнения ожидаемого и фактического результатов работы. Автоматизация позволяет осуществлять выполнение рутинных и нужных для максимизации тестового покрытия задач.

Основные виды автоматизированного тестирования:

•Автоматизированное тестирование кода (на уровне программных модулей, классов и библиотек);

•Автоматизированное тестирование графического пользовательского интерфейса (генерация пользовательских событий);

•Автоматизированное тестирование программного интерфейса ПО,

предназначенного для взаимодействия с другим ПО.

17

25.Издержки тестирования

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

На практике используются следующие методы тестирования и отладки,

упорядоченные по связанным с их применением затратам:

•Статические методы тестирования;

•Модульное тестирование;

•Интеграционное тестирование;

•Системное тестирование;

•Тестирование реального окружения и реального времени.

26.Качество программного продукта

Качество ПО характеризуется набором свойств, определяющих,

насколько продукт «хорош» с точки зрения заинтересованных сторон.

Заинтересованные стороны: заказчик продукта, спонсор, конечный пользователь, разработчики и тестировщики продукта…

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

Понятие качества весьма субъективно.

Качество ПО можно определить неформально как способность выполнять заявленные функции и не выполнять другие, не объявленные функции.

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

18

27.Фазы процесса тестирования

1.Определение целей: какие части системы будут тестироваться, какие аспекты их работы будут выбраны для проверки и т.п.

2.Планирование: создание графика разработки тестов для каждой тестируемой подсистемы; оценка необходимых ресурсов и др.

3.Ручное или автоматизированное тестирование. Если автоматизированное, то ручная разработка тестов или генерация тестов.

4.Выполнение тестов — реализация тестовых циклов.

5.Анализ результатов.

После анализа результатов возможно повторение процесса тестирования, начиная с планирования, разработки тестов или даже с уточнения и/или переопределения целей.

28.Планирование тестирования

Тестовый план — это документ или набор документов, содержащий:

1.Тестовые ресурсы.

2.Перечень функций и подсистем, подлежащих тестированию.

3.Тестовую стратегию, включающую:

•Анализ функций и подсистем с целью определения наиболее слабых мест;

•Определение стратегии выбора входных данных для тестирования;

•Определение потребности в автоматизированной системе тестирования и дизайн такой системы.

4.Расписание тестовых циклов.

5.Фиксацию тестовой конфигурации: состава и конкретных параметров аппаратуры и программного окружения.

6.Определение списка тестовых метрик. Например, метрик,

оценивающих степень покрытия тестами набора требований, степень

покрытия кода тестируемой системы, объем тестового кода и др.

19

29.Типы тестирования

Типы тестов могут быть классифицированы по 2 категориям:

•По тому, что подвергается тестированию (по виду подсистемы или продукта);

•По способу выбора входных данных.

Типы тестирования по виду подсистемы или продукта:

1.Тестирование основной функциональности.

2.Тестирование инсталляции.

3.Тестирование пользовательской документации.

Типы тестирования по способу выбора входных данных:

1.Функциональное тестирование, при котором проверяется:

•Покрытие функциональных требований.

•Покрытие сценариев использования.

2.Стрессовое тестирование, при котором проверяются экстремальные режимы использования продукта.

3.Тестирование граничных значений.

4.Тестирование производительности.

5.Тестирование на соответствие стандартам.

6.Тестирование совместимости с другими программно-аппаратными комплексами.

7.Тестирование работы с окружением.

8.Тестирование работы на конкретной платформе.

На практике используются и комбинируются различные типы тестов.

30.Подходы к разработке тестов

Подходы к разработке тестов:

•Подходы, основанные на выборе тестовых данных (тестирование спецификаций, тестирование сценариев);

•Подходы, основанные на реализации тестового кода (ручная разработка тестов, генерация тестов).

Тестирование спецификации.

20